@geoprotocol/geo-sdk 0.19.3 → 0.19.4

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 (36) hide show
  1. package/dist/src/abis/dao-space-v2.test.d.ts +2 -0
  2. package/dist/src/abis/dao-space-v2.test.d.ts.map +1 -0
  3. package/dist/src/abis/dao-space-v2.test.js +67 -0
  4. package/dist/src/abis/dao-space-v2.test.js.map +1 -0
  5. package/dist/src/api-surface.e2e.test.d.ts +2 -0
  6. package/dist/src/api-surface.e2e.test.d.ts.map +1 -0
  7. package/dist/src/api-surface.e2e.test.js +1007 -0
  8. package/dist/src/api-surface.e2e.test.js.map +1 -0
  9. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +2 -0
  10. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +1 -0
  11. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +239 -0
  12. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +1 -0
  13. package/dist/src/dao-space/propose-update-voting-settings.d.ts +8 -0
  14. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +1 -0
  15. package/dist/src/dao-space/propose-update-voting-settings.js +19 -0
  16. package/dist/src/dao-space/propose-update-voting-settings.js.map +1 -0
  17. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +2 -0
  18. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +1 -0
  19. package/dist/src/dao-space/propose-update-voting-settings.test.js +118 -0
  20. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +1 -0
  21. package/dist/src/e2e-test-environment.d.ts +26 -0
  22. package/dist/src/e2e-test-environment.d.ts.map +1 -0
  23. package/dist/src/e2e-test-environment.js +150 -0
  24. package/dist/src/e2e-test-environment.js.map +1 -0
  25. package/dist/src/legacy-api-surface.e2e.test.d.ts +2 -0
  26. package/dist/src/legacy-api-surface.e2e.test.d.ts.map +1 -0
  27. package/dist/src/legacy-api-surface.e2e.test.js +860 -0
  28. package/dist/src/legacy-api-surface.e2e.test.js.map +1 -0
  29. package/dist/src/ranks/create-rank.test.js +21 -0
  30. package/dist/src/ranks/create-rank.test.js.map +1 -1
  31. package/dist/src/ranks/update-rank.test.js +11 -0
  32. package/dist/src/ranks/update-rank.test.js.map +1 -1
  33. package/dist/src/ranks/vote-ops.d.ts.map +1 -1
  34. package/dist/src/ranks/vote-ops.js +5 -2
  35. package/dist/src/ranks/vote-ops.js.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,150 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-test-environment.js","sourceRoot":"","sources":["../../src/e2e-test-environment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=legacy-api-surface.e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-api-surface.e2e.test.d.ts","sourceRoot":"","sources":["../../src/legacy-api-surface.e2e.test.ts"],"names":[],"mappings":""}