@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,193 +0,0 @@
1
- import { v4 as uuidv4 } from 'uuid';
2
- import { encodeAbiParameters, encodeFunctionData, parseAbiParameters, toHex } from 'viem';
3
- import { DaoSpaceFactoryV2Abi, DaoSpaceV2Abi, SpaceRegistryV2Abi } from './abis.js';
4
- import { EMPTY_SIGNATURE, GovernanceActions, idToBytes16, PermissionlessActions, toBytes16, VoteOptionValues, VotingModeValues, ZERO_BYTES16, ZERO_BYTES32, } from './actions.js';
5
- import { toContractVotingSettings, validateVotingSettingsInput, } from './voting-settings.js';
6
- export function encodeCreatePersonalSpaceCalldata() {
7
- return encodeFunctionData({
8
- abi: SpaceRegistryV2Abi,
9
- functionName: 'registerSpaceId',
10
- args: [ZERO_BYTES32, '0x'],
11
- });
12
- }
13
- export function encodeEditPublishedData(contentUri, metadata = '') {
14
- return encodeAbiParameters(parseAbiParameters('bytes, bytes'), [toHex(contentUri), toHex(metadata)]);
15
- }
16
- export function encodePublishEditCalldata({ spaceId, cid, metadata, spaceRegistryAddress, }) {
17
- const spaceIdBytes16 = idToBytes16(spaceId, '`spaceId` in publish edit');
18
- const data = encodeEditPublishedData(cid, metadata);
19
- return {
20
- to: spaceRegistryAddress,
21
- calldata: encodeFunctionData({
22
- abi: SpaceRegistryV2Abi,
23
- functionName: 'enter',
24
- args: [spaceIdBytes16, spaceIdBytes16, GovernanceActions.EDITS_PUBLISHED, ZERO_BYTES32, data, EMPTY_SIGNATURE],
25
- }),
26
- };
27
- }
28
- export function encodeCreateDaoSpaceCalldata({ votingSettings, initialEditorSpaceIds, initialMemberSpaceIds = [], initialEditsContentUri, initialEditsMetadata = '', initialTopicId, }) {
29
- if (initialEditorSpaceIds.length === 0) {
30
- throw new Error('At least one initial editor space ID is required');
31
- }
32
- const validationError = validateVotingSettingsInput(votingSettings, initialEditorSpaceIds.length);
33
- if (validationError) {
34
- throw new Error(validationError);
35
- }
36
- const settings = toContractVotingSettings(votingSettings);
37
- const initialEditsContentUriData = initialEditsContentUri ? toHex(initialEditsContentUri) : '0x';
38
- const initialEditsMetadataData = initialEditsMetadata ? toHex(initialEditsMetadata) : '0x';
39
- const editors = initialEditorSpaceIds.map((spaceId, index) => toBytes16(spaceId, `initialEditorSpaceIds[${index}]`));
40
- const members = initialMemberSpaceIds.map((spaceId, index) => toBytes16(spaceId, `initialMemberSpaceIds[${index}]`));
41
- const topicId = initialTopicId ? idToBytes16(initialTopicId, '`initialTopicId`') : ZERO_BYTES16;
42
- return encodeFunctionData({
43
- abi: DaoSpaceFactoryV2Abi,
44
- functionName: 'createDAOSpaceProxy',
45
- args: [settings, editors, members, initialEditsContentUriData, initialEditsMetadataData, topicId],
46
- });
47
- }
48
- export function encodeProposalCreatedData(proposalId, votingMode, actions) {
49
- const normalizedActions = actions.map(action => ({
50
- to: action.to,
51
- value: action.value ?? 0n,
52
- data: action.data,
53
- }));
54
- return encodeAbiParameters(parseAbiParameters('bytes16, uint8, (address to, uint256 value, bytes data)[]'), [
55
- proposalId,
56
- VotingModeValues[votingMode],
57
- normalizedActions,
58
- ]);
59
- }
60
- export function encodeProposalVotedData(proposalId, proposalVersion, vote) {
61
- return encodeAbiParameters(parseAbiParameters('bytes16, uint8, uint8'), [
62
- proposalId,
63
- proposalVersion,
64
- VoteOptionValues[vote],
65
- ]);
66
- }
67
- export function encodeProposalExecutedData(proposalId) {
68
- return encodeAbiParameters(parseAbiParameters('bytes16'), [proposalId]);
69
- }
70
- export function createProposalCalldata({ fromSpaceId, daoSpaceId, proposalId: proposalIdInput, votingMode = 'FAST', actions, spaceRegistryAddress, }) {
71
- const proposalId = proposalIdInput
72
- ? idToBytes16(proposalIdInput, '`proposalId`')
73
- : `0x${uuidv4().replaceAll('-', '')}`;
74
- const data = encodeProposalCreatedData(proposalId, votingMode, actions);
75
- return {
76
- to: spaceRegistryAddress,
77
- calldata: encodeFunctionData({
78
- abi: SpaceRegistryV2Abi,
79
- functionName: 'enter',
80
- args: [
81
- idToBytes16(fromSpaceId, '`fromSpaceId`'),
82
- idToBytes16(daoSpaceId, '`daoSpaceId`'),
83
- GovernanceActions.PROPOSAL_CREATED,
84
- ZERO_BYTES32,
85
- data,
86
- EMPTY_SIGNATURE,
87
- ],
88
- }),
89
- proposalId,
90
- };
91
- }
92
- export function voteProposalCalldata({ fromSpaceId, daoSpaceId, proposalId, proposalVersion = 1, vote, spaceRegistryAddress, }) {
93
- const normalizedProposalId = idToBytes16(proposalId, '`proposalId`');
94
- const data = encodeProposalVotedData(normalizedProposalId, proposalVersion, vote);
95
- return {
96
- to: spaceRegistryAddress,
97
- calldata: encodeFunctionData({
98
- abi: SpaceRegistryV2Abi,
99
- functionName: 'enter',
100
- args: [
101
- idToBytes16(fromSpaceId, '`fromSpaceId`'),
102
- idToBytes16(daoSpaceId, '`daoSpaceId`'),
103
- GovernanceActions.PROPOSAL_VOTED,
104
- ZERO_BYTES32,
105
- data,
106
- EMPTY_SIGNATURE,
107
- ],
108
- }),
109
- };
110
- }
111
- export function executeProposalCalldata({ fromSpaceId, daoSpaceId, proposalId, spaceRegistryAddress, }) {
112
- const normalizedProposalId = idToBytes16(proposalId, '`proposalId`');
113
- const data = encodeProposalExecutedData(normalizedProposalId);
114
- return {
115
- to: spaceRegistryAddress,
116
- calldata: encodeFunctionData({
117
- abi: SpaceRegistryV2Abi,
118
- functionName: 'enter',
119
- args: [
120
- idToBytes16(fromSpaceId, '`fromSpaceId`'),
121
- idToBytes16(daoSpaceId, '`daoSpaceId`'),
122
- GovernanceActions.PROPOSAL_EXECUTED,
123
- ZERO_BYTES32,
124
- data,
125
- EMPTY_SIGNATURE,
126
- ],
127
- }),
128
- };
129
- }
130
- export function encodePublishEditProposalAction(daoSpaceAddress, cid) {
131
- return {
132
- to: daoSpaceAddress,
133
- value: 0n,
134
- data: encodeFunctionData({
135
- abi: DaoSpaceV2Abi,
136
- functionName: 'ping',
137
- args: [GovernanceActions.EDITS_PUBLISHED, ZERO_BYTES32, encodeEditPublishedData(cid)],
138
- }),
139
- };
140
- }
141
- export function encodeDaoRoleAction(daoSpaceAddress, action, spaceId) {
142
- return {
143
- to: daoSpaceAddress,
144
- value: 0n,
145
- data: encodeFunctionData({
146
- abi: DaoSpaceV2Abi,
147
- functionName: action,
148
- args: [idToBytes16(spaceId, '`spaceId` in DAO role action')],
149
- }),
150
- };
151
- }
152
- export function encodeUpdateVotingSettingsAction(daoSpaceAddress, votingSettings) {
153
- return {
154
- to: daoSpaceAddress,
155
- value: 0n,
156
- data: encodeFunctionData({
157
- abi: DaoSpaceV2Abi,
158
- functionName: 'updateVotingSettings',
159
- args: [toContractVotingSettings(votingSettings)],
160
- }),
161
- };
162
- }
163
- export function encodeEntityVoteTopic(entityId) {
164
- const normalizedEntityId = idToBytes16(entityId, '`entityId` in entity vote').slice(2);
165
- return `0x00000000${normalizedEntityId}${'0'.repeat(24)}`;
166
- }
167
- export function encodeEntityVoteData(authorSpaceId, spaceId) {
168
- return encodeAbiParameters([{ type: 'uint16' }, { type: 'bytes16' }, { type: 'bytes16' }], [0, authorSpaceId, spaceId]);
169
- }
170
- function createEntityVoteCalldata(params, action) {
171
- const authorSpaceId = idToBytes16(params.authorSpaceId, '`authorSpaceId` in entity vote');
172
- const spaceId = idToBytes16(params.spaceId, '`spaceId` in entity vote');
173
- const topic = encodeEntityVoteTopic(params.entityId);
174
- const data = encodeEntityVoteData(authorSpaceId, spaceId);
175
- return {
176
- to: params.spaceRegistryAddress,
177
- calldata: encodeFunctionData({
178
- abi: SpaceRegistryV2Abi,
179
- functionName: 'enter',
180
- args: [authorSpaceId, spaceId, action, topic, data, EMPTY_SIGNATURE],
181
- }),
182
- };
183
- }
184
- export function upvoteEntityCalldata(params) {
185
- return createEntityVoteCalldata(params, PermissionlessActions.UPVOTED);
186
- }
187
- export function downvoteEntityCalldata(params) {
188
- return createEntityVoteCalldata(params, PermissionlessActions.DOWNVOTED);
189
- }
190
- export function withdrawEntityVoteCalldata(params) {
191
- return createEntityVoteCalldata(params, PermissionlessActions.UNVOTED);
192
- }
193
- //# sourceMappingURL=encoding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/contracts-v2/encoding.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=encoding.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoding.test.d.ts","sourceRoot":"","sources":["../../../src/contracts-v2/encoding.test.ts"],"names":[],"mappings":""}
@@ -1,93 +0,0 @@
1
- import { decodeAbiParameters, decodeFunctionData, parseAbiParameters, toHex } from 'viem';
2
- import { describe, expect, it } from 'vitest';
3
- import { DaoSpaceFactoryV2Abi, SpaceRegistryV2Abi } from './abis.js';
4
- import { GovernanceActions, VoteOptionValues, ZERO_BYTES32 } from './actions.js';
5
- import { createProposalCalldata, encodeCreateDaoSpaceCalldata, encodeEditPublishedData, encodeProposalVotedData, voteProposalCalldata, } from './encoding.js';
6
- import { percentageToRatio } from './voting-settings.js';
7
- describe('contracts-v2 encoding', () => {
8
- it('encodes DAO creation with seven voting settings fields', () => {
9
- const initialEditsContentUri = 'ipfs://QmP6aJhM3SgoRSPUccBQK9VMHNqqezixG1Qvjy2xPWvPh5';
10
- const initialEditsMetadata = 'metadata';
11
- const calldata = encodeCreateDaoSpaceCalldata({
12
- votingSettings: {
13
- partialPercentageSupportThreshold: 50,
14
- universalPercentageSupportThreshold: 90,
15
- flatSupportThreshold: 1,
16
- quorum: 1,
17
- duration: 3600,
18
- executionGracePeriod: 86400,
19
- },
20
- initialEditorSpaceIds: ['0x11111111111111111111111111111111'],
21
- initialMemberSpaceIds: [],
22
- initialEditsContentUri,
23
- initialEditsMetadata,
24
- });
25
- const decoded = decodeFunctionData({
26
- abi: DaoSpaceFactoryV2Abi,
27
- data: calldata,
28
- });
29
- expect(decoded.functionName).toBe('createDAOSpaceProxy');
30
- expect(decoded.args[0]).toMatchObject({
31
- partialPercentageSupportThreshold: percentageToRatio(50),
32
- universalPercentageSupportThreshold: percentageToRatio(90),
33
- flatSupportThreshold: 1n,
34
- quorum: 1n,
35
- duration: 3600n,
36
- disableFastPathAccessForNewMembers: false,
37
- executionGracePeriod: 86400n,
38
- });
39
- expect(decoded.args).toHaveLength(6);
40
- expect(decoded.args[3]).toBe(toHex(initialEditsContentUri));
41
- expect(decoded.args[4]).toBe(toHex(initialEditsMetadata));
42
- });
43
- it('encodes edit publish data as bytes content URI and bytes metadata', () => {
44
- const data = encodeEditPublishedData('ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi');
45
- const [contentUri, metadata] = decodeAbiParameters(parseAbiParameters('bytes, bytes'), data);
46
- expect(contentUri).toBe('0x697066733a2f2f62616679626569676479727a74357366703775646d37687537367568377932366e6633656675796c71616266336f636c67747179353566627a6469');
47
- expect(metadata).toBe('0x');
48
- });
49
- it('encodes proposal creation through SpaceRegistry.enter', () => {
50
- const result = createProposalCalldata({
51
- fromSpaceId: '0x11111111111111111111111111111111',
52
- daoSpaceId: '0x22222222222222222222222222222222',
53
- proposalId: '0x33333333333333333333333333333333',
54
- votingMode: 'FAST',
55
- actions: [
56
- {
57
- to: '0x0000000000000000000000000000000000000001',
58
- data: '0x1234',
59
- },
60
- ],
61
- spaceRegistryAddress: '0x0000000000000000000000000000000000000002',
62
- });
63
- const decoded = decodeFunctionData({
64
- abi: SpaceRegistryV2Abi,
65
- data: result.calldata,
66
- });
67
- expect(decoded.args[2]).toBe(GovernanceActions.PROPOSAL_CREATED);
68
- expect(decoded.args[3]).toBe(ZERO_BYTES32);
69
- expect(result.proposalId).toBe('0x33333333333333333333333333333333');
70
- });
71
- it('encodes v2 proposal votes with proposal version', () => {
72
- const voteData = encodeProposalVotedData('0x33333333333333333333333333333333', 2, 'YES');
73
- const [proposalId, proposalVersion, vote] = decodeAbiParameters(parseAbiParameters('bytes16, uint8, uint8'), voteData);
74
- expect(proposalId).toBe('0x33333333333333333333333333333333');
75
- expect(proposalVersion).toBe(2);
76
- expect(vote).toBe(VoteOptionValues.YES);
77
- const result = voteProposalCalldata({
78
- fromSpaceId: '0x11111111111111111111111111111111',
79
- daoSpaceId: '0x22222222222222222222222222222222',
80
- proposalId: '0x33333333333333333333333333333333',
81
- proposalVersion: 2,
82
- vote: 'YES',
83
- spaceRegistryAddress: '0x0000000000000000000000000000000000000002',
84
- });
85
- const decoded = decodeFunctionData({
86
- abi: SpaceRegistryV2Abi,
87
- data: result.calldata,
88
- });
89
- expect(decoded.args[2]).toBe(GovernanceActions.PROPOSAL_VOTED);
90
- expect(decoded.args[3]).toBe(ZERO_BYTES32);
91
- });
92
- });
93
- //# sourceMappingURL=encoding.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoding.test.js","sourceRoot":"","sources":["../../../src/contracts-v2/encoding.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=local-geobrowser.e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-geobrowser.e2e.test.d.ts","sourceRoot":"","sources":["../../../src/contracts-v2/local-geobrowser.e2e.test.ts"],"names":[],"mappings":""}
@@ -1,239 +0,0 @@
1
- import { readFileSync } from 'node:fs';
2
- import { createPublicClient, decodeAbiParameters, decodeFunctionData, encodeFunctionData, hexToString, http, } from 'viem';
3
- import { describe, expect, it, vi } from 'vitest';
4
- import { DaoSpaceAbi, DaoSpaceFactoryAbi, SpaceRegistryAbi } from '../abis/index.js';
5
- import { createGeoClient } from '../client.js';
6
- import { bytes16ToBytes32LeftAligned, EDITS_PUBLISHED_ACTION, EMPTY_TOPIC, PROPOSAL_CREATED_ACTION, PROPOSAL_VOTED_ACTION, VOTE_OPTION_VALUES, } from '../dao-space/constants.js';
7
- import { getCreateDaoSpaceCalldata } from '../encodings/get-create-dao-space-calldata.js';
8
- import { defineGeoNetworkConfig } from '../networks.js';
9
- import * as Ops from '../ops/index.js';
10
- const deploymentsPath = process.env.GEO_LOCAL_GEOBROWSER_DEPLOYMENTS;
11
- const localGeobrowserPath = process.env.GEO_LOCAL_GEOBROWSER_PATH;
12
- const deployments = deploymentsPath
13
- ? JSON.parse(readFileSync(deploymentsPath, 'utf8'))
14
- : undefined;
15
- const localRpcUrl = deployments?.rpcUrl ?? process.env.GEO_LOCAL_GEOBROWSER_RPC_URL;
16
- const describeLocal = deployments ? describe : describe.skip;
17
- const describeLocalRpc = deployments && localRpcUrl ? describe : describe.skip;
18
- const describeLocalSource = localGeobrowserPath ? describe : describe.skip;
19
- function readDeployments() {
20
- if (!deployments) {
21
- throw new Error('Set GEO_LOCAL_GEOBROWSER_DEPLOYMENTS to the local-geobrowser .deployments.json path.');
22
- }
23
- return deployments;
24
- }
25
- function readLocalContractSource(relativePath) {
26
- if (!localGeobrowserPath) {
27
- throw new Error('Set GEO_LOCAL_GEOBROWSER_PATH to the local-geobrowser checkout path.');
28
- }
29
- return readFileSync(`${localGeobrowserPath}/contracts/src/${relativePath}`, 'utf8');
30
- }
31
- function localNetwork(deployments) {
32
- return defineGeoNetworkConfig({
33
- id: 'LOCAL_GEOBROWSER',
34
- name: 'Local Geobrowser',
35
- apiOrigin: process.env.GEO_LOCAL_GEOBROWSER_API_ORIGIN ?? 'http://localhost:3000',
36
- chain: {
37
- id: Number(process.env.GEO_LOCAL_GEOBROWSER_CHAIN_ID ?? 31337),
38
- name: 'Anvil',
39
- rpcUrl: deployments.rpcUrl ?? process.env.GEO_LOCAL_GEOBROWSER_RPC_URL,
40
- },
41
- contracts: {
42
- SPACE_REGISTRY_ADDRESS: deployments.spaceRegistry,
43
- DAO_SPACE_FACTORY_ADDRESS: deployments.daoSpaceFactory,
44
- },
45
- });
46
- }
47
- describeLocal('local-geobrowser contracts v2 calldata', () => {
48
- const editorSpaceId = '0x11111111111111111111111111111111';
49
- const daoSpaceId = '0x22222222222222222222222222222222';
50
- const proposalId = '0x33333333333333333333333333333333';
51
- const cid = 'ipfs://bafkreigwfjixq5cm3s4youhshorkpqh3ykpviyv76c2ei6gaalujtlqz5i';
52
- const authorId = '5cade5757ecd41ae83481b22ffc2f94e';
53
- const votingSettings = {
54
- partialPercentageSupportThreshold: 50,
55
- universalPercentageSupportThreshold: 90,
56
- flatSupportThreshold: 1,
57
- quorum: 1,
58
- durationInDays: 2,
59
- disableFastPathAccessForNewMembers: true,
60
- executionGracePeriodInDays: 14,
61
- };
62
- it('builds a custom network from local-geobrowser deployments', () => {
63
- const deployments = readDeployments();
64
- const network = localNetwork(deployments);
65
- expect(network.contracts?.SPACE_REGISTRY_ADDRESS).toBe(deployments.spaceRegistry);
66
- expect(network.contracts?.DAO_SPACE_FACTORY_ADDRESS).toBe(deployments.daoSpaceFactory);
67
- });
68
- it('decodes DAO creation calldata against the v2 factory ABI', () => {
69
- const calldata = getCreateDaoSpaceCalldata({
70
- votingSettings,
71
- initialEditorSpaceIds: [editorSpaceId],
72
- initialMemberSpaceIds: [editorSpaceId],
73
- initialEditsContentUri: cid,
74
- initialTopicId: '9f9e7d45-5b11-4d6b-9c5d-9567eeb3a001',
75
- });
76
- const decoded = decodeFunctionData({
77
- abi: DaoSpaceFactoryAbi,
78
- data: calldata,
79
- });
80
- const [settings, initialEditors, initialMembers, initialEditContentUri, initialEditMetadata, initialTopicId] = decoded.args;
81
- expect(decoded.functionName).toBe('createDAOSpaceProxy');
82
- expect(decoded.args).toHaveLength(6);
83
- expect(settings.partialPercentageSupportThreshold).toBe(5000000n);
84
- expect(settings.universalPercentageSupportThreshold).toBe(9000000n);
85
- expect(settings.executionGracePeriod).toBe(1209600n);
86
- expect(initialEditors).toEqual([editorSpaceId]);
87
- expect(initialMembers).toEqual([editorSpaceId]);
88
- expect(hexToString(initialEditContentUri)).toBe(cid);
89
- expect(initialEditMetadata).toBe('0x');
90
- expect(initialTopicId).toBe('0x9f9e7d455b114d6b9c5d9567eeb3a001');
91
- });
92
- it('decodes DAO proposal and versioned vote calldata against local v2 ABIs', async () => {
93
- const deployments = readDeployments();
94
- const network = localNetwork(deployments);
95
- const geo = createGeoClient({ network });
96
- const fetch = vi.fn().mockResolvedValue(new Response(JSON.stringify({ cid })));
97
- const geoWithFetch = createGeoClient({ network, fetch });
98
- const updateSettings = geo.daoSpaces.proposeUpdateVotingSettings({
99
- authorSpaceId: editorSpaceId,
100
- spaceId: daoSpaceId,
101
- daoSpaceAddress: deployments.daoSpace,
102
- proposalId,
103
- votingSettings,
104
- });
105
- const decodedProposal = decodeFunctionData({
106
- abi: SpaceRegistryAbi,
107
- data: updateSettings.calldata,
108
- });
109
- const [, , proposalAction, proposalTopic, proposalData] = decodedProposal.args;
110
- const [, votingMode, actions] = decodeAbiParameters([
111
- { type: 'bytes16', name: 'proposalId' },
112
- { type: 'uint8', name: 'votingMode' },
113
- {
114
- type: 'tuple[]',
115
- name: 'actions',
116
- components: [
117
- { type: 'address', name: 'to' },
118
- { type: 'uint256', name: 'value' },
119
- { type: 'bytes', name: 'data' },
120
- ],
121
- },
122
- ], proposalData);
123
- const decodedAction = decodeFunctionData({
124
- abi: DaoSpaceAbi,
125
- data: actions[0]?.data ?? '0x',
126
- });
127
- expect(updateSettings.to).toBe(deployments.spaceRegistry);
128
- expect(proposalAction).toBe(PROPOSAL_CREATED_ACTION);
129
- expect(proposalTopic).toBe(bytes16ToBytes32LeftAligned(proposalId));
130
- expect(votingMode).toBe(0);
131
- expect(actions[0]?.to).toBe(deployments.daoSpace);
132
- expect(decodedAction.functionName).toBe('updateVotingSettings');
133
- const { ops } = Ops.entities.create({ name: 'Local v2 edit entity' });
134
- const editProposal = await geoWithFetch.daoSpaces.proposeEdit({
135
- name: 'Local v2 edit',
136
- ops,
137
- author: authorId,
138
- daoSpaceAddress: deployments.daoSpace,
139
- callerSpaceId: editorSpaceId,
140
- daoSpaceId,
141
- proposalId,
142
- });
143
- const decodedEditProposal = decodeFunctionData({
144
- abi: SpaceRegistryAbi,
145
- data: editProposal.calldata,
146
- });
147
- const [, , editProposalAction, , editProposalData] = decodedEditProposal.args;
148
- const [, editVotingMode, editActions] = decodeAbiParameters([
149
- { type: 'bytes16', name: 'proposalId' },
150
- { type: 'uint8', name: 'votingMode' },
151
- {
152
- type: 'tuple[]',
153
- name: 'actions',
154
- components: [
155
- { type: 'address', name: 'to' },
156
- { type: 'uint256', name: 'value' },
157
- { type: 'bytes', name: 'data' },
158
- ],
159
- },
160
- ], editProposalData);
161
- const decodedEditAction = decodeFunctionData({
162
- abi: DaoSpaceAbi,
163
- data: editActions[0]?.data ?? '0x',
164
- });
165
- const [editContentUri, editMetadata] = decodeAbiParameters([
166
- { type: 'bytes', name: 'editsContentUri' },
167
- { type: 'bytes', name: 'editsMetadata' },
168
- ], decodedEditAction.args?.[2]);
169
- expect(editProposalAction).toBe(PROPOSAL_CREATED_ACTION);
170
- expect(editVotingMode).toBe(1);
171
- expect(editActions[0]?.to).toBe(deployments.daoSpace);
172
- expect(decodedEditAction.functionName).toBe('ping');
173
- expect(decodedEditAction.args?.[0]).toBe(EDITS_PUBLISHED_ACTION);
174
- expect(decodedEditAction.args?.[1]).toBe(EMPTY_TOPIC);
175
- expect(hexToString(editContentUri)).toBe(cid);
176
- expect(editMetadata).toBe('0x');
177
- const vote = geo.daoSpaces.voteProposal({
178
- authorSpaceId: editorSpaceId,
179
- spaceId: daoSpaceId,
180
- proposalId,
181
- versionId: 2,
182
- vote: 'YES',
183
- });
184
- const decodedVote = decodeFunctionData({
185
- abi: SpaceRegistryAbi,
186
- data: vote.calldata,
187
- });
188
- const [, , voteAction, voteTopic, voteData] = decodedVote.args;
189
- const [decodedProposalId, versionId, voteOption] = decodeAbiParameters([
190
- { type: 'bytes16', name: 'proposalId' },
191
- { type: 'uint8', name: 'versionId' },
192
- { type: 'uint8', name: 'voteOption' },
193
- ], voteData);
194
- expect(vote.to).toBe(deployments.spaceRegistry);
195
- expect(voteAction).toBe(PROPOSAL_VOTED_ACTION);
196
- expect(voteTopic).toBe(bytes16ToBytes32LeftAligned(proposalId));
197
- expect(decodedProposalId).toBe(proposalId);
198
- expect(versionId).toBe(2);
199
- expect(voteOption).toBe(VOTE_OPTION_VALUES.YES);
200
- });
201
- });
202
- describeLocalSource('local-geobrowser contracts v2 source compatibility', () => {
203
- it('confirms edit publishing is a DAO ping fast-path action in local contracts', () => {
204
- const daoSpaceSource = readLocalContractSource('contracts/DAOSpace.sol');
205
- const actionsSource = readLocalContractSource('ActionsConstants.sol');
206
- expect(actionsSource).toContain("EDITS_PUBLISHED = keccak256('GOVERNANCE.EDITS_PUBLISHED')");
207
- expect(daoSpaceSource).toContain('$_.actionIsFastPathValid[IDAOSpace.ping.selector] = true;');
208
- expect(daoSpaceSource).not.toContain('actionIsFastPathValid[IDAOSpace.publish.selector]');
209
- expect(daoSpaceSource).toContain("_ping(ActionsConstants.EDITS_PUBLISHED, '', _publishEditsData)");
210
- });
211
- });
212
- describeLocalRpc('local-geobrowser deployed contracts v2 compatibility', () => {
213
- it('checks the deployed DAO fast-path selector allowlist', async () => {
214
- const deployments = readDeployments();
215
- if (!localRpcUrl) {
216
- throw new Error('Set GEO_LOCAL_GEOBROWSER_RPC_URL or deployments.rpcUrl for local-geobrowser RPC checks.');
217
- }
218
- const publicClient = createPublicClient({ transport: http(localRpcUrl) });
219
- const pingSelector = encodeFunctionData({
220
- abi: DaoSpaceAbi,
221
- functionName: 'ping',
222
- args: [EDITS_PUBLISHED_ACTION, EMPTY_TOPIC, '0x'],
223
- }).slice(0, 10);
224
- const publishSelector = '0x6b47f61a';
225
- await expect(publicClient.readContract({
226
- address: deployments.daoSpace,
227
- abi: DaoSpaceAbi,
228
- functionName: 'actionIsFastPathValid',
229
- args: [pingSelector],
230
- })).resolves.toBe(true);
231
- await expect(publicClient.readContract({
232
- address: deployments.daoSpace,
233
- abi: DaoSpaceAbi,
234
- functionName: 'actionIsFastPathValid',
235
- args: [publishSelector],
236
- })).resolves.toBe(false);
237
- });
238
- });
239
- //# sourceMappingURL=local-geobrowser.e2e.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-geobrowser.e2e.test.js","sourceRoot":"","sources":["../../../src/contracts-v2/local-geobrowser.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- export declare const RATIO_BASE: bigint;
2
- export declare const MINIMUM_VOTING_DURATION: bigint;
3
- export declare const MINIMUM_EXECUTION_GRACE_PERIOD: bigint;
4
- export declare const MINIMUM_VOTING_DURATION_DAYS: bigint;
5
- export type VotingSettingsV2 = {
6
- partialPercentageSupportThreshold: bigint;
7
- universalPercentageSupportThreshold: bigint;
8
- flatSupportThreshold: bigint;
9
- quorum: bigint;
10
- duration: bigint;
11
- disableFastPathAccessForNewMembers: boolean;
12
- executionGracePeriod: bigint;
13
- };
14
- export type VotingSettingsV2Input = {
15
- /** Percentage of yes/no votes needed for slow-path support after the full duration. */
16
- partialPercentageSupportThreshold: number;
17
- /** Percentage of total editors needed for slow-path early execution. */
18
- universalPercentageSupportThreshold: number;
19
- /** Number of yes votes needed for fast-path support. */
20
- flatSupportThreshold: number;
21
- /** Minimum number of votes needed for slow-path proposals. */
22
- quorum: number;
23
- /** Voting duration in seconds. */
24
- duration: number;
25
- /** Whether newly added non-editor members lose fast-path access by default. */
26
- disableFastPathAccessForNewMembers?: boolean;
27
- /** Execution grace period in seconds after the voting window closes. */
28
- executionGracePeriod?: number;
29
- };
30
- export type LegacyVotingSettingsInput = {
31
- /** @deprecated Use `partialPercentageSupportThreshold`. */
32
- slowPathPercentageThreshold: number;
33
- /** @deprecated Use `flatSupportThreshold`. */
34
- fastPathFlatThreshold: number;
35
- quorum: number;
36
- /** @deprecated Use `duration` in seconds. */
37
- durationInDays: number;
38
- universalPercentageSupportThreshold?: number;
39
- disableFastPathAccessForNewMembers?: boolean;
40
- executionGracePeriod?: number;
41
- executionGracePeriodInDays?: number;
42
- };
43
- export type CompatibleVotingSettingsInput = VotingSettingsV2Input | LegacyVotingSettingsInput;
44
- export declare function percentageToRatio(percentage: number): bigint;
45
- export declare function daysToSeconds(days: number): bigint;
46
- export declare function toContractVotingSettings(input: CompatibleVotingSettingsInput): VotingSettingsV2;
47
- export declare function validateVotingSettingsInput(settings: CompatibleVotingSettingsInput, totalEditors: number): string | null;
48
- //# sourceMappingURL=voting-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"voting-settings.d.ts","sourceRoot":"","sources":["../../../src/contracts-v2/voting-settings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAe,CAAC;AACvC,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAClD,eAAO,MAAM,8BAA8B,QAAkB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAiD,CAAC;AAE3F,MAAM,MAAM,gBAAgB,GAAG;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,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,uFAAuF;IACvF,iCAAiC,EAAE,MAAM,CAAC;IAC1C,wEAAwE;IACxE,mCAAmC,EAAE,MAAM,CAAC;IAC5C,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,2DAA2D;IAC3D,2BAA2B,EAAE,MAAM,CAAC;IACpC,8CAA8C;IAC9C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAC7C,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;AAE9F,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,gBAAgB,CA2B/F;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,6BAA6B,EACvC,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAuCf"}