@geoprotocol/geo-sdk 0.19.2 → 0.20.0-beta.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 (130) hide show
  1. package/README.md +98 -45
  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-v2.test.d.ts +2 -0
  11. package/dist/src/abis/dao-space-v2.test.d.ts.map +1 -0
  12. package/dist/src/abis/dao-space-v2.test.js +67 -0
  13. package/dist/src/abis/dao-space-v2.test.js.map +1 -0
  14. package/dist/src/abis/dao-space.d.ts +98 -7
  15. package/dist/src/abis/dao-space.d.ts.map +1 -1
  16. package/dist/src/abis/dao-space.js +61 -99
  17. package/dist/src/abis/dao-space.js.map +1 -1
  18. package/dist/src/abis/index.d.ts +2 -2
  19. package/dist/src/abis/index.d.ts.map +1 -1
  20. package/dist/src/abis/index.js +2 -2
  21. package/dist/src/abis/index.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} +86 -100
  25. package/dist/src/api-surface.e2e.test.js.map +1 -0
  26. package/dist/src/client/dao-spaces.d.ts +65 -33
  27. package/dist/src/client/dao-spaces.d.ts.map +1 -1
  28. package/dist/src/client/dao-spaces.js +133 -42
  29. package/dist/src/client/dao-spaces.js.map +1 -1
  30. package/dist/src/client/dao-spaces.test.js +277 -79
  31. package/dist/src/client/dao-spaces.test.js.map +1 -1
  32. package/dist/src/client/personal-spaces.js +2 -2
  33. package/dist/src/client/personal-spaces.js.map +1 -1
  34. package/dist/src/client/spaces.test.js +9 -7
  35. package/dist/src/client/spaces.test.js.map +1 -1
  36. package/dist/src/client.d.ts +14 -14
  37. package/dist/src/client.d.ts.map +1 -1
  38. package/dist/src/client.js +48 -59
  39. package/dist/src/client.js.map +1 -1
  40. package/dist/src/client.test.js +8 -3
  41. package/dist/src/client.test.js.map +1 -1
  42. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +2 -0
  43. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +1 -0
  44. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +239 -0
  45. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +1 -0
  46. package/dist/src/dao-space/constants.d.ts +10 -0
  47. package/dist/src/dao-space/constants.d.ts.map +1 -1
  48. package/dist/src/dao-space/constants.js +10 -0
  49. package/dist/src/dao-space/constants.js.map +1 -1
  50. package/dist/src/dao-space/execute-proposal.d.ts +1 -1
  51. package/dist/src/dao-space/execute-proposal.js +2 -2
  52. package/dist/src/dao-space/execute-proposal.js.map +1 -1
  53. package/dist/src/dao-space/index.d.ts +2 -1
  54. package/dist/src/dao-space/index.d.ts.map +1 -1
  55. package/dist/src/dao-space/index.js +1 -0
  56. package/dist/src/dao-space/index.js.map +1 -1
  57. package/dist/src/dao-space/propose-add-editor.d.ts +1 -20
  58. package/dist/src/dao-space/propose-add-editor.d.ts.map +1 -1
  59. package/dist/src/dao-space/propose-add-editor.js +12 -87
  60. package/dist/src/dao-space/propose-add-editor.js.map +1 -1
  61. package/dist/src/dao-space/propose-add-editor.test.js +16 -4
  62. package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
  63. package/dist/src/dao-space/propose-add-member.d.ts +1 -20
  64. package/dist/src/dao-space/propose-add-member.d.ts.map +1 -1
  65. package/dist/src/dao-space/propose-add-member.js +12 -87
  66. package/dist/src/dao-space/propose-add-member.js.map +1 -1
  67. package/dist/src/dao-space/propose-add-member.test.js +13 -0
  68. package/dist/src/dao-space/propose-add-member.test.js.map +1 -1
  69. package/dist/src/dao-space/propose-edit.test.js +45 -0
  70. package/dist/src/dao-space/propose-edit.test.js.map +1 -1
  71. package/dist/src/dao-space/propose-remove-editor.d.ts +1 -22
  72. package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
  73. package/dist/src/dao-space/propose-remove-editor.js +12 -94
  74. package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
  75. package/dist/src/dao-space/propose-remove-editor.test.js +22 -4
  76. package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
  77. package/dist/src/dao-space/propose-remove-member.d.ts +1 -22
  78. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
  79. package/dist/src/dao-space/propose-remove-member.js +12 -94
  80. package/dist/src/dao-space/propose-remove-member.js.map +1 -1
  81. package/dist/src/dao-space/propose-remove-member.test.js +19 -0
  82. package/dist/src/dao-space/propose-remove-member.test.js.map +1 -1
  83. package/dist/src/dao-space/propose-update-voting-settings.d.ts +8 -0
  84. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +1 -0
  85. package/dist/src/dao-space/propose-update-voting-settings.js +19 -0
  86. package/dist/src/dao-space/propose-update-voting-settings.js.map +1 -0
  87. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +2 -0
  88. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +1 -0
  89. package/dist/src/dao-space/propose-update-voting-settings.test.js +118 -0
  90. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +1 -0
  91. package/dist/src/dao-space/types.d.ts +72 -11
  92. package/dist/src/dao-space/types.d.ts.map +1 -1
  93. package/dist/src/dao-space/vote-proposal.d.ts +1 -1
  94. package/dist/src/dao-space/vote-proposal.js +2 -2
  95. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  96. package/dist/src/dao-space/vote-proposal.test.js +54 -0
  97. package/dist/src/dao-space/vote-proposal.test.js.map +1 -1
  98. package/dist/src/e2e-test-environment.d.ts +26 -0
  99. package/dist/src/e2e-test-environment.d.ts.map +1 -0
  100. package/dist/src/e2e-test-environment.js +150 -0
  101. package/dist/src/e2e-test-environment.js.map +1 -0
  102. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +31 -8
  103. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  104. package/dist/src/encodings/get-create-dao-space-calldata.js +66 -17
  105. package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
  106. package/dist/src/encodings/get-create-dao-space-calldata.test.js +117 -34
  107. package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -1
  108. package/dist/src/full-flow-test.test.js +5 -2
  109. package/dist/src/full-flow-test.test.js.map +1 -1
  110. package/dist/src/legacy-api-surface.e2e.test.d.ts +2 -0
  111. package/dist/src/legacy-api-surface.e2e.test.d.ts.map +1 -0
  112. package/dist/src/{e2e-legacy-api-surface.test.js → legacy-api-surface.e2e.test.js} +90 -70
  113. package/dist/src/legacy-api-surface.e2e.test.js.map +1 -0
  114. package/dist/src/personal-space/constants.d.ts +1 -1
  115. package/dist/src/personal-space/constants.d.ts.map +1 -1
  116. package/dist/src/personal-space/constants.js +1 -1
  117. package/dist/src/personal-space/constants.js.map +1 -1
  118. package/dist/src/personal-space/create-space.d.ts +2 -2
  119. package/dist/src/personal-space/create-space.d.ts.map +1 -1
  120. package/dist/src/personal-space/create-space.js +4 -3
  121. package/dist/src/personal-space/create-space.js.map +1 -1
  122. package/dist/src/personal-space/types.d.ts +4 -1
  123. package/dist/src/personal-space/types.d.ts.map +1 -1
  124. package/package.json +3 -2
  125. package/dist/src/e2e-api-surface.test.d.ts +0 -2
  126. package/dist/src/e2e-api-surface.test.d.ts.map +0 -1
  127. package/dist/src/e2e-api-surface.test.js.map +0 -1
  128. package/dist/src/e2e-legacy-api-surface.test.d.ts +0 -2
  129. package/dist/src/e2e-legacy-api-surface.test.d.ts.map +0 -1
  130. package/dist/src/e2e-legacy-api-surface.test.js.map +0 -1
@@ -1,104 +1,22 @@
1
- import { v4 as uuidv4 } from 'uuid';
2
- import { encodeAbiParameters, encodeFunctionData } from 'viem';
3
- import { DaoSpaceAbi, SpaceRegistryAbi } from '../abis/index.js';
4
- import { bytes16ToBytes32LeftAligned, EMPTY_SIGNATURE, ensure0xPrefix, getContractAddressesBasedOnNetwork, isBytes16Hex, PROPOSAL_CREATED_ACTION, } from './constants.js';
1
+ import { createGeoClient } from '../client.js';
2
+ import { resolveGeoNetwork } from '../networks.js';
3
+ import { ensure0xPrefix, isBytes16Hex } from './constants.js';
5
4
  /**
6
5
  * Creates a proposal to remove a member from a DAO space.
7
6
  *
8
- * This function:
9
- * 1. Validates the author, DAO space, and member IDs
10
- * 2. Encodes the `removeMember()` call as the proposal action
11
- * 3. Encodes the SpaceRegistry's `enter()` call with the `PROPOSAL_CREATED` action
12
- *
13
- * @param params - The parameters for proposing member removal
14
- * @returns Object containing `to` (Space Registry address), `calldata`, and `proposalId`
15
- *
16
- * @example
17
- * ```ts
18
- * import { daoSpace } from '@geoprotocol/geo-sdk';
19
- *
20
- * const { to, calldata, proposalId } = daoSpace.proposeRemoveMember({
21
- * authorSpaceId: '0xAuthorBytes16SpaceId...',
22
- * spaceId: '0xDAOBytes16SpaceId...',
23
- * memberToRemoveSpaceId: '0xMemberBytes16SpaceId...',
24
- * network: 'TESTNET',
25
- * });
26
- *
27
- * // Submit the transaction using viem or another client
28
- * await walletClient.sendTransaction({ to, data: calldata });
29
- * ```
7
+ * @deprecated Use `createGeoClient({ network }).daoSpaces.proposeRemoveMember(...)`.
30
8
  */
31
9
  export function proposeRemoveMember(params) {
32
- const { authorSpaceId: rawAuthorSpaceId, spaceId: rawSpaceId, memberToRemoveSpaceId: rawMemberToRemoveSpaceId, votingMode = 'SLOW', proposalId: rawProposalId, network = 'TESTNET', } = params;
33
- // Ensure 0x prefix on all IDs
34
- const authorSpaceId = ensure0xPrefix(rawAuthorSpaceId);
35
- const spaceId = ensure0xPrefix(rawSpaceId);
36
- const memberToRemoveSpaceId = ensure0xPrefix(rawMemberToRemoveSpaceId);
37
- // Validate inputs
38
- if (!isBytes16Hex(authorSpaceId)) {
39
- throw new Error(`authorSpaceId must be bytes16 hex (32 hex chars). Received: ${rawAuthorSpaceId}`);
40
- }
41
- if (!isBytes16Hex(spaceId)) {
42
- throw new Error(`spaceId must be bytes16 hex (32 hex chars). Received: ${rawSpaceId}`);
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}`);
43
13
  }
44
- if (!isBytes16Hex(memberToRemoveSpaceId)) {
45
- throw new Error(`memberToRemoveSpaceId must be bytes16 hex (32 hex chars). Received: ${rawMemberToRemoveSpaceId}`);
14
+ if (!isBytes16Hex(ensure0xPrefix(args.spaceId))) {
15
+ throw new Error(`spaceId must be bytes16 hex (32 hex chars). Received: ${args.spaceId}`);
46
16
  }
47
- // Generate or use provided proposal ID (UUID v4 as bytes16 hex)
48
- const proposalId = rawProposalId
49
- ? ensure0xPrefix(rawProposalId)
50
- : `0x${uuidv4().replaceAll('-', '')}`;
51
- if (!isBytes16Hex(proposalId)) {
52
- throw new Error(`proposalId must be bytes16 hex (32 hex chars). Received: ${rawProposalId}`);
17
+ if (!isBytes16Hex(ensure0xPrefix(args.memberToRemoveSpaceId))) {
18
+ throw new Error(`memberToRemoveSpaceId must be bytes16 hex (32 hex chars). Received: ${args.memberToRemoveSpaceId}`);
53
19
  }
54
- // Encode the removeMember function call: removeMember(bytes16 _oldMemberSpaceId)
55
- const proposalActionCalldata = encodeFunctionData({
56
- abi: DaoSpaceAbi,
57
- functionName: 'removeMember',
58
- args: [memberToRemoveSpaceId],
59
- });
60
- const contracts = getContractAddressesBasedOnNetwork(network);
61
- // Create the proposal action (calling removeMember on the Space Registry)
62
- const proposalActions = [
63
- {
64
- to: contracts.SPACE_REGISTRY_ADDRESS,
65
- value: 0n,
66
- data: proposalActionCalldata,
67
- },
68
- ];
69
- // Encode the proposal data: abi.encode(bytes16 proposalId, VotingMode votingMode, Action[] actions)
70
- const data = encodeAbiParameters([
71
- { type: 'bytes16', name: 'proposalId' },
72
- { type: 'uint8', name: 'votingMode' },
73
- {
74
- type: 'tuple[]',
75
- name: 'actions',
76
- components: [
77
- { type: 'address', name: 'to' },
78
- { type: 'uint256', name: 'value' },
79
- { type: 'bytes', name: 'data' },
80
- ],
81
- },
82
- ], [proposalId, votingMode === 'FAST' ? 1 : 0, proposalActions]);
83
- // Convert proposalId to bytes32 for the topic (left-aligned)
84
- const topic = bytes16ToBytes32LeftAligned(proposalId);
85
- // Encode the SpaceRegistry.enter() call
86
- const calldata = encodeFunctionData({
87
- abi: SpaceRegistryAbi,
88
- functionName: 'enter',
89
- args: [
90
- authorSpaceId, // fromSpaceId
91
- spaceId, // toSpaceId
92
- PROPOSAL_CREATED_ACTION, // action
93
- topic, // topic (proposalId left-aligned to bytes32)
94
- data, // data (encoded proposal)
95
- EMPTY_SIGNATURE, // signature (unused when msg.sender == fromSpace)
96
- ],
97
- });
98
- return {
99
- to: contracts.SPACE_REGISTRY_ADDRESS,
100
- calldata,
101
- proposalId,
102
- };
20
+ return createGeoClient({ network: resolveGeoNetwork(network) }).daoSpaces.proposeRemoveMember(args);
103
21
  }
104
22
  //# sourceMappingURL=propose-remove-member.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"propose-remove-member.js","sourceRoot":"","sources":["../../../src/dao-space/propose-remove-member.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propose-remove-member.js","sourceRoot":"","sources":["../../../src/dao-space/propose-remove-member.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,mBAAmB,CAAC,MAAiC;IACnE,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;IACD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,uEAAuE,IAAI,CAAC,qBAAqB,EAAE,CACpG,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtG,CAAC"}
@@ -6,11 +6,13 @@ describe('proposeRemoveMember', () => {
6
6
  // Valid test values
7
7
  const validAuthorSpaceId = '0x0eed5491b917cf58b33ac81255fe7ae9';
8
8
  const validSpaceId = '0xabcdef12345678901234567890abcdef';
9
+ const validDaoSpaceAddress = '0x1234567890123456789012345678901234567890';
9
10
  const validMemberToRemove = '0x11111111111111111111111111111111';
10
11
  it('should return correct structure', () => {
11
12
  const result = proposeRemoveMember({
12
13
  authorSpaceId: validAuthorSpaceId,
13
14
  spaceId: validSpaceId,
15
+ daoSpaceAddress: validDaoSpaceAddress,
14
16
  memberToRemoveSpaceId: validMemberToRemove,
15
17
  });
16
18
  expect(result).toHaveProperty('to');
@@ -21,6 +23,7 @@ describe('proposeRemoveMember', () => {
21
23
  const { to } = proposeRemoveMember({
22
24
  authorSpaceId: validAuthorSpaceId,
23
25
  spaceId: validSpaceId,
26
+ daoSpaceAddress: validDaoSpaceAddress,
24
27
  memberToRemoveSpaceId: validMemberToRemove,
25
28
  });
26
29
  expect(to).toBe(TESTNET.SPACE_REGISTRY_ADDRESS);
@@ -29,6 +32,7 @@ describe('proposeRemoveMember', () => {
29
32
  const { calldata } = proposeRemoveMember({
30
33
  authorSpaceId: validAuthorSpaceId,
31
34
  spaceId: validSpaceId,
35
+ daoSpaceAddress: validDaoSpaceAddress,
32
36
  memberToRemoveSpaceId: validMemberToRemove,
33
37
  });
34
38
  expect(calldata).toBeTypeOf('string');
@@ -38,6 +42,7 @@ describe('proposeRemoveMember', () => {
38
42
  const { proposalId } = proposeRemoveMember({
39
43
  authorSpaceId: validAuthorSpaceId,
40
44
  spaceId: validSpaceId,
45
+ daoSpaceAddress: validDaoSpaceAddress,
41
46
  memberToRemoveSpaceId: validMemberToRemove,
42
47
  });
43
48
  expect(proposalId).toMatch(BYTES16_HEX_REGEX);
@@ -47,6 +52,7 @@ describe('proposeRemoveMember', () => {
47
52
  const { proposalId } = proposeRemoveMember({
48
53
  authorSpaceId: validAuthorSpaceId,
49
54
  spaceId: validSpaceId,
55
+ daoSpaceAddress: validDaoSpaceAddress,
50
56
  memberToRemoveSpaceId: validMemberToRemove,
51
57
  proposalId: customProposalId,
52
58
  });
@@ -56,6 +62,7 @@ describe('proposeRemoveMember', () => {
56
62
  const result = proposeRemoveMember({
57
63
  authorSpaceId: validAuthorSpaceId,
58
64
  spaceId: validSpaceId,
65
+ daoSpaceAddress: validDaoSpaceAddress,
59
66
  memberToRemoveSpaceId: validMemberToRemove,
60
67
  });
61
68
  expect(result.calldata).toBeTruthy();
@@ -64,6 +71,7 @@ describe('proposeRemoveMember', () => {
64
71
  const result = proposeRemoveMember({
65
72
  authorSpaceId: validAuthorSpaceId,
66
73
  spaceId: validSpaceId,
74
+ daoSpaceAddress: validDaoSpaceAddress,
67
75
  memberToRemoveSpaceId: validMemberToRemove,
68
76
  votingMode: 'FAST',
69
77
  });
@@ -73,6 +81,7 @@ describe('proposeRemoveMember', () => {
73
81
  const params = {
74
82
  authorSpaceId: validAuthorSpaceId,
75
83
  spaceId: validSpaceId,
84
+ daoSpaceAddress: validDaoSpaceAddress,
76
85
  memberToRemoveSpaceId: validMemberToRemove,
77
86
  };
78
87
  const slowResult = proposeRemoveMember({ ...params, votingMode: 'SLOW' });
@@ -89,12 +98,14 @@ describe('proposeRemoveMember', () => {
89
98
  const result1 = proposeRemoveMember({
90
99
  authorSpaceId: validAuthorSpaceId,
91
100
  spaceId: validSpaceId,
101
+ daoSpaceAddress: validDaoSpaceAddress,
92
102
  memberToRemoveSpaceId: validMemberToRemove,
93
103
  proposalId: sharedProposalId,
94
104
  });
95
105
  const result2 = proposeRemoveMember({
96
106
  authorSpaceId: validAuthorSpaceId,
97
107
  spaceId: validSpaceId,
108
+ daoSpaceAddress: validDaoSpaceAddress,
98
109
  memberToRemoveSpaceId: otherMember,
99
110
  proposalId: sharedProposalId,
100
111
  });
@@ -104,6 +115,7 @@ describe('proposeRemoveMember', () => {
104
115
  const result = proposeRemoveMember({
105
116
  authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
106
117
  spaceId: 'abcdef12345678901234567890abcdef',
118
+ daoSpaceAddress: validDaoSpaceAddress,
107
119
  memberToRemoveSpaceId: '11111111111111111111111111111111',
108
120
  });
109
121
  expect(result.calldata).toBeTruthy();
@@ -113,12 +125,14 @@ describe('proposeRemoveMember', () => {
113
125
  const withPrefix = proposeRemoveMember({
114
126
  authorSpaceId: '0x0eed5491b917cf58b33ac81255fe7ae9',
115
127
  spaceId: '0xabcdef12345678901234567890abcdef',
128
+ daoSpaceAddress: validDaoSpaceAddress,
116
129
  memberToRemoveSpaceId: '0x11111111111111111111111111111111',
117
130
  proposalId,
118
131
  });
119
132
  const withoutPrefix = proposeRemoveMember({
120
133
  authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
121
134
  spaceId: 'abcdef12345678901234567890abcdef',
135
+ daoSpaceAddress: validDaoSpaceAddress,
122
136
  memberToRemoveSpaceId: '11111111111111111111111111111111',
123
137
  proposalId,
124
138
  });
@@ -128,6 +142,7 @@ describe('proposeRemoveMember', () => {
128
142
  const params = {
129
143
  authorSpaceId: validAuthorSpaceId,
130
144
  spaceId: validSpaceId,
145
+ daoSpaceAddress: validDaoSpaceAddress,
131
146
  memberToRemoveSpaceId: validMemberToRemove,
132
147
  };
133
148
  const result1 = proposeRemoveMember(params);
@@ -138,6 +153,7 @@ describe('proposeRemoveMember', () => {
138
153
  expect(() => proposeRemoveMember({
139
154
  authorSpaceId: 'invalid',
140
155
  spaceId: validSpaceId,
156
+ daoSpaceAddress: validDaoSpaceAddress,
141
157
  memberToRemoveSpaceId: validMemberToRemove,
142
158
  })).toThrow('authorSpaceId must be bytes16 hex');
143
159
  });
@@ -145,6 +161,7 @@ describe('proposeRemoveMember', () => {
145
161
  expect(() => proposeRemoveMember({
146
162
  authorSpaceId: validAuthorSpaceId,
147
163
  spaceId: 'tooshort',
164
+ daoSpaceAddress: validDaoSpaceAddress,
148
165
  memberToRemoveSpaceId: validMemberToRemove,
149
166
  })).toThrow('spaceId must be bytes16 hex');
150
167
  });
@@ -152,6 +169,7 @@ describe('proposeRemoveMember', () => {
152
169
  expect(() => proposeRemoveMember({
153
170
  authorSpaceId: validAuthorSpaceId,
154
171
  spaceId: validSpaceId,
172
+ daoSpaceAddress: validDaoSpaceAddress,
155
173
  memberToRemoveSpaceId: 'badid',
156
174
  })).toThrow('memberToRemoveSpaceId must be bytes16 hex');
157
175
  });
@@ -159,6 +177,7 @@ describe('proposeRemoveMember', () => {
159
177
  expect(() => proposeRemoveMember({
160
178
  authorSpaceId: validAuthorSpaceId,
161
179
  spaceId: validSpaceId,
180
+ daoSpaceAddress: validDaoSpaceAddress,
162
181
  memberToRemoveSpaceId: validMemberToRemove,
163
182
  proposalId: 'badproposalid',
164
183
  })).toThrow('proposalId must be bytes16 hex');
@@ -1 +1 @@
1
- {"version":3,"file":"propose-remove-member.test.js","sourceRoot":"","sources":["../../../src/dao-space/propose-remove-member.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propose-remove-member.test.js","sourceRoot":"","sources":["../../../src/dao-space/propose-remove-member.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,19 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=propose-update-voting-settings.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propose-update-voting-settings.test.d.ts","sourceRoot":"","sources":["../../../src/dao-space/propose-update-voting-settings.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
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
@@ -0,0 +1 @@
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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"}
@@ -43,7 +43,7 @@ export type ProposeEditParams = {
43
43
  author: Id | string;
44
44
  /**
45
45
  * The DAO space contract address.
46
- * This is the target of the publish() call in the proposal.
46
+ * This is the target of the ping() call in the proposal.
47
47
  */
48
48
  daoSpaceAddress: `0x${string}`;
49
49
  /**
@@ -58,7 +58,7 @@ export type ProposeEditParams = {
58
58
  daoSpaceId: `0x${string}`;
59
59
  /**
60
60
  * Voting mode for the proposal.
61
- * Defaults to 'FAST' since publish() is a valid fast-path action.
61
+ * Defaults to 'FAST' since edit publishing uses a valid fast-path ping action.
62
62
  */
63
63
  votingMode?: VotingMode;
64
64
  /**
@@ -66,6 +66,16 @@ export type ProposeEditParams = {
66
66
  * If omitted, a unique id is generated.
67
67
  */
68
68
  proposalId?: `0x${string}`;
69
+ /**
70
+ * Set to true when publishing a new version of an existing proposal.
71
+ */
72
+ updateProposal?: boolean;
73
+ /**
74
+ * Proposal version to create. Only valid for update flows. Required for
75
+ * update flows unless the client can resolve the next version from the
76
+ * configured network RPC.
77
+ */
78
+ versionId?: number;
69
79
  /** Network to use (defaults to TESTNET) */
70
80
  network?: Network;
71
81
  };
@@ -80,6 +90,8 @@ export type ProposeEditResult = {
80
90
  calldata: `0x${string}`;
81
91
  /** The proposal ID (bytes16 hex) */
82
92
  proposalId: `0x${string}`;
93
+ /** The proposal version ID */
94
+ versionId: number;
83
95
  };
84
96
  /**
85
97
  * Vote option for a DAO proposal.
@@ -104,6 +116,10 @@ export type VoteProposalParams = {
104
116
  * The proposal to vote on (bytes16 hex, with or without 0x prefix).
105
117
  */
106
118
  proposalId: string;
119
+ /**
120
+ * The proposal version to vote on. Defaults to 1 for first-version proposals.
121
+ */
122
+ versionId?: number;
107
123
  /**
108
124
  * The vote option: 'YES', 'NO', or 'ABSTAIN'.
109
125
  */
@@ -179,6 +195,10 @@ export type ProposeRemoveMemberParams = {
179
195
  * This is the toSpaceId in the enter() call.
180
196
  */
181
197
  spaceId: string;
198
+ /**
199
+ * The DAO space contract address. This is the target of the role action.
200
+ */
201
+ daoSpaceAddress: `0x${string}`;
182
202
  /**
183
203
  * The space ID of the member to remove (bytes16 hex, with or without 0x prefix).
184
204
  */
@@ -215,6 +235,10 @@ export type ProposeAddMemberParams = {
215
235
  * This is the toSpaceId in the enter() call.
216
236
  */
217
237
  spaceId: string;
238
+ /**
239
+ * The DAO space contract address. This is the target of the role action.
240
+ */
241
+ daoSpaceAddress: `0x${string}`;
218
242
  /**
219
243
  * The space ID of the new member to add (bytes16 hex).
220
244
  */
@@ -252,14 +276,15 @@ export type ProposeRemoveEditorParams = {
252
276
  */
253
277
  spaceId: string;
254
278
  /**
255
- * The space ID of the editor to remove (bytes16 hex, with or without 0x prefix).
279
+ * The DAO space contract address. This is the target of the role action.
256
280
  */
257
- editorToRemoveSpaceId: string;
281
+ daoSpaceAddress: `0x${string}`;
258
282
  /**
259
- * Voting mode for the proposal.
260
- * Defaults to 'SLOW' since removeEditor is not a fast-path action.
283
+ * The space ID of the editor to remove (bytes16 hex, with or without 0x prefix).
261
284
  */
262
- votingMode?: VotingMode;
285
+ editorToRemoveSpaceId: string;
286
+ /** Editor changes only support SLOW voting. */
287
+ votingMode?: 'SLOW';
263
288
  /**
264
289
  * Optional bytes16 proposalId (0x + 32 hex chars, with or without 0x prefix).
265
290
  * If omitted, a unique id is generated.
@@ -287,15 +312,51 @@ export type ProposeAddEditorParams = {
287
312
  * This is the toSpaceId in the enter() call.
288
313
  */
289
314
  spaceId: string;
315
+ /**
316
+ * The DAO space contract address. This is the target of the role action.
317
+ */
318
+ daoSpaceAddress: `0x${string}`;
290
319
  /**
291
320
  * The space ID of the new editor to add (bytes16 hex).
292
321
  */
293
322
  newEditorSpaceId: string;
323
+ /** Editor changes only support SLOW voting. */
324
+ votingMode?: 'SLOW';
294
325
  /**
295
- * Voting mode for the proposal.
296
- * Defaults to 'SLOW' since addEditor() is a governance action.
326
+ * Optional bytes16 proposalId (0x + 32 hex chars).
327
+ * If omitted, a unique id is generated.
297
328
  */
298
- votingMode?: VotingMode;
329
+ proposalId?: string;
330
+ /** Network to use (defaults to TESTNET) */
331
+ network?: Network;
332
+ };
333
+ export type ProposeAddEditorResult = {
334
+ /** The contract address to send the transaction to (Space Registry) */
335
+ to: `0x${string}`;
336
+ /** The calldata for the enter() function call */
337
+ calldata: `0x${string}`;
338
+ /** The proposal ID (bytes16 hex) */
339
+ proposalId: `0x${string}`;
340
+ };
341
+ export type ProposeUpdateVotingSettingsParams = {
342
+ /**
343
+ * The proposer's space ID (bytes16 hex).
344
+ * This is the fromSpaceId in the enter() call.
345
+ */
346
+ authorSpaceId: string;
347
+ /**
348
+ * The DAO space ID (bytes16 hex).
349
+ * This is the toSpaceId in the enter() call.
350
+ */
351
+ spaceId: string;
352
+ /**
353
+ * The DAO space contract address. This is the target of the updateVotingSettings action.
354
+ */
355
+ daoSpaceAddress: `0x${string}`;
356
+ /** New voting settings for the DAO space. */
357
+ votingSettings: VotingSettingsInput;
358
+ /** Updating voting settings only supports SLOW voting. */
359
+ votingMode?: 'SLOW';
299
360
  /**
300
361
  * Optional bytes16 proposalId (0x + 32 hex chars).
301
362
  * If omitted, a unique id is generated.
@@ -304,7 +365,7 @@ export type ProposeAddEditorParams = {
304
365
  /** Network to use (defaults to TESTNET) */
305
366
  network?: Network;
306
367
  };
307
- export type ProposeAddEditorResult = {
368
+ export type ProposeUpdateVotingSettingsResult = {
308
369
  /** The contract address to send the transaction to (Space Registry) */
309
370
  to: `0x${string}`;
310
371
  /** The calldata for the enter() function call */