@geoprotocol/geo-sdk 0.19.0 → 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 (90) hide show
  1. package/README.md +2 -2
  2. package/dist/src/client/dao-spaces.d.ts +2 -2
  3. package/dist/src/client/dao-spaces.js +2 -2
  4. package/dist/src/client.d.ts +2 -6
  5. package/dist/src/client.d.ts.map +1 -1
  6. package/dist/src/client.js +1 -1
  7. package/dist/src/client.js.map +1 -1
  8. package/dist/src/e2e-api-surface.test.js +2 -2
  9. package/dist/src/e2e-api-surface.test.js.map +1 -1
  10. package/dist/src/e2e-legacy-api-surface.test.js +2 -2
  11. package/dist/src/e2e-legacy-api-surface.test.js.map +1 -1
  12. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +16 -6
  13. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  14. package/dist/src/encodings/get-create-dao-space-calldata.js +24 -6
  15. package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
  16. package/dist/src/encodings/get-create-dao-space-calldata.test.js +48 -11
  17. package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -1
  18. package/package.json +1 -1
  19. package/dist/proto.d.ts +0 -5
  20. package/dist/proto.d.ts.map +0 -1
  21. package/dist/proto.js +0 -5
  22. package/dist/proto.js.map +0 -1
  23. package/dist/src/abis/dao-space-v2.test.d.ts +0 -2
  24. package/dist/src/abis/dao-space-v2.test.d.ts.map +0 -1
  25. package/dist/src/abis/dao-space-v2.test.js +0 -67
  26. package/dist/src/abis/dao-space-v2.test.js.map +0 -1
  27. package/dist/src/client/proposals.d.ts +0 -185
  28. package/dist/src/client/proposals.d.ts.map +0 -1
  29. package/dist/src/client/proposals.js +0 -294
  30. package/dist/src/client/proposals.js.map +0 -1
  31. package/dist/src/client/proposals.test.d.ts +0 -2
  32. package/dist/src/client/proposals.test.d.ts.map +0 -1
  33. package/dist/src/client/proposals.test.js +0 -243
  34. package/dist/src/client/proposals.test.js.map +0 -1
  35. package/dist/src/contracts-v2/abis.d.ts +0 -196
  36. package/dist/src/contracts-v2/abis.d.ts.map +0 -1
  37. package/dist/src/contracts-v2/abis.js +0 -110
  38. package/dist/src/contracts-v2/abis.js.map +0 -1
  39. package/dist/src/contracts-v2/actions.d.ts +0 -56
  40. package/dist/src/contracts-v2/actions.d.ts.map +0 -1
  41. package/dist/src/contracts-v2/actions.js +0 -83
  42. package/dist/src/contracts-v2/actions.js.map +0 -1
  43. package/dist/src/contracts-v2/encoding.d.ts +0 -80
  44. package/dist/src/contracts-v2/encoding.d.ts.map +0 -1
  45. package/dist/src/contracts-v2/encoding.js +0 -193
  46. package/dist/src/contracts-v2/encoding.js.map +0 -1
  47. package/dist/src/contracts-v2/encoding.test.d.ts +0 -2
  48. package/dist/src/contracts-v2/encoding.test.d.ts.map +0 -1
  49. package/dist/src/contracts-v2/encoding.test.js +0 -93
  50. package/dist/src/contracts-v2/encoding.test.js.map +0 -1
  51. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +0 -2
  52. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +0 -1
  53. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +0 -239
  54. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +0 -1
  55. package/dist/src/contracts-v2/voting-settings.d.ts +0 -48
  56. package/dist/src/contracts-v2/voting-settings.d.ts.map +0 -1
  57. package/dist/src/contracts-v2/voting-settings.js +0 -69
  58. package/dist/src/contracts-v2/voting-settings.js.map +0 -1
  59. package/dist/src/dao-space/propose-update-voting-settings.d.ts +0 -8
  60. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +0 -1
  61. package/dist/src/dao-space/propose-update-voting-settings.js +0 -19
  62. package/dist/src/dao-space/propose-update-voting-settings.js.map +0 -1
  63. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +0 -2
  64. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +0 -1
  65. package/dist/src/dao-space/propose-update-voting-settings.test.js +0 -118
  66. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +0 -1
  67. package/dist/src/e2e/local-geobrowser.d.ts +0 -9
  68. package/dist/src/e2e/local-geobrowser.d.ts.map +0 -1
  69. package/dist/src/e2e/local-geobrowser.js +0 -35
  70. package/dist/src/e2e/local-geobrowser.js.map +0 -1
  71. package/dist/src/e2e/v2-contracts.test.d.ts +0 -2
  72. package/dist/src/e2e/v2-contracts.test.d.ts.map +0 -1
  73. package/dist/src/e2e/v2-contracts.test.js +0 -25
  74. package/dist/src/e2e/v2-contracts.test.js.map +0 -1
  75. package/dist/src/e2e-flows.test.d.ts +0 -2
  76. package/dist/src/e2e-flows.test.d.ts.map +0 -1
  77. package/dist/src/e2e-flows.test.js +0 -445
  78. package/dist/src/e2e-flows.test.js.map +0 -1
  79. package/dist/src/graph/create-space.d.ts +0 -37
  80. package/dist/src/graph/create-space.d.ts.map +0 -1
  81. package/dist/src/graph/create-space.js +0 -67
  82. package/dist/src/graph/create-space.js.map +0 -1
  83. package/dist/src/ops/images.d.ts +0 -37
  84. package/dist/src/ops/images.d.ts.map +0 -1
  85. package/dist/src/ops/images.js +0 -69
  86. package/dist/src/ops/images.js.map +0 -1
  87. package/dist/src/proto/index.d.ts +0 -7
  88. package/dist/src/proto/index.d.ts.map +0 -1
  89. package/dist/src/proto/index.js +0 -7
  90. package/dist/src/proto/index.js.map +0 -1
@@ -1,69 +0,0 @@
1
- export const RATIO_BASE = BigInt(10e6);
2
- export const MINIMUM_VOTING_DURATION = BigInt(60);
3
- export const MINIMUM_EXECUTION_GRACE_PERIOD = BigInt(60 * 60);
4
- export const MINIMUM_VOTING_DURATION_DAYS = MINIMUM_VOTING_DURATION / BigInt(24 * 60 * 60);
5
- export function percentageToRatio(percentage) {
6
- return BigInt(Math.floor((percentage * 10e6) / 100));
7
- }
8
- export function daysToSeconds(days) {
9
- return BigInt(Math.floor(days * 24 * 60 * 60));
10
- }
11
- export function toContractVotingSettings(input) {
12
- if ('slowPathPercentageThreshold' in input) {
13
- return {
14
- partialPercentageSupportThreshold: percentageToRatio(input.slowPathPercentageThreshold),
15
- universalPercentageSupportThreshold: percentageToRatio(input.universalPercentageSupportThreshold ?? input.slowPathPercentageThreshold),
16
- flatSupportThreshold: BigInt(input.fastPathFlatThreshold),
17
- quorum: BigInt(input.quorum),
18
- duration: daysToSeconds(input.durationInDays),
19
- disableFastPathAccessForNewMembers: input.disableFastPathAccessForNewMembers ?? false,
20
- executionGracePeriod: input.executionGracePeriod !== undefined
21
- ? BigInt(input.executionGracePeriod)
22
- : daysToSeconds(input.executionGracePeriodInDays ?? 1),
23
- };
24
- }
25
- return {
26
- partialPercentageSupportThreshold: percentageToRatio(input.partialPercentageSupportThreshold),
27
- universalPercentageSupportThreshold: percentageToRatio(input.universalPercentageSupportThreshold),
28
- flatSupportThreshold: BigInt(input.flatSupportThreshold),
29
- quorum: BigInt(input.quorum),
30
- duration: BigInt(input.duration),
31
- disableFastPathAccessForNewMembers: input.disableFastPathAccessForNewMembers ?? false,
32
- executionGracePeriod: BigInt(input.executionGracePeriod ?? 24 * 60 * 60),
33
- };
34
- }
35
- export function validateVotingSettingsInput(settings, totalEditors) {
36
- const partial = 'slowPathPercentageThreshold' in settings
37
- ? settings.slowPathPercentageThreshold
38
- : settings.partialPercentageSupportThreshold;
39
- const universal = 'slowPathPercentageThreshold' in settings
40
- ? (settings.universalPercentageSupportThreshold ?? settings.slowPathPercentageThreshold)
41
- : settings.universalPercentageSupportThreshold;
42
- const flat = 'slowPathPercentageThreshold' in settings ? settings.fastPathFlatThreshold : settings.flatSupportThreshold;
43
- const duration = 'slowPathPercentageThreshold' in settings ? daysToSeconds(settings.durationInDays) : BigInt(settings.duration);
44
- const executionGracePeriod = 'slowPathPercentageThreshold' in settings
45
- ? settings.executionGracePeriod !== undefined
46
- ? BigInt(settings.executionGracePeriod)
47
- : daysToSeconds(settings.executionGracePeriodInDays ?? 1)
48
- : BigInt(settings.executionGracePeriod ?? 24 * 60 * 60);
49
- if (partial < 0 || partial > 100) {
50
- return 'partialPercentageSupportThreshold must be between 0 and 100';
51
- }
52
- if (universal < 0 || universal > 100) {
53
- return 'universalPercentageSupportThreshold must be between 0 and 100';
54
- }
55
- if (flat < 0 || flat > totalEditors) {
56
- return `flatSupportThreshold must be between 0 and ${totalEditors} (number of initial editors)`;
57
- }
58
- if (settings.quorum < 0 || settings.quorum > totalEditors) {
59
- return `quorum must be between 0 and ${totalEditors} (number of initial editors)`;
60
- }
61
- if (duration < MINIMUM_VOTING_DURATION) {
62
- return `duration must be at least ${MINIMUM_VOTING_DURATION.toString()} seconds`;
63
- }
64
- if (executionGracePeriod < MINIMUM_EXECUTION_GRACE_PERIOD) {
65
- return `executionGracePeriod must be at least ${MINIMUM_EXECUTION_GRACE_PERIOD.toString()} seconds`;
66
- }
67
- return null;
68
- }
69
- //# sourceMappingURL=voting-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"voting-settings.js","sourceRoot":"","sources":["../../../src/contracts-v2/voting-settings.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,9 +0,0 @@
1
- export type LocalGeobrowserDeployment = {
2
- spaceRegistryAddress?: `0x${string}`;
3
- daoSpaceFactoryAddress?: `0x${string}`;
4
- apiOrigin?: string;
5
- rpcUrl?: string;
6
- };
7
- export declare function readLocalGeobrowserDeployment(): LocalGeobrowserDeployment | null;
8
- export declare function createLocalGeobrowserNetwork(deployment: LocalGeobrowserDeployment): import("../types.js").GeoNetworkConfig;
9
- //# sourceMappingURL=local-geobrowser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-geobrowser.d.ts","sourceRoot":"","sources":["../../../src/e2e/local-geobrowser.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,yBAAyB,GAAG;IACtC,oBAAoB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACrC,sBAAsB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,wBAAgB,6BAA6B,IAAI,yBAAyB,GAAG,IAAI,CAehF;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,yBAAyB,0CAejF"}
@@ -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-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":""}