@geoprotocol/geo-sdk 0.19.1 → 0.19.2

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 (135) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/abis/dao-space-factory.d.ts +6 -43
  6. package/dist/src/abis/dao-space-factory.d.ts.map +1 -1
  7. package/dist/src/abis/dao-space-factory.js +27 -38
  8. package/dist/src/abis/dao-space-factory.js.map +1 -1
  9. package/dist/src/abis/dao-space.d.ts +7 -98
  10. package/dist/src/abis/dao-space.d.ts.map +1 -1
  11. package/dist/src/abis/dao-space.js +99 -61
  12. package/dist/src/abis/dao-space.js.map +1 -1
  13. package/dist/src/abis/index.d.ts +2 -2
  14. package/dist/src/abis/index.d.ts.map +1 -1
  15. package/dist/src/abis/index.js +2 -2
  16. package/dist/src/abis/index.js.map +1 -1
  17. package/dist/src/abis/space-registry.d.ts +0 -26
  18. package/dist/src/abis/space-registry.d.ts.map +1 -1
  19. package/dist/src/abis/space-registry.js +0 -33
  20. package/dist/src/abis/space-registry.js.map +1 -1
  21. package/dist/src/client/dao-spaces.d.ts +33 -93
  22. package/dist/src/client/dao-spaces.d.ts.map +1 -1
  23. package/dist/src/client/dao-spaces.js +42 -174
  24. package/dist/src/client/dao-spaces.js.map +1 -1
  25. package/dist/src/client/dao-spaces.test.js +79 -313
  26. package/dist/src/client/dao-spaces.test.js.map +1 -1
  27. package/dist/src/client/personal-spaces.d.ts +0 -74
  28. package/dist/src/client/personal-spaces.d.ts.map +1 -1
  29. package/dist/src/client/personal-spaces.js +2 -82
  30. package/dist/src/client/personal-spaces.js.map +1 -1
  31. package/dist/src/client/spaces.test.js +7 -27
  32. package/dist/src/client/spaces.test.js.map +1 -1
  33. package/dist/src/client.d.ts +16 -33
  34. package/dist/src/client.d.ts.map +1 -1
  35. package/dist/src/client.js +60 -102
  36. package/dist/src/client.js.map +1 -1
  37. package/dist/src/client.test.js +3 -8
  38. package/dist/src/client.test.js.map +1 -1
  39. package/dist/src/dao-space/constants.d.ts +0 -10
  40. package/dist/src/dao-space/constants.d.ts.map +1 -1
  41. package/dist/src/dao-space/constants.js +0 -10
  42. package/dist/src/dao-space/constants.js.map +1 -1
  43. package/dist/src/dao-space/execute-proposal.d.ts +1 -1
  44. package/dist/src/dao-space/execute-proposal.js +2 -2
  45. package/dist/src/dao-space/execute-proposal.js.map +1 -1
  46. package/dist/src/dao-space/index.d.ts +1 -2
  47. package/dist/src/dao-space/index.d.ts.map +1 -1
  48. package/dist/src/dao-space/index.js +0 -1
  49. package/dist/src/dao-space/index.js.map +1 -1
  50. package/dist/src/dao-space/propose-add-editor.d.ts +20 -1
  51. package/dist/src/dao-space/propose-add-editor.d.ts.map +1 -1
  52. package/dist/src/dao-space/propose-add-editor.js +87 -12
  53. package/dist/src/dao-space/propose-add-editor.js.map +1 -1
  54. package/dist/src/dao-space/propose-add-editor.test.js +4 -16
  55. package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
  56. package/dist/src/dao-space/propose-add-member.d.ts +20 -1
  57. package/dist/src/dao-space/propose-add-member.d.ts.map +1 -1
  58. package/dist/src/dao-space/propose-add-member.js +87 -12
  59. package/dist/src/dao-space/propose-add-member.js.map +1 -1
  60. package/dist/src/dao-space/propose-add-member.test.js +0 -13
  61. package/dist/src/dao-space/propose-add-member.test.js.map +1 -1
  62. package/dist/src/dao-space/propose-edit.test.js +0 -45
  63. package/dist/src/dao-space/propose-edit.test.js.map +1 -1
  64. package/dist/src/dao-space/propose-remove-editor.d.ts +22 -1
  65. package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
  66. package/dist/src/dao-space/propose-remove-editor.js +94 -12
  67. package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
  68. package/dist/src/dao-space/propose-remove-editor.test.js +4 -22
  69. package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
  70. package/dist/src/dao-space/propose-remove-member.d.ts +22 -1
  71. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
  72. package/dist/src/dao-space/propose-remove-member.js +94 -12
  73. package/dist/src/dao-space/propose-remove-member.js.map +1 -1
  74. package/dist/src/dao-space/propose-remove-member.test.js +0 -19
  75. package/dist/src/dao-space/propose-remove-member.test.js.map +1 -1
  76. package/dist/src/dao-space/types.d.ts +11 -72
  77. package/dist/src/dao-space/types.d.ts.map +1 -1
  78. package/dist/src/dao-space/vote-proposal.d.ts +1 -1
  79. package/dist/src/dao-space/vote-proposal.js +2 -2
  80. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  81. package/dist/src/dao-space/vote-proposal.test.js +0 -54
  82. package/dist/src/dao-space/vote-proposal.test.js.map +1 -1
  83. package/dist/src/e2e-api-surface.test.d.ts +2 -0
  84. package/dist/src/e2e-api-surface.test.d.ts.map +1 -0
  85. package/dist/src/{api-surface.e2e.test.js → e2e-api-surface.test.js} +101 -286
  86. package/dist/src/e2e-api-surface.test.js.map +1 -0
  87. package/dist/src/e2e-legacy-api-surface.test.d.ts +2 -0
  88. package/dist/src/e2e-legacy-api-surface.test.d.ts.map +1 -0
  89. package/dist/src/{legacy-api-surface.e2e.test.js → e2e-legacy-api-surface.test.js} +70 -90
  90. package/dist/src/e2e-legacy-api-surface.test.js.map +1 -0
  91. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +21 -34
  92. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  93. package/dist/src/encodings/get-create-dao-space-calldata.js +35 -64
  94. package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
  95. package/dist/src/encodings/get-create-dao-space-calldata.test.js +64 -94
  96. package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -1
  97. package/dist/src/full-flow-test.test.js +2 -5
  98. package/dist/src/full-flow-test.test.js.map +1 -1
  99. package/dist/src/personal-space/constants.d.ts +1 -1
  100. package/dist/src/personal-space/constants.d.ts.map +1 -1
  101. package/dist/src/personal-space/constants.js +1 -1
  102. package/dist/src/personal-space/constants.js.map +1 -1
  103. package/dist/src/personal-space/create-space.d.ts +2 -2
  104. package/dist/src/personal-space/create-space.d.ts.map +1 -1
  105. package/dist/src/personal-space/create-space.js +3 -4
  106. package/dist/src/personal-space/create-space.js.map +1 -1
  107. package/dist/src/personal-space/types.d.ts +1 -4
  108. package/dist/src/personal-space/types.d.ts.map +1 -1
  109. package/package.json +1 -1
  110. package/dist/src/abis/dao-space-v2.test.d.ts +0 -2
  111. package/dist/src/abis/dao-space-v2.test.d.ts.map +0 -1
  112. package/dist/src/abis/dao-space-v2.test.js +0 -67
  113. package/dist/src/abis/dao-space-v2.test.js.map +0 -1
  114. package/dist/src/api-surface.e2e.test.d.ts +0 -2
  115. package/dist/src/api-surface.e2e.test.d.ts.map +0 -1
  116. package/dist/src/api-surface.e2e.test.js.map +0 -1
  117. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +0 -2
  118. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +0 -1
  119. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +0 -239
  120. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +0 -1
  121. package/dist/src/dao-space/propose-update-voting-settings.d.ts +0 -8
  122. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +0 -1
  123. package/dist/src/dao-space/propose-update-voting-settings.js +0 -19
  124. package/dist/src/dao-space/propose-update-voting-settings.js.map +0 -1
  125. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +0 -2
  126. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +0 -1
  127. package/dist/src/dao-space/propose-update-voting-settings.test.js +0 -118
  128. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +0 -1
  129. package/dist/src/e2e-test-environment.d.ts +0 -26
  130. package/dist/src/e2e-test-environment.d.ts.map +0 -1
  131. package/dist/src/e2e-test-environment.js +0 -150
  132. package/dist/src/e2e-test-environment.js.map +0 -1
  133. package/dist/src/legacy-api-surface.e2e.test.d.ts +0 -2
  134. package/dist/src/legacy-api-surface.e2e.test.d.ts.map +0 -1
  135. package/dist/src/legacy-api-surface.e2e.test.js.map +0 -1
@@ -1,10 +1,9 @@
1
- import { createPublicClient, createWalletClient, http } from 'viem';
1
+ import { createPublicClient, http } from 'viem';
2
2
  import { privateKeyToAccount } from 'viem/accounts';
3
3
  import { describe, expect, it } from 'vitest';
4
- import { daoSpace, Graph, Ipfs, personalSpace } from '../index.js';
4
+ import { daoSpace, GeoTestnetConfig, Graph, getWalletClient, Ipfs, personalSpace } from '../index.js';
5
5
  import { SpaceRegistryAbi } from './abis/index.js';
6
6
  import { DESCRIPTION_PROPERTY, RELATION_TYPE, REPLY_TO_PROPERTY } from './core/ids/system.js';
7
- import { createE2ETestEnvironment } from './e2e-test-environment.js';
8
7
  import { deriveCommentName } from './graph/comment-utils.js';
9
8
  import { toGrcId } from './id-utils.js';
10
9
  const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
@@ -12,31 +11,22 @@ const EMPTY_SPACE_ID = '0x00000000000000000000000000000000';
12
11
  const INDEXER_TIMEOUT_MS = 120_000;
13
12
  const TEST_TIMEOUT_MS = 600_000;
14
13
  const replyToGrcId = toGrcId(REPLY_TO_PROPERTY);
15
- let cachedE2E;
16
- function getE2E() {
17
- cachedE2E ??= createE2ETestEnvironment();
18
- return cachedE2E;
19
- }
20
- const e2e = new Proxy({}, {
21
- get(_target, property) {
22
- return getE2E()[property];
23
- },
24
- });
25
- function getLegacyNetwork() {
26
- return getE2E().networkish;
14
+ function sleep(ms) {
15
+ return new Promise(resolve => setTimeout(resolve, ms));
27
16
  }
28
- class GraphQlRequestError extends Error {
29
- errors;
30
- constructor(errors) {
31
- super(`GraphQL errors: ${JSON.stringify(errors)}`);
32
- this.errors = errors;
33
- }
34
- hasValidationError() {
35
- return JSON.stringify(this.errors).includes('GRAPHQL_VALIDATION_FAILED');
17
+ function requireTestnetContract(name) {
18
+ const address = GeoTestnetConfig.contracts?.[name];
19
+ if (!address) {
20
+ throw new Error(`GeoTestnetConfig is missing ${name}`);
36
21
  }
22
+ return address;
37
23
  }
38
- function sleep(ms) {
39
- return new Promise(resolve => setTimeout(resolve, ms));
24
+ function requireTestnetRpcUrl() {
25
+ const rpcUrl = GeoTestnetConfig.chain?.rpcUrl;
26
+ if (!rpcUrl) {
27
+ throw new Error('GeoTestnetConfig is missing an RPC URL');
28
+ }
29
+ return rpcUrl;
40
30
  }
41
31
  function filterReplyToRelations(ops) {
42
32
  return ops.filter((op) => op.type === 'createRelation' &&
@@ -96,16 +86,11 @@ function proposalQuery(proposalId) {
96
86
  id
97
87
  spaceId
98
88
  proposedBy
99
- currentVersion
100
- proposalVersions {
101
- proposalVersion
102
- votingMode
103
- name
104
- }
89
+ votingMode
90
+ name
105
91
  }
106
92
  proposalActions(condition: { proposalId: ${JSON.stringify(id)} }) {
107
93
  proposalId
108
- proposalVersion
109
94
  actionType
110
95
  targetId
111
96
  contentUri
@@ -143,7 +128,7 @@ function entityVoteQuery(entityId, voterId, spaceId) {
143
128
  }`;
144
129
  }
145
130
  async function queryGraph(query) {
146
- const response = await fetch(`${e2e.apiOrigin}/graphql`, {
131
+ const response = await fetch(`${GeoTestnetConfig.apiOrigin}/graphql`, {
147
132
  method: 'POST',
148
133
  headers: { 'Content-Type': 'application/json' },
149
134
  body: JSON.stringify({ query }),
@@ -153,7 +138,7 @@ async function queryGraph(query) {
153
138
  }
154
139
  const envelope = (await response.json());
155
140
  if (envelope.errors) {
156
- throw new GraphQlRequestError(envelope.errors);
141
+ throw new Error(`GraphQL errors: ${JSON.stringify(envelope.errors)}`);
157
142
  }
158
143
  if (envelope.data === undefined) {
159
144
  throw new Error('GraphQL response did not include data');
@@ -173,9 +158,6 @@ async function waitFor(label, read, predicate) {
173
158
  }
174
159
  }
175
160
  catch (error) {
176
- if (error instanceof GraphQlRequestError && error.hasValidationError()) {
177
- throw error;
178
- }
179
161
  lastError = error;
180
162
  }
181
163
  await sleep(3_000);
@@ -208,21 +190,18 @@ async function waitForProposal(proposalId, expected) {
208
190
  return false;
209
191
  if (proposal.proposedBy !== expected.proposedBy.replaceAll('-', ''))
210
192
  return false;
211
- const currentVersion = proposal.proposalVersions.find(version => version.proposalVersion === proposal.currentVersion);
212
- if (expected.votingMode && currentVersion?.votingMode !== expected.votingMode)
193
+ if (expected.votingMode && proposal.votingMode !== expected.votingMode)
213
194
  return false;
214
195
  if (!expected.actionType)
215
196
  return true;
216
- const expectedActionTypes = Array.isArray(expected.actionType) ? expected.actionType : [expected.actionType];
217
- return value.proposalActions.some(action => expectedActionTypes.includes(action.actionType) &&
197
+ return value.proposalActions.some(action => action.actionType === expected.actionType &&
218
198
  (expected.targetId === undefined ||
219
199
  action.targetId === expected.targetId.replace(/^0x/, '').replaceAll('-', '')) &&
220
200
  (expected.contentUri === undefined || action.contentUri === expected.contentUri));
221
201
  });
222
202
  expect(data.proposals[0]?.id).toBe(proposalUuid(proposalId));
223
203
  if (expected.actionType) {
224
- const expectedActionTypes = Array.isArray(expected.actionType) ? expected.actionType : [expected.actionType];
225
- expect(data.proposalActions.some(action => expectedActionTypes.includes(action.actionType))).toBe(true);
204
+ expect(data.proposalActions.map(action => action.actionType)).toContain(expected.actionType);
226
205
  }
227
206
  }
228
207
  async function waitForProposalVote(proposalId, voterId, daoSpaceId, vote) {
@@ -235,7 +214,7 @@ async function waitForEntityVote(entityId, voterId, spaceId, predicate) {
235
214
  }
236
215
  async function getSpaceIdHex(publicClient, address) {
237
216
  return (await publicClient.readContract({
238
- address: e2e.contracts.SPACE_REGISTRY_ADDRESS,
217
+ address: requireTestnetContract('SPACE_REGISTRY_ADDRESS'),
239
218
  abi: SpaceRegistryAbi,
240
219
  functionName: 'addressToSpaceId',
241
220
  args: [address],
@@ -245,11 +224,10 @@ async function ensurePersonalSpace({ account, publicClient, walletClient }) {
245
224
  let spaceIdHex = await getSpaceIdHex(publicClient, account.address);
246
225
  const hasExistingSpace = await personalSpace.hasSpace({
247
226
  address: account.address,
248
- network: e2e.networkish,
249
227
  });
250
228
  expect(hasExistingSpace).toBe(spaceIdHex.toLowerCase() !== EMPTY_SPACE_ID.toLowerCase());
251
229
  if (spaceIdHex.toLowerCase() === EMPTY_SPACE_ID.toLowerCase()) {
252
- const createSpace = personalSpace.createSpace({ network: e2e.networkish });
230
+ const createSpace = personalSpace.createSpace();
253
231
  await sendTransactionAndWait({ account, publicClient, walletClient }, {
254
232
  label: 'legacy create personal space',
255
233
  to: createSpace.to,
@@ -266,16 +244,24 @@ async function ensurePersonalSpace({ account, publicClient, walletClient }) {
266
244
  };
267
245
  }
268
246
  async function setupWallet() {
269
- const account = privateKeyToAccount(e2e.privateKey);
270
- const walletClient = createWalletClient({
271
- account,
272
- chain: e2e.chain,
273
- transport: http(e2e.rpcUrl),
247
+ const privateKey = process.env.PRIVATE_KEY;
248
+ if (!privateKey) {
249
+ throw new Error('PRIVATE_KEY environment variable is required.');
250
+ }
251
+ if (!privateKey.startsWith('0x')) {
252
+ throw new Error('PRIVATE_KEY must be a hex string starting with 0x.');
253
+ }
254
+ const walletClient = await getWalletClient({
255
+ privateKey: privateKey,
256
+ rpcUrl: requireTestnetRpcUrl(),
274
257
  });
275
- expect(account.address).toBe(privateKeyToAccount(e2e.privateKey).address);
258
+ const account = walletClient.account;
259
+ if (!account) {
260
+ throw new Error('Wallet client account is undefined');
261
+ }
262
+ expect(account.address).toBe(privateKeyToAccount(privateKey).address);
276
263
  const publicClient = createPublicClient({
277
- chain: e2e.chain,
278
- transport: http(e2e.rpcUrl),
264
+ transport: http(requireTestnetRpcUrl()),
279
265
  });
280
266
  return { account, publicClient, walletClient };
281
267
  }
@@ -311,7 +297,7 @@ async function publishOps(context, name, ops, spaceId = context.spaceId) {
311
297
  spaceId,
312
298
  author: context.spaceId,
313
299
  ops,
314
- network: getLegacyNetwork(),
300
+ network: 'TESTNET',
315
301
  });
316
302
  await sendTransactionAndWait(context, {
317
303
  label: name,
@@ -333,17 +319,14 @@ async function getDaoContext() {
333
319
  const createdDaoSpace = await daoSpace.createSpace({
334
320
  name: daoName,
335
321
  votingSettings: {
336
- partialPercentageSupportThreshold: 50,
337
- universalPercentageSupportThreshold: 90,
338
- flatSupportThreshold: 1,
322
+ slowPathPercentageThreshold: 50,
323
+ fastPathFlatThreshold: 1,
339
324
  quorum: 1,
340
325
  durationInDays: 2,
341
- disableFastPathAccessForNewMembers: true,
342
- executionGracePeriodInDays: 14,
343
326
  },
344
327
  initialEditorSpaceIds: [context.spaceIdHex],
345
328
  author: context.spaceId,
346
- network: getLegacyNetwork(),
329
+ network: 'TESTNET',
347
330
  });
348
331
  const daoCreateTx = await sendTransactionAndWait(context, {
349
332
  label: 'create legacy API DAO space',
@@ -371,9 +354,8 @@ async function createLegacyAddMemberProposal(context, label) {
371
354
  const proposal = daoSpace.proposeAddMember({
372
355
  authorSpaceId: context.spaceIdHex,
373
356
  spaceId: context.daoSpaceIdHex,
374
- daoSpaceAddress: context.daoSpaceAddress,
375
357
  newMemberSpaceId: context.spaceIdHex,
376
- network: getLegacyNetwork(),
358
+ network: 'TESTNET',
377
359
  });
378
360
  await sendTransactionAndWait(context, {
379
361
  label,
@@ -387,16 +369,16 @@ async function createLegacyAddMemberProposal(context, label) {
387
369
  });
388
370
  return proposal;
389
371
  }
372
+ // describe.skip('legacy deprecated API e2e surface', () => {
390
373
  describe.sequential('legacy deprecated API e2e surface', () => {
391
374
  it('personalSpace.hasSpace validates the account space onchain', async () => {
392
375
  const context = await getTestContext();
393
376
  const hasSpace = await personalSpace.hasSpace({
394
377
  address: context.account.address,
395
- network: e2e.networkish,
396
378
  });
397
379
  expect(hasSpace).toBe(true);
398
380
  const spaceAddress = (await context.publicClient.readContract({
399
- address: e2e.contracts.SPACE_REGISTRY_ADDRESS,
381
+ address: requireTestnetContract('SPACE_REGISTRY_ADDRESS'),
400
382
  abi: SpaceRegistryAbi,
401
383
  functionName: 'spaceIdToAddress',
402
384
  args: [context.spaceIdHex],
@@ -404,11 +386,11 @@ describe.sequential('legacy deprecated API e2e surface', () => {
404
386
  expect(spaceAddress.toLowerCase()).not.toBe(ZERO_ADDRESS.toLowerCase());
405
387
  }, TEST_TIMEOUT_MS);
406
388
  it('Ipfs.uploadCSV uploads CSV data', async () => {
407
- const csvCid = await Ipfs.uploadCSV(`name,run\nLegacy API surface,${Date.now().toString(36)}`, getLegacyNetwork());
389
+ const csvCid = await Ipfs.uploadCSV(`name,run\nLegacy API surface,${Date.now().toString(36)}`, 'TESTNET');
408
390
  expect(csvCid).toMatch(/^ipfs:\/\//);
409
391
  }, TEST_TIMEOUT_MS);
410
392
  it('Ipfs.uploadImage uploads an image and returns dimensions', async () => {
411
- const uploadedImage = await Ipfs.uploadImage({ blob: tinyPngBlob() }, getLegacyNetwork(), true);
393
+ const uploadedImage = await Ipfs.uploadImage({ blob: tinyPngBlob() }, 'TESTNET', true);
412
394
  expect(uploadedImage.cid).toMatch(/^ipfs:\/\//);
413
395
  expect(uploadedImage.dimensions).toEqual({ width: 1, height: 1 });
414
396
  }, TEST_TIMEOUT_MS);
@@ -419,7 +401,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
419
401
  blob: tinyPngBlob(),
420
402
  name: imageName,
421
403
  description: 'Created by the legacy API e2e surface test',
422
- network: getLegacyNetwork(),
404
+ network: 'TESTNET',
423
405
  });
424
406
  expect(image.cid).toMatch(/^ipfs:\/\//);
425
407
  await publishOps(context, 'E2E legacy API image', image.ops);
@@ -434,7 +416,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
434
416
  name: 'E2E legacy upload-only edit',
435
417
  ops: entity.ops,
436
418
  author: context.spaceId,
437
- network: getLegacyNetwork(),
419
+ network: 'TESTNET',
438
420
  });
439
421
  expect(edit.cid).toMatch(/^ipfs:\/\//);
440
422
  }, TEST_TIMEOUT_MS);
@@ -589,7 +571,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
589
571
  const commentA = await Graph.createComment({
590
572
  content: commentAContent,
591
573
  replyTo: { entityId: entity.id, spaceId: context.spaceId },
592
- network: getLegacyNetwork(),
574
+ network: 'TESTNET',
593
575
  });
594
576
  expect(filterReplyToRelations(commentA.ops)).toHaveLength(1);
595
577
  await publishOps(context, 'E2E legacy comment A', commentA.ops);
@@ -599,7 +581,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
599
581
  const commentB = await Graph.createComment({
600
582
  content: commentBContent,
601
583
  replyTo: { entityId: commentA.id, spaceId: context.spaceId },
602
- network: getLegacyNetwork(),
584
+ network: 'TESTNET',
603
585
  });
604
586
  expect(filterReplyToRelations(commentB.ops)).toHaveLength(2);
605
587
  await publishOps(context, 'E2E legacy comment B', commentB.ops);
@@ -612,7 +594,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
612
594
  const comment = await Graph.createComment({
613
595
  content: 'Legacy API comment before update',
614
596
  replyTo: { entityId: entity.id, spaceId: context.spaceId },
615
- network: getLegacyNetwork(),
597
+ network: 'TESTNET',
616
598
  });
617
599
  await publishOps(context, 'E2E legacy comment update setup', comment.ops);
618
600
  await waitForEntityName(comment.id, context.spaceId, deriveCommentName('Legacy API comment before update'));
@@ -645,7 +627,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
645
627
  const deleteResult = await Graph.deleteEntity({
646
628
  id: deleteContextEntity.id,
647
629
  spaceId: context.spaceId,
648
- network: getLegacyNetwork(),
630
+ network: 'TESTNET',
649
631
  });
650
632
  expect(deleteResult.ops.length).toBeGreaterThan(0);
651
633
  await publishOps(context, 'E2E legacy delete entity', deleteResult.ops);
@@ -658,7 +640,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
658
640
  authorSpaceId: context.spaceId,
659
641
  spaceId: context.spaceId,
660
642
  entityId: entity.id,
661
- network: getLegacyNetwork(),
643
+ network: 'TESTNET',
662
644
  });
663
645
  await sendTransactionAndWait(context, {
664
646
  label: 'E2E legacy upvote entity',
@@ -674,7 +656,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
674
656
  authorSpaceId: context.spaceId,
675
657
  spaceId: context.spaceId,
676
658
  entityId: entity.id,
677
- network: getLegacyNetwork(),
659
+ network: 'TESTNET',
678
660
  });
679
661
  await sendTransactionAndWait(context, {
680
662
  label: 'E2E legacy downvote entity',
@@ -690,7 +672,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
690
672
  authorSpaceId: context.spaceId,
691
673
  spaceId: context.spaceId,
692
674
  entityId: entity.id,
693
- network: getLegacyNetwork(),
675
+ network: 'TESTNET',
694
676
  });
695
677
  await sendTransactionAndWait(context, {
696
678
  label: 'E2E legacy upvote before withdraw',
@@ -702,7 +684,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
702
684
  authorSpaceId: context.spaceId,
703
685
  spaceId: context.spaceId,
704
686
  entityId: entity.id,
705
- network: getLegacyNetwork(),
687
+ network: 'TESTNET',
706
688
  });
707
689
  await sendTransactionAndWait(context, {
708
690
  label: 'E2E legacy withdraw entity vote',
@@ -729,7 +711,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
729
711
  callerSpaceId: dao.spaceIdHex,
730
712
  daoSpaceId: dao.daoSpaceIdHex,
731
713
  votingMode: 'FAST',
732
- network: getLegacyNetwork(),
714
+ network: 'TESTNET',
733
715
  });
734
716
  await sendTransactionAndWait(dao, {
735
717
  label: 'legacy API DAO propose edit',
@@ -740,7 +722,8 @@ describe.sequential('legacy deprecated API e2e surface', () => {
740
722
  daoSpaceId: dao.daoSpaceId,
741
723
  proposedBy: dao.spaceId,
742
724
  votingMode: 'FAST',
743
- actionType: ['PUBLISH', 'UNKNOWN'],
725
+ actionType: 'PUBLISH',
726
+ contentUri: proposal.cid,
744
727
  });
745
728
  }, TEST_TIMEOUT_MS);
746
729
  it('daoSpace.proposeAddMember creates an indexed add-member proposal', async () => {
@@ -752,9 +735,8 @@ describe.sequential('legacy deprecated API e2e surface', () => {
752
735
  const proposal = daoSpace.proposeRemoveMember({
753
736
  authorSpaceId: dao.spaceIdHex,
754
737
  spaceId: dao.daoSpaceIdHex,
755
- daoSpaceAddress: dao.daoSpaceAddress,
756
738
  memberToRemoveSpaceId: dao.spaceIdHex,
757
- network: getLegacyNetwork(),
739
+ network: 'TESTNET',
758
740
  });
759
741
  await sendTransactionAndWait(dao, {
760
742
  label: 'legacy API DAO propose remove member',
@@ -772,9 +754,8 @@ describe.sequential('legacy deprecated API e2e surface', () => {
772
754
  const proposal = daoSpace.proposeAddEditor({
773
755
  authorSpaceId: dao.spaceIdHex,
774
756
  spaceId: dao.daoSpaceIdHex,
775
- daoSpaceAddress: dao.daoSpaceAddress,
776
757
  newEditorSpaceId: dao.spaceIdHex,
777
- network: getLegacyNetwork(),
758
+ network: 'TESTNET',
778
759
  });
779
760
  await sendTransactionAndWait(dao, {
780
761
  label: 'legacy API DAO propose add editor',
@@ -792,9 +773,8 @@ describe.sequential('legacy deprecated API e2e surface', () => {
792
773
  const proposal = daoSpace.proposeRemoveEditor({
793
774
  authorSpaceId: dao.spaceIdHex,
794
775
  spaceId: dao.daoSpaceIdHex,
795
- daoSpaceAddress: dao.daoSpaceAddress,
796
776
  editorToRemoveSpaceId: dao.spaceIdHex,
797
- network: getLegacyNetwork(),
777
+ network: 'TESTNET',
798
778
  });
799
779
  await sendTransactionAndWait(dao, {
800
780
  label: 'legacy API DAO propose remove editor',
@@ -812,7 +792,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
812
792
  const proposal = daoSpace.proposeRequestMembership({
813
793
  authorSpaceId: dao.spaceIdHex,
814
794
  spaceId: dao.daoSpaceIdHex,
815
- network: getLegacyNetwork(),
795
+ network: 'TESTNET',
816
796
  });
817
797
  await sendTransactionAndWait(dao, {
818
798
  label: 'legacy API DAO propose request membership',
@@ -835,7 +815,7 @@ describe.sequential('legacy deprecated API e2e surface', () => {
835
815
  spaceId: dao.daoSpaceIdHex,
836
816
  proposalId: proposal.proposalId,
837
817
  vote: 'YES',
838
- network: getLegacyNetwork(),
818
+ network: 'TESTNET',
839
819
  });
840
820
  await sendTransactionAndWait(dao, {
841
821
  label: 'legacy API DAO vote proposal',
@@ -851,10 +831,10 @@ describe.sequential('legacy deprecated API e2e surface', () => {
851
831
  authorSpaceId: dao.spaceIdHex,
852
832
  spaceId: dao.daoSpaceIdHex,
853
833
  proposalId: proposal.proposalId,
854
- network: getLegacyNetwork(),
834
+ network: 'TESTNET',
855
835
  });
856
- expect(execute.to).toBe(e2e.contracts.SPACE_REGISTRY_ADDRESS);
836
+ expect(execute.to).toBe(requireTestnetContract('SPACE_REGISTRY_ADDRESS'));
857
837
  expect(execute.calldata).toMatch(/^0x[0-9a-fA-F]+$/);
858
838
  }, TEST_TIMEOUT_MS);
859
839
  });
860
- //# sourceMappingURL=legacy-api-surface.e2e.test.js.map
840
+ //# sourceMappingURL=e2e-legacy-api-surface.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-legacy-api-surface.test.js","sourceRoot":"","sources":["../../src/e2e-legacy-api-surface.test.ts"],"names":[],"mappings":"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"}
@@ -3,49 +3,41 @@
3
3
  * 100% = 10e6 (10,000,000), so 50% = 5e6 (5,000,000)
4
4
  */
5
5
  export declare const RATIO_BASE: bigint;
6
- /** Minimum voting duration in seconds, matching the contracts v2 lower bound. */
6
+ /** Minimum voting duration in seconds (1 minute) */
7
+ export declare const MINIMUM_VOTING_DURATION_SECONDS = 60;
8
+ /** Minimum voting duration in seconds */
7
9
  export declare const MINIMUM_VOTING_DURATION: bigint;
8
10
  /** Minimum voting duration in days */
9
11
  export declare const MINIMUM_VOTING_DURATION_DAYS: number;
10
- /** Minimum execution grace period in seconds, matching the contracts v2 lower bound. */
11
- export declare const MINIMUM_EXECUTION_GRACE_PERIOD: bigint;
12
- /** Minimum execution grace period in days */
13
- export declare const MINIMUM_EXECUTION_GRACE_PERIOD_DAYS: number;
14
12
  /**
15
- * User-friendly voting settings input (using percentages and days)
13
+ * User-friendly voting settings input (using percentages and seconds)
16
14
  */
17
- export interface VotingSettingsInput {
18
- /** Partial percentage threshold for slow path late execution (0-100) */
19
- partialPercentageSupportThreshold: number;
20
- /** Universal percentage threshold for slow path early execution (0-100) */
21
- universalPercentageSupportThreshold: number;
15
+ type VotingSettingsInputBase = {
16
+ /** Percentage threshold for slow path (0-100) */
17
+ slowPathPercentageThreshold: number;
22
18
  /** Number of editors required for fast path approval */
23
- flatSupportThreshold: number;
19
+ fastPathFlatThreshold: number;
24
20
  /** Minimum number of editors required to vote */
25
21
  quorum: number;
26
- /** Voting duration in days */
22
+ };
23
+ export type VotingSettingsInput = VotingSettingsInputBase & ({
24
+ /** Voting duration in seconds (minimum 1 minute) */
25
+ durationInSeconds: number;
26
+ durationInDays?: never;
27
+ } | {
28
+ /** @deprecated Use durationInSeconds for minute-level durations. */
27
29
  durationInDays: number;
28
- /** Whether newly added members start without fast-path access */
29
- disableFastPathAccessForNewMembers: boolean;
30
- /** Execution grace period in days */
31
- executionGracePeriodInDays: number;
32
- }
30
+ durationInSeconds?: never;
31
+ });
33
32
  /**
34
33
  * Contract-level voting settings (using raw values)
35
34
  */
36
35
  export interface VotingSettings {
37
- partialPercentageSupportThreshold: bigint;
38
- universalPercentageSupportThreshold: bigint;
39
- flatSupportThreshold: bigint;
36
+ slowPathPercentageThreshold: bigint;
37
+ fastPathFlatThreshold: bigint;
40
38
  quorum: bigint;
41
39
  duration: bigint;
42
- disableFastPathAccessForNewMembers: boolean;
43
- executionGracePeriod: bigint;
44
40
  }
45
- /**
46
- * Sensible user-friendly defaults for contracts v2 DAO spaces.
47
- */
48
- export declare const DEFAULT_VOTING_SETTINGS: VotingSettingsInput;
49
41
  /**
50
42
  * Convert a percentage (0-100) to the contract's ratio format.
51
43
  */
@@ -64,14 +56,8 @@ export declare function toContractVotingSettings(input: VotingSettingsInput): Vo
64
56
  export declare function validateIpfsUri(uri: string): string | null;
65
57
  /**
66
58
  * Validate voting settings input.
67
- *
68
- * When `totalEditors` is provided, the flat support threshold and quorum are
69
- * also checked against that known editor count. For existing DAO spaces the
70
- * current editor count may be unknown client-side, so callers can omit it and
71
- * still get deterministic local validation for numeric shape, percentages, and
72
- * duration lower bounds before the contract enforces editor-count limits.
73
59
  */
74
- export declare function validateVotingSettingsInput(settings: VotingSettingsInput, totalEditors?: number): string | null;
60
+ export declare function validateVotingSettingsInput(settings: VotingSettingsInput, totalEditors: number): string | null;
75
61
  export type CreateDaoSpaceCalldataParams = {
76
62
  /** Voting settings for the DAO space */
77
63
  votingSettings: VotingSettingsInput;
@@ -91,4 +77,5 @@ export type CreateDaoSpaceCalldataParams = {
91
77
  * this helper temporarily for legacy calldata compatibility.
92
78
  */
93
79
  export declare function getCreateDaoSpaceCalldata(args: CreateDaoSpaceCalldataParams): `0x${string}`;
80
+ export {};
94
81
  //# sourceMappingURL=get-create-dao-space-calldata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-create-dao-space-calldata.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-create-dao-space-calldata.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAe,CAAC;AAEvC,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,sCAAsC;AACtC,eAAO,MAAM,4BAA4B,QAAc,CAAC;AAExD,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,QAAkB,CAAC;AAE9D,6CAA6C;AAC7C,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,iCAAiC,EAAE,MAAM,CAAC;IAC1C,2EAA2E;IAC3E,mCAAmC,EAAE,MAAM,CAAC;IAC5C,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,kCAAkC,EAAE,OAAO,CAAC;IAC5C,qCAAqC;IACrC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC,EAAE,MAAM,CAAC;IAC1C,mCAAmC,EAAE,MAAM,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBAQrC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAUnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB1D;AAMD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqC/G;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,wCAAwC;IACxC,cAAc,EAAE,mBAAmB,CAAC;IACpC,wGAAwG;IACxG,qBAAqB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IACvC,+FAA+F;IAC/F,qBAAqB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IACvC,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,4BAA4B,GAAG,KAAK,MAAM,EAAE,CAiD3F"}
1
+ {"version":3,"file":"get-create-dao-space-calldata.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-create-dao-space-calldata.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAe,CAAC;AAEvC,oDAAoD;AACpD,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,yCAAyC;AACzC,eAAO,MAAM,uBAAuB,QAA0C,CAAC;AAE/E,sCAAsC;AACtC,eAAO,MAAM,4BAA4B,QAAgB,CAAC;AAI1D;;GAEG;AACH,KAAK,uBAAuB,GAAG;IAC7B,iDAAiD;IACjD,2BAA2B,EAAE,MAAM,CAAC;IACpC,wDAAwD;IACxD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GACvD,CACI;IACE,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACE,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,KAAK,CAAC;CAC3B,CACJ,CAAC;AAEJ;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2BAA2B,EAAE,MAAM,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AASD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAOnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB1D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyB9G;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,wCAAwC;IACxC,cAAc,EAAE,mBAAmB,CAAC;IACpC,wGAAwG;IACxG,qBAAqB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IACvC,+FAA+F;IAC/F,qBAAqB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IACvC,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,4BAA4B,GAAG,KAAK,MAAM,EAAE,CA+C3F"}