@geoprotocol/geo-sdk 0.19.0 → 0.19.1

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 (176) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/abis/dao-space-factory.d.ts +43 -6
  7. package/dist/src/abis/dao-space-factory.d.ts.map +1 -1
  8. package/dist/src/abis/dao-space-factory.js +38 -27
  9. package/dist/src/abis/dao-space-factory.js.map +1 -1
  10. package/dist/src/abis/dao-space.d.ts +98 -7
  11. package/dist/src/abis/dao-space.d.ts.map +1 -1
  12. package/dist/src/abis/dao-space.js +61 -99
  13. package/dist/src/abis/dao-space.js.map +1 -1
  14. package/dist/src/abis/index.d.ts +2 -2
  15. package/dist/src/abis/index.d.ts.map +1 -1
  16. package/dist/src/abis/index.js +2 -2
  17. package/dist/src/abis/index.js.map +1 -1
  18. package/dist/src/abis/space-registry.d.ts +26 -0
  19. package/dist/src/abis/space-registry.d.ts.map +1 -1
  20. package/dist/src/abis/space-registry.js +33 -0
  21. package/dist/src/abis/space-registry.js.map +1 -1
  22. package/dist/src/api-surface.e2e.test.d.ts +2 -0
  23. package/dist/src/api-surface.e2e.test.d.ts.map +1 -0
  24. package/dist/src/{e2e-api-surface.test.js → api-surface.e2e.test.js} +287 -102
  25. package/dist/src/api-surface.e2e.test.js.map +1 -0
  26. package/dist/src/client/dao-spaces.d.ts +93 -33
  27. package/dist/src/client/dao-spaces.d.ts.map +1 -1
  28. package/dist/src/client/dao-spaces.js +174 -42
  29. package/dist/src/client/dao-spaces.js.map +1 -1
  30. package/dist/src/client/dao-spaces.test.js +313 -79
  31. package/dist/src/client/dao-spaces.test.js.map +1 -1
  32. package/dist/src/client/personal-spaces.d.ts +74 -0
  33. package/dist/src/client/personal-spaces.d.ts.map +1 -1
  34. package/dist/src/client/personal-spaces.js +82 -2
  35. package/dist/src/client/personal-spaces.js.map +1 -1
  36. package/dist/src/client/spaces.test.js +27 -7
  37. package/dist/src/client/spaces.test.js.map +1 -1
  38. package/dist/src/client.d.ts +29 -16
  39. package/dist/src/client.d.ts.map +1 -1
  40. package/dist/src/client.js +101 -59
  41. package/dist/src/client.js.map +1 -1
  42. package/dist/src/client.test.js +8 -3
  43. package/dist/src/client.test.js.map +1 -1
  44. package/dist/src/dao-space/constants.d.ts +10 -0
  45. package/dist/src/dao-space/constants.d.ts.map +1 -1
  46. package/dist/src/dao-space/constants.js +10 -0
  47. package/dist/src/dao-space/constants.js.map +1 -1
  48. package/dist/src/dao-space/execute-proposal.d.ts +1 -1
  49. package/dist/src/dao-space/execute-proposal.js +2 -2
  50. package/dist/src/dao-space/execute-proposal.js.map +1 -1
  51. package/dist/src/dao-space/index.d.ts +2 -1
  52. package/dist/src/dao-space/index.d.ts.map +1 -1
  53. package/dist/src/dao-space/index.js +1 -0
  54. package/dist/src/dao-space/index.js.map +1 -1
  55. package/dist/src/dao-space/propose-add-editor.d.ts +1 -20
  56. package/dist/src/dao-space/propose-add-editor.d.ts.map +1 -1
  57. package/dist/src/dao-space/propose-add-editor.js +12 -87
  58. package/dist/src/dao-space/propose-add-editor.js.map +1 -1
  59. package/dist/src/dao-space/propose-add-editor.test.js +16 -4
  60. package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
  61. package/dist/src/dao-space/propose-add-member.d.ts +1 -20
  62. package/dist/src/dao-space/propose-add-member.d.ts.map +1 -1
  63. package/dist/src/dao-space/propose-add-member.js +12 -87
  64. package/dist/src/dao-space/propose-add-member.js.map +1 -1
  65. package/dist/src/dao-space/propose-add-member.test.js +13 -0
  66. package/dist/src/dao-space/propose-add-member.test.js.map +1 -1
  67. package/dist/src/dao-space/propose-edit.test.js +45 -0
  68. package/dist/src/dao-space/propose-edit.test.js.map +1 -1
  69. package/dist/src/dao-space/propose-remove-editor.d.ts +1 -22
  70. package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
  71. package/dist/src/dao-space/propose-remove-editor.js +12 -94
  72. package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
  73. package/dist/src/dao-space/propose-remove-editor.test.js +22 -4
  74. package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
  75. package/dist/src/dao-space/propose-remove-member.d.ts +1 -22
  76. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
  77. package/dist/src/dao-space/propose-remove-member.js +12 -94
  78. package/dist/src/dao-space/propose-remove-member.js.map +1 -1
  79. package/dist/src/dao-space/propose-remove-member.test.js +19 -0
  80. package/dist/src/dao-space/propose-remove-member.test.js.map +1 -1
  81. package/dist/src/dao-space/types.d.ts +72 -11
  82. package/dist/src/dao-space/types.d.ts.map +1 -1
  83. package/dist/src/dao-space/vote-proposal.d.ts +1 -1
  84. package/dist/src/dao-space/vote-proposal.js +2 -2
  85. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  86. package/dist/src/dao-space/vote-proposal.test.js +54 -0
  87. package/dist/src/dao-space/vote-proposal.test.js.map +1 -1
  88. package/dist/src/e2e-test-environment.d.ts +26 -0
  89. package/dist/src/e2e-test-environment.d.ts.map +1 -0
  90. package/dist/src/e2e-test-environment.js +150 -0
  91. package/dist/src/e2e-test-environment.js.map +1 -0
  92. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +32 -9
  93. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  94. package/dist/src/encodings/get-create-dao-space-calldata.js +63 -16
  95. package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
  96. package/dist/src/encodings/get-create-dao-space-calldata.test.js +90 -23
  97. package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -1
  98. package/dist/src/full-flow-test.test.js +5 -2
  99. package/dist/src/full-flow-test.test.js.map +1 -1
  100. package/dist/src/legacy-api-surface.e2e.test.d.ts +2 -0
  101. package/dist/src/legacy-api-surface.e2e.test.d.ts.map +1 -0
  102. package/dist/src/{e2e-legacy-api-surface.test.js → legacy-api-surface.e2e.test.js} +91 -71
  103. package/dist/src/legacy-api-surface.e2e.test.js.map +1 -0
  104. package/dist/src/personal-space/constants.d.ts +1 -1
  105. package/dist/src/personal-space/constants.d.ts.map +1 -1
  106. package/dist/src/personal-space/constants.js +1 -1
  107. package/dist/src/personal-space/constants.js.map +1 -1
  108. package/dist/src/personal-space/create-space.d.ts +2 -2
  109. package/dist/src/personal-space/create-space.d.ts.map +1 -1
  110. package/dist/src/personal-space/create-space.js +4 -3
  111. package/dist/src/personal-space/create-space.js.map +1 -1
  112. package/dist/src/personal-space/types.d.ts +4 -1
  113. package/dist/src/personal-space/types.d.ts.map +1 -1
  114. package/package.json +1 -1
  115. package/dist/proto.d.ts +0 -5
  116. package/dist/proto.d.ts.map +0 -1
  117. package/dist/proto.js +0 -5
  118. package/dist/proto.js.map +0 -1
  119. package/dist/src/client/proposals.d.ts +0 -185
  120. package/dist/src/client/proposals.d.ts.map +0 -1
  121. package/dist/src/client/proposals.js +0 -294
  122. package/dist/src/client/proposals.js.map +0 -1
  123. package/dist/src/client/proposals.test.d.ts +0 -2
  124. package/dist/src/client/proposals.test.d.ts.map +0 -1
  125. package/dist/src/client/proposals.test.js +0 -243
  126. package/dist/src/client/proposals.test.js.map +0 -1
  127. package/dist/src/contracts-v2/abis.d.ts +0 -196
  128. package/dist/src/contracts-v2/abis.d.ts.map +0 -1
  129. package/dist/src/contracts-v2/abis.js +0 -110
  130. package/dist/src/contracts-v2/abis.js.map +0 -1
  131. package/dist/src/contracts-v2/actions.d.ts +0 -56
  132. package/dist/src/contracts-v2/actions.d.ts.map +0 -1
  133. package/dist/src/contracts-v2/actions.js +0 -83
  134. package/dist/src/contracts-v2/actions.js.map +0 -1
  135. package/dist/src/contracts-v2/encoding.d.ts +0 -80
  136. package/dist/src/contracts-v2/encoding.d.ts.map +0 -1
  137. package/dist/src/contracts-v2/encoding.js +0 -193
  138. package/dist/src/contracts-v2/encoding.js.map +0 -1
  139. package/dist/src/contracts-v2/encoding.test.d.ts +0 -2
  140. package/dist/src/contracts-v2/encoding.test.d.ts.map +0 -1
  141. package/dist/src/contracts-v2/encoding.test.js +0 -93
  142. package/dist/src/contracts-v2/encoding.test.js.map +0 -1
  143. package/dist/src/contracts-v2/voting-settings.d.ts +0 -48
  144. package/dist/src/contracts-v2/voting-settings.d.ts.map +0 -1
  145. package/dist/src/contracts-v2/voting-settings.js +0 -69
  146. package/dist/src/contracts-v2/voting-settings.js.map +0 -1
  147. package/dist/src/e2e/local-geobrowser.d.ts +0 -9
  148. package/dist/src/e2e/local-geobrowser.d.ts.map +0 -1
  149. package/dist/src/e2e/local-geobrowser.js +0 -35
  150. package/dist/src/e2e/local-geobrowser.js.map +0 -1
  151. package/dist/src/e2e/v2-contracts.test.d.ts +0 -2
  152. package/dist/src/e2e/v2-contracts.test.d.ts.map +0 -1
  153. package/dist/src/e2e/v2-contracts.test.js +0 -25
  154. package/dist/src/e2e/v2-contracts.test.js.map +0 -1
  155. package/dist/src/e2e-api-surface.test.d.ts +0 -2
  156. package/dist/src/e2e-api-surface.test.d.ts.map +0 -1
  157. package/dist/src/e2e-api-surface.test.js.map +0 -1
  158. package/dist/src/e2e-flows.test.d.ts +0 -2
  159. package/dist/src/e2e-flows.test.d.ts.map +0 -1
  160. package/dist/src/e2e-flows.test.js +0 -445
  161. package/dist/src/e2e-flows.test.js.map +0 -1
  162. package/dist/src/e2e-legacy-api-surface.test.d.ts +0 -2
  163. package/dist/src/e2e-legacy-api-surface.test.d.ts.map +0 -1
  164. package/dist/src/e2e-legacy-api-surface.test.js.map +0 -1
  165. package/dist/src/graph/create-space.d.ts +0 -37
  166. package/dist/src/graph/create-space.d.ts.map +0 -1
  167. package/dist/src/graph/create-space.js +0 -67
  168. package/dist/src/graph/create-space.js.map +0 -1
  169. package/dist/src/ops/images.d.ts +0 -37
  170. package/dist/src/ops/images.d.ts.map +0 -1
  171. package/dist/src/ops/images.js +0 -69
  172. package/dist/src/ops/images.js.map +0 -1
  173. package/dist/src/proto/index.d.ts +0 -7
  174. package/dist/src/proto/index.d.ts.map +0 -1
  175. package/dist/src/proto/index.js +0 -7
  176. package/dist/src/proto/index.js.map +0 -1
@@ -1,35 +0,0 @@
1
- import { existsSync, readFileSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { defineGeoNetwork } from '../networks.js';
4
- const DEFAULT_HARNESS_PATH = '/Users/nikgraf/projects/geo/local-geobrowser';
5
- export function readLocalGeobrowserDeployment() {
6
- const harnessPath = process.env.GEO_SDK_LOCAL_GEOBROWSER_PATH ?? DEFAULT_HARNESS_PATH;
7
- const deploymentPath = process.env.GEO_SDK_V2_DEPLOYMENTS ?? join(harnessPath, '.deployments.json');
8
- if (!existsSync(deploymentPath)) {
9
- return null;
10
- }
11
- const raw = JSON.parse(readFileSync(deploymentPath, 'utf8'));
12
- return {
13
- spaceRegistryAddress: (raw.SPACE_REGISTRY_ADDRESS ?? raw.spaceRegistryAddress),
14
- daoSpaceFactoryAddress: (raw.DAO_SPACE_FACTORY_ADDRESS ?? raw.daoSpaceFactoryAddress),
15
- apiOrigin: process.env.GEO_SDK_V2_API_ORIGIN ?? 'http://localhost:3000',
16
- rpcUrl: process.env.GEO_SDK_V2_RPC_URL ?? 'http://localhost:8545',
17
- };
18
- }
19
- export function createLocalGeobrowserNetwork(deployment) {
20
- return defineGeoNetwork({
21
- id: 'LOCAL_GEOBROWSER',
22
- name: 'Local Geobrowser',
23
- apiOrigin: deployment.apiOrigin ?? 'http://localhost:3000',
24
- chain: {
25
- id: 31_337,
26
- name: 'Anvil',
27
- rpcUrl: deployment.rpcUrl ?? 'http://localhost:8545',
28
- },
29
- contracts: {
30
- SPACE_REGISTRY_ADDRESS: deployment.spaceRegistryAddress,
31
- DAO_SPACE_FACTORY_ADDRESS: deployment.daoSpaceFactoryAddress,
32
- },
33
- });
34
- }
35
- //# sourceMappingURL=local-geobrowser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-geobrowser.js","sourceRoot":"","sources":["../../../src/e2e/local-geobrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AASlD,MAAM,oBAAoB,GAAG,8CAA8C,CAAC;AAE5E,MAAM,UAAU,6BAA6B;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,oBAAoB,CAAC;IACtF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAEpG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAuC,CAAC;IACnG,OAAO;QACL,oBAAoB,EAAE,CAAC,GAAG,CAAC,sBAAsB,IAAI,GAAG,CAAC,oBAAoB,CAA8B;QAC3G,sBAAsB,EAAE,CAAC,GAAG,CAAC,yBAAyB,IAAI,GAAG,CAAC,sBAAsB,CAA8B;QAClH,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,uBAAuB;QACvE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAqC;IAChF,OAAO,gBAAgB,CAAC;QACtB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,uBAAuB;QAC1D,KAAK,EAAE;YACL,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,uBAAuB;SACrD;QACD,SAAS,EAAE;YACT,sBAAsB,EAAE,UAAU,CAAC,oBAAoB;YACvD,yBAAyB,EAAE,UAAU,CAAC,sBAAsB;SAC7D;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=v2-contracts.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v2-contracts.test.d.ts","sourceRoot":"","sources":["../../../src/e2e/v2-contracts.test.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { createPublicClient, http } from 'viem';
2
- import { describe, expect, it } from 'vitest';
3
- import { createGeoClient } from '../client.js';
4
- import { createLocalGeobrowserNetwork, readLocalGeobrowserDeployment } from './local-geobrowser.js';
5
- const describeIfEnabled = process.env.GEO_SDK_V2_CONTRACTS_E2E === '1' ? describe : describe.skip;
6
- describeIfEnabled('v2 contracts e2e', () => {
7
- it('loads a local-geobrowser deployment and checks configured contract bytecode', async () => {
8
- const deployment = readLocalGeobrowserDeployment();
9
- if (!deployment?.spaceRegistryAddress || !deployment.daoSpaceFactoryAddress) {
10
- console.warn('Skipping v2 contract e2e: set GEO_SDK_V2_DEPLOYMENTS or create local-geobrowser/.deployments.json with SPACE_REGISTRY_ADDRESS and DAO_SPACE_FACTORY_ADDRESS.');
11
- return;
12
- }
13
- const network = createLocalGeobrowserNetwork(deployment);
14
- const geo = createGeoClient({ network });
15
- const client = createPublicClient({
16
- transport: http(network.chain?.rpcUrl ?? 'http://localhost:8545'),
17
- });
18
- const spaceRegistryCode = await client.getBytecode({ address: deployment.spaceRegistryAddress });
19
- const daoFactoryCode = await client.getBytecode({ address: deployment.daoSpaceFactoryAddress });
20
- expect(geo.network.contracts?.SPACE_REGISTRY_ADDRESS).toBe(deployment.spaceRegistryAddress);
21
- expect(spaceRegistryCode).toBeDefined();
22
- expect(daoFactoryCode).toBeDefined();
23
- });
24
- });
25
- //# sourceMappingURL=v2-contracts.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v2-contracts.test.js","sourceRoot":"","sources":["../../../src/e2e/v2-contracts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEpG,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAElG,iBAAiB,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;QACnD,IAAI,CAAC,UAAU,EAAE,oBAAoB,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC;YAC5E,OAAO,CAAC,IAAI,CACV,8JAA8J,CAC/J,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,kBAAkB,CAAC;YAChC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,uBAAuB,CAAC;SAClE,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACjG,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAEhG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC5F,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=e2e-api-surface.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2e-api-surface.test.d.ts","sourceRoot":"","sources":["../../src/e2e-api-surface.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2e-api-surface.test.js","sourceRoot":"","sources":["../../src/e2e-api-surface.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=e2e-flows.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2e-flows.test.d.ts","sourceRoot":"","sources":["../../src/e2e-flows.test.ts"],"names":[],"mappings":""}
@@ -1,445 +0,0 @@
1
- import { createPublicClient, createWalletClient, http } from 'viem';
2
- import { privateKeyToAccount } from 'viem/accounts';
3
- import { expect, it } from 'vitest';
4
- import { SpaceRegistryAbi } from './abis/index.js';
5
- import { createGeoClient } from './client.js';
6
- import { DESCRIPTION_PROPERTY, RELATION_TYPE, REPLY_TO_PROPERTY } from './core/ids/system.js';
7
- import { toGrcId } from './id-utils.js';
8
- import { GeoTestnetConfig } from './networks.js';
9
- import * as Ops from './ops/index.js';
10
- const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
11
- const EMPTY_SPACE_ID = '0x00000000000000000000000000000000';
12
- const replyToGrcId = toGrcId(REPLY_TO_PROPERTY);
13
- const geo = createGeoClient({ network: GeoTestnetConfig });
14
- function requireTestnetContract(name) {
15
- const address = GeoTestnetConfig.contracts?.[name];
16
- if (!address) {
17
- throw new Error(`GeoTestnetConfig is missing ${name}`);
18
- }
19
- return address;
20
- }
21
- function requireTestnetRpcUrl() {
22
- const rpcUrl = GeoTestnetConfig.chain?.rpcUrl;
23
- if (!rpcUrl) {
24
- throw new Error('GeoTestnetConfig is missing an RPC URL');
25
- }
26
- return rpcUrl;
27
- }
28
- function createTestnetChain(rpcUrl) {
29
- const chainConfig = GeoTestnetConfig.chain;
30
- if (!chainConfig) {
31
- throw new Error('GeoTestnetConfig is missing chain config');
32
- }
33
- return {
34
- id: chainConfig.id,
35
- name: chainConfig.name,
36
- nativeCurrency: {
37
- name: 'Ethereum',
38
- symbol: 'ETH',
39
- decimals: 18,
40
- },
41
- rpcUrls: {
42
- default: {
43
- http: [rpcUrl],
44
- },
45
- public: {
46
- http: [rpcUrl],
47
- },
48
- },
49
- };
50
- }
51
- function filterReplyToRelations(ops) {
52
- return ops.filter((op) => op.type === 'createRelation' &&
53
- 'relationType' in op &&
54
- op.relationType.every((b, i) => b === replyToGrcId[i]));
55
- }
56
- /**
57
- * Converts a bytes16 hex space ID to a UUID string without dashes.
58
- */
59
- function hexToUuid(hex) {
60
- return hex.slice(2, 34).toLowerCase();
61
- }
62
- async function getSpaceIdHex(publicClient, address) {
63
- return (await publicClient.readContract({
64
- address: requireTestnetContract('SPACE_REGISTRY_ADDRESS'),
65
- abi: SpaceRegistryAbi,
66
- functionName: 'addressToSpaceId',
67
- args: [address],
68
- }));
69
- }
70
- async function ensurePersonalSpace({ accountAddress, account, publicClient, walletClient, }) {
71
- let spaceIdHex = await getSpaceIdHex(publicClient, accountAddress);
72
- if (spaceIdHex.toLowerCase() === EMPTY_SPACE_ID.toLowerCase()) {
73
- console.log('Creating personal space...');
74
- const createSpace = geo.personalSpaces.create({
75
- name: 'E2E Personal Space',
76
- accountAddress,
77
- });
78
- const createSpaceTxHash = await walletClient.sendTransaction({
79
- account,
80
- chain: walletClient.chain ?? null,
81
- to: createSpace.to,
82
- value: 0n,
83
- data: createSpace.calldata,
84
- });
85
- console.log('createSpaceTxHash', createSpaceTxHash);
86
- await publicClient.waitForTransactionReceipt({ hash: createSpaceTxHash });
87
- spaceIdHex = await getSpaceIdHex(publicClient, accountAddress);
88
- if (spaceIdHex.toLowerCase() !== EMPTY_SPACE_ID.toLowerCase()) {
89
- const spaceId = hexToUuid(spaceIdHex);
90
- const publishProfile = await geo.personalSpaces.publishEdit({
91
- name: 'Create personal space profile',
92
- spaceId,
93
- author: spaceId,
94
- ops: createSpace.ops,
95
- });
96
- const publishProfileTxHash = await walletClient.sendTransaction({
97
- account,
98
- chain: walletClient.chain ?? null,
99
- to: publishProfile.to,
100
- value: 0n,
101
- data: publishProfile.calldata,
102
- });
103
- console.log('publishProfileTxHash', publishProfileTxHash);
104
- await publicClient.waitForTransactionReceipt({ hash: publishProfileTxHash });
105
- }
106
- }
107
- if (spaceIdHex.toLowerCase() === EMPTY_SPACE_ID.toLowerCase()) {
108
- throw new Error(`Failed to create personal space for address ${accountAddress}`);
109
- }
110
- return {
111
- spaceIdHex,
112
- spaceId: hexToUuid(spaceIdHex),
113
- };
114
- }
115
- async function setupWallet() {
116
- const privateKey = process.env.PRIVATE_KEY;
117
- if (!privateKey) {
118
- throw new Error('PRIVATE_KEY environment variable is required. Run `pnpm create-private-key` to generate one.');
119
- }
120
- if (!privateKey.startsWith('0x')) {
121
- throw new Error('PRIVATE_KEY must be a hex string starting with 0x.');
122
- }
123
- const rpcUrl = requireTestnetRpcUrl();
124
- const addressPrivateKey = privateKey;
125
- const account = privateKeyToAccount(addressPrivateKey);
126
- console.log('address', account.address);
127
- const chain = createTestnetChain(rpcUrl);
128
- const walletClient = createWalletClient({
129
- account,
130
- chain,
131
- transport: http(rpcUrl),
132
- });
133
- const publicClient = createPublicClient({
134
- chain,
135
- transport: http(rpcUrl),
136
- });
137
- return {
138
- account,
139
- publicClient,
140
- walletClient,
141
- };
142
- }
143
- it.skip('should create a space and publish an edit with the new APIs', async () => {
144
- const { account, publicClient, walletClient } = await setupWallet();
145
- const { spaceId, spaceIdHex } = await ensurePersonalSpace({
146
- accountAddress: account.address,
147
- account,
148
- publicClient,
149
- walletClient,
150
- });
151
- console.log('spaceId (UUID)', spaceId);
152
- const spaceAddress = (await publicClient.readContract({
153
- address: requireTestnetContract('SPACE_REGISTRY_ADDRESS'),
154
- abi: SpaceRegistryAbi,
155
- functionName: 'spaceIdToAddress',
156
- args: [spaceIdHex],
157
- }));
158
- if (spaceAddress.toLowerCase() === ZERO_ADDRESS.toLowerCase()) {
159
- throw new Error(`Space ${spaceId} not found in registry (spaceIdHex=${spaceIdHex})`);
160
- }
161
- console.log('spaceAddress', spaceAddress);
162
- const { ops, id: entityId } = Ops.entities.create({
163
- name: 'Test Entity',
164
- description: 'Created via new API e2e flow test',
165
- });
166
- console.log('entityId', entityId);
167
- const { ops: unsetDescriptionOps } = Ops.entities.update({
168
- id: entityId,
169
- unset: [{ property: DESCRIPTION_PROPERTY }],
170
- });
171
- const { cid, editId, to, calldata } = await geo.personalSpaces.publishEdit({
172
- name: 'Test Edit',
173
- spaceId,
174
- ops: [...ops, ...unsetDescriptionOps],
175
- author: spaceId,
176
- });
177
- console.log('cid', cid);
178
- console.log('editId', editId);
179
- const publishTxHash = await walletClient.sendTransaction({
180
- account,
181
- chain: walletClient.chain ?? null,
182
- to,
183
- data: calldata,
184
- });
185
- console.log('publishTxHash', publishTxHash);
186
- const publishReceipt = await publicClient.waitForTransactionReceipt({
187
- hash: publishTxHash,
188
- });
189
- console.log('publishReceipt status', publishReceipt.status);
190
- if (publishReceipt.status === 'reverted') {
191
- throw new Error(`Publish transaction reverted: ${publishTxHash}`);
192
- }
193
- console.log('Successfully published edit to space', spaceId);
194
- }, 60000);
195
- it.skip('should create a DAO space and propose an edit with the new APIs', async () => {
196
- const { account, publicClient, walletClient } = await setupWallet();
197
- const { spaceIdHex } = await ensurePersonalSpace({
198
- accountAddress: account.address,
199
- account,
200
- publicClient,
201
- walletClient,
202
- });
203
- console.log('Personal space ID (to use as editor):', spaceIdHex);
204
- console.log('Creating DAO space...');
205
- const { to, calldata, spaceEntityId, cid } = await geo.daoSpaces.create({
206
- name: 'Test DAO Space',
207
- votingSettings: {
208
- partialPercentageSupportThreshold: 50,
209
- universalPercentageSupportThreshold: 90,
210
- flatSupportThreshold: 1,
211
- quorum: 1,
212
- durationInDays: 2,
213
- disableFastPathAccessForNewMembers: true,
214
- executionGracePeriodInDays: 14,
215
- },
216
- initialEditorSpaceIds: [spaceIdHex],
217
- author: hexToUuid(spaceIdHex),
218
- });
219
- console.log('spaceEntityId:', spaceEntityId);
220
- console.log('cid:', cid);
221
- console.log('to:', to);
222
- const createDaoSpaceTxHash = await walletClient.sendTransaction({
223
- account,
224
- chain: walletClient.chain ?? null,
225
- to,
226
- value: 0n,
227
- data: calldata,
228
- });
229
- console.log('createDaoSpaceTxHash', createDaoSpaceTxHash);
230
- const receipt = await publicClient.waitForTransactionReceipt({
231
- hash: createDaoSpaceTxHash,
232
- });
233
- console.log('receipt status', receipt.status);
234
- if (receipt.status === 'reverted') {
235
- throw new Error(`DAO space creation transaction reverted: ${createDaoSpaceTxHash}`);
236
- }
237
- console.log('Successfully created DAO space');
238
- const daoSpaceAddress = receipt.logs.find(log => log.address.toLowerCase() !== to.toLowerCase())?.address;
239
- if (!daoSpaceAddress) {
240
- throw new Error('Could not find DAO space address in transaction logs');
241
- }
242
- console.log('daoSpaceAddress:', daoSpaceAddress);
243
- const daoSpaceIdHex = await getSpaceIdHex(publicClient, daoSpaceAddress);
244
- console.log('daoSpaceIdHex:', daoSpaceIdHex);
245
- if (daoSpaceIdHex.toLowerCase() === EMPTY_SPACE_ID.toLowerCase()) {
246
- throw new Error('DAO space was not registered in the Space Registry');
247
- }
248
- console.log('Proposing edit to DAO space...');
249
- const { ops, id: entityId } = Ops.entities.create({
250
- name: 'DAO Entity',
251
- description: 'Created via DAO space proposal',
252
- });
253
- console.log('entityId:', entityId);
254
- const personalSpaceId = hexToUuid(spaceIdHex);
255
- const { editId, cid: proposalCid, to: proposalTo, calldata: proposalCalldata, proposalId, } = await geo.daoSpaces.proposeEdit({
256
- name: 'Add new entity to DAO space',
257
- ops,
258
- author: personalSpaceId,
259
- daoSpaceAddress,
260
- callerSpaceId: spaceIdHex,
261
- daoSpaceId: daoSpaceIdHex,
262
- votingMode: 'FAST',
263
- });
264
- console.log('editId:', editId);
265
- console.log('proposalCid:', proposalCid);
266
- console.log('proposalId:', proposalId.slice(2));
267
- const proposeTxHash = await walletClient.sendTransaction({
268
- account,
269
- chain: walletClient.chain ?? null,
270
- to: proposalTo,
271
- data: proposalCalldata,
272
- });
273
- console.log('proposeTxHash:', proposeTxHash);
274
- const proposeReceipt = await publicClient.waitForTransactionReceipt({
275
- hash: proposeTxHash,
276
- });
277
- console.log('proposeReceipt status:', proposeReceipt.status);
278
- if (proposeReceipt.status === 'reverted') {
279
- throw new Error(`Propose edit transaction reverted: ${proposeTxHash}`);
280
- }
281
- console.log('Successfully proposed edit to DAO space');
282
- console.log('Proposal ID:', proposalId.slice(2));
283
- }, 120000);
284
- it.skip('should create an entity and then delete it with the new APIs', async () => {
285
- const { account, publicClient, walletClient } = await setupWallet();
286
- const { spaceId } = await ensurePersonalSpace({
287
- accountAddress: account.address,
288
- account,
289
- publicClient,
290
- walletClient,
291
- });
292
- console.log('spaceId (UUID)', spaceId);
293
- const { ops: createOps, id: entityId } = Ops.entities.create({
294
- name: 'Entity to Delete',
295
- description: 'This entity will be deleted',
296
- });
297
- const { ops: relationOps, id: relationId } = Ops.relations.create({
298
- fromEntity: entityId,
299
- toEntity: '3dd25afe17ff40f290bd9f63799cd299',
300
- type: RELATION_TYPE,
301
- });
302
- console.log('entityId', entityId);
303
- console.log('relationId', relationId);
304
- const { cid: createCid, editId: createEditId, to: createTo, calldata: createCalldata, } = await geo.personalSpaces.publishEdit({
305
- name: 'Create Entity',
306
- spaceId,
307
- ops: [...createOps, ...relationOps],
308
- author: spaceId,
309
- });
310
- console.log('create cid', createCid);
311
- console.log('create editId', createEditId);
312
- const createTxHash = await walletClient.sendTransaction({
313
- account,
314
- chain: walletClient.chain ?? null,
315
- to: createTo,
316
- data: createCalldata,
317
- });
318
- console.log('createTxHash', createTxHash);
319
- const createReceipt = await publicClient.waitForTransactionReceipt({
320
- hash: createTxHash,
321
- });
322
- console.log('createReceipt status', createReceipt.status);
323
- if (createReceipt.status === 'reverted') {
324
- throw new Error(`Create transaction reverted: ${createTxHash}`);
325
- }
326
- console.log('Successfully created entity', entityId);
327
- await new Promise(resolve => setTimeout(resolve, 4000));
328
- const { ops: deleteOps } = await geo.entities.delete({
329
- id: entityId,
330
- spaceId,
331
- });
332
- console.log('deleteOps count', deleteOps.length);
333
- if (deleteOps.length === 0) {
334
- console.log('No ops to delete (entity may not have been indexed yet)');
335
- return;
336
- }
337
- const { cid: deleteCid, editId: deleteEditId, to: deleteTo, calldata: deleteCalldata, } = await geo.personalSpaces.publishEdit({
338
- name: 'Delete Entity',
339
- spaceId,
340
- ops: deleteOps,
341
- author: spaceId,
342
- });
343
- console.log('delete cid', deleteCid);
344
- console.log('delete editId', deleteEditId);
345
- const deleteTxHash = await walletClient.sendTransaction({
346
- account,
347
- chain: walletClient.chain ?? null,
348
- to: deleteTo,
349
- data: deleteCalldata,
350
- });
351
- console.log('deleteTxHash', deleteTxHash);
352
- const deleteReceipt = await publicClient.waitForTransactionReceipt({
353
- hash: deleteTxHash,
354
- });
355
- console.log('deleteReceipt status', deleteReceipt.status);
356
- if (deleteReceipt.status === 'reverted') {
357
- throw new Error(`Delete transaction reverted: ${deleteTxHash}`);
358
- }
359
- console.log('Successfully deleted entity', entityId);
360
- }, 120000);
361
- it.skip('should create an entity, comment on it, and comment on the comment with correct reply-to chains with the new APIs', async () => {
362
- const { account, publicClient, walletClient } = await setupWallet();
363
- const { spaceId } = await ensurePersonalSpace({
364
- accountAddress: account.address,
365
- account,
366
- publicClient,
367
- walletClient,
368
- });
369
- console.log('spaceId (UUID)', spaceId);
370
- const { ops: entityOps, id: entityId } = Ops.entities.create({
371
- name: 'Entity with Comments',
372
- description: 'This entity will have comments',
373
- });
374
- console.log('entityId', entityId);
375
- const { ops: commentAOps, id: commentAId } = await geo.comments.create({
376
- content: 'This is Comment A on the entity',
377
- replyTo: { entityId, spaceId },
378
- });
379
- console.log('commentAId', commentAId);
380
- const commentAReplyTos = filterReplyToRelations(commentAOps);
381
- console.log('Comment A reply-to count:', commentAReplyTos.length);
382
- expect(commentAReplyTos).toHaveLength(1);
383
- const { cid: cid1, to: to1, calldata: calldata1, } = await geo.personalSpaces.publishEdit({
384
- name: 'Create Entity and Comment A',
385
- spaceId,
386
- ops: [...entityOps, ...commentAOps],
387
- author: spaceId,
388
- });
389
- console.log('cid1', cid1);
390
- const tx1Hash = await walletClient.sendTransaction({
391
- account,
392
- chain: walletClient.chain ?? null,
393
- to: to1,
394
- data: calldata1,
395
- });
396
- console.log('tx1Hash', tx1Hash);
397
- const receipt1 = await publicClient.waitForTransactionReceipt({
398
- hash: tx1Hash,
399
- });
400
- console.log('receipt1 status', receipt1.status);
401
- if (receipt1.status === 'reverted') {
402
- throw new Error(`First publish transaction reverted: ${tx1Hash}`);
403
- }
404
- await new Promise(resolve => setTimeout(resolve, 4000));
405
- const { ops: commentBOps, id: commentBId } = await geo.comments.create({
406
- content: 'This is Comment B on Comment A',
407
- replyTo: { entityId: commentAId, spaceId },
408
- });
409
- console.log('commentBId', commentBId);
410
- const commentBReplyTos = filterReplyToRelations(commentBOps);
411
- console.log('Comment B reply-to count:', commentBReplyTos.length);
412
- expect(commentBReplyTos).toHaveLength(2);
413
- const { cid: cid2, to: to2, calldata: calldata2, } = await geo.personalSpaces.publishEdit({
414
- name: 'Create Comment B',
415
- spaceId,
416
- ops: commentBOps,
417
- author: spaceId,
418
- });
419
- console.log('cid2', cid2);
420
- const tx2Hash = await walletClient.sendTransaction({
421
- account,
422
- chain: walletClient.chain ?? null,
423
- to: to2,
424
- data: calldata2,
425
- });
426
- console.log('tx2Hash', tx2Hash);
427
- const receipt2 = await publicClient.waitForTransactionReceipt({
428
- hash: tx2Hash,
429
- });
430
- console.log('receipt2 status', receipt2.status);
431
- if (receipt2.status === 'reverted') {
432
- throw new Error(`Second publish transaction reverted: ${tx2Hash}`);
433
- }
434
- await new Promise(resolve => setTimeout(resolve, 4000));
435
- const { ops: commentCOps, id: commentCId } = await geo.comments.create({
436
- content: 'This is Comment C on Comment B',
437
- replyTo: { entityId: commentBId, spaceId },
438
- });
439
- console.log('commentCId', commentCId);
440
- const commentCReplyTos = filterReplyToRelations(commentCOps);
441
- console.log('Comment C reply-to count:', commentCReplyTos.length);
442
- expect(commentCReplyTos).toHaveLength(3);
443
- console.log('Successfully verified comment reply-to chain accumulation');
444
- }, 180000);
445
- //# sourceMappingURL=e2e-flows.test.js.map