@geoprotocol/geo-sdk 0.11.0 → 0.13.0

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 (41) hide show
  1. package/dist/src/dao-space/constants.d.ts +9 -0
  2. package/dist/src/dao-space/constants.d.ts.map +1 -1
  3. package/dist/src/dao-space/constants.js +11 -0
  4. package/dist/src/dao-space/constants.js.map +1 -1
  5. package/dist/src/dao-space/index.d.ts +3 -1
  6. package/dist/src/dao-space/index.d.ts.map +1 -1
  7. package/dist/src/dao-space/index.js +2 -0
  8. package/dist/src/dao-space/index.js.map +1 -1
  9. package/dist/src/dao-space/propose-remove-member.d.ts +29 -0
  10. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -0
  11. package/dist/src/dao-space/propose-remove-member.js +104 -0
  12. package/dist/src/dao-space/propose-remove-member.js.map +1 -0
  13. package/dist/src/dao-space/propose-remove-member.test.d.ts +2 -0
  14. package/dist/src/dao-space/propose-remove-member.test.d.ts.map +1 -0
  15. package/dist/src/dao-space/propose-remove-member.test.js +167 -0
  16. package/dist/src/dao-space/propose-remove-member.test.js.map +1 -0
  17. package/dist/src/dao-space/propose-request-membership.d.ts +30 -0
  18. package/dist/src/dao-space/propose-request-membership.d.ts.map +1 -0
  19. package/dist/src/dao-space/propose-request-membership.js +76 -0
  20. package/dist/src/dao-space/propose-request-membership.js.map +1 -0
  21. package/dist/src/dao-space/propose-request-membership.test.d.ts +2 -0
  22. package/dist/src/dao-space/propose-request-membership.test.d.ts.map +1 -0
  23. package/dist/src/dao-space/propose-request-membership.test.js +113 -0
  24. package/dist/src/dao-space/propose-request-membership.test.js.map +1 -0
  25. package/dist/src/dao-space/types.d.ts +63 -0
  26. package/dist/src/dao-space/types.d.ts.map +1 -1
  27. package/dist/src/dao-space/vote-proposal.d.ts.map +1 -1
  28. package/dist/src/dao-space/vote-proposal.js +1 -7
  29. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  30. package/dist/src/full-flow-test.test.js +141 -6
  31. package/dist/src/full-flow-test.test.js.map +1 -1
  32. package/dist/src/graph/delete-entity.d.ts +11 -4
  33. package/dist/src/graph/delete-entity.d.ts.map +1 -1
  34. package/dist/src/graph/delete-entity.js +72 -6
  35. package/dist/src/graph/delete-entity.js.map +1 -1
  36. package/dist/src/graph/delete-entity.test.js +123 -10
  37. package/dist/src/graph/delete-entity.test.js.map +1 -1
  38. package/dist/src/types.d.ts +2 -0
  39. package/dist/src/types.d.ts.map +1 -1
  40. package/dist/src/types.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,113 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { TESTNET } from '../../contracts.js';
3
+ import { BYTES16_HEX_REGEX } from './constants.js';
4
+ import { proposeRequestMembership } from './propose-request-membership.js';
5
+ describe('proposeRequestMembership', () => {
6
+ const validAuthorSpaceId = '0x0eed5491b917cf58b33ac81255fe7ae9';
7
+ const validSpaceId = '0xabcdef12345678901234567890abcdef';
8
+ it('should return correct structure', () => {
9
+ const result = proposeRequestMembership({
10
+ authorSpaceId: validAuthorSpaceId,
11
+ spaceId: validSpaceId,
12
+ });
13
+ expect(result).toHaveProperty('to');
14
+ expect(result).toHaveProperty('calldata');
15
+ expect(result).toHaveProperty('proposalId');
16
+ });
17
+ it('should return the correct contract address (Space Registry)', () => {
18
+ const { to } = proposeRequestMembership({
19
+ authorSpaceId: validAuthorSpaceId,
20
+ spaceId: validSpaceId,
21
+ });
22
+ expect(to).toBe(TESTNET.SPACE_REGISTRY_ADDRESS);
23
+ });
24
+ it('should return valid calldata', () => {
25
+ const { calldata } = proposeRequestMembership({
26
+ authorSpaceId: validAuthorSpaceId,
27
+ spaceId: validSpaceId,
28
+ });
29
+ expect(calldata).toBeTypeOf('string');
30
+ expect(calldata.startsWith('0x')).toBe(true);
31
+ });
32
+ it('should return valid proposalId (bytes16 hex)', () => {
33
+ const { proposalId } = proposeRequestMembership({
34
+ authorSpaceId: validAuthorSpaceId,
35
+ spaceId: validSpaceId,
36
+ });
37
+ expect(proposalId).toMatch(BYTES16_HEX_REGEX);
38
+ });
39
+ it('should accept custom proposalId', () => {
40
+ const customProposalId = '0x22222222222222222222222222222222';
41
+ const { proposalId } = proposeRequestMembership({
42
+ authorSpaceId: validAuthorSpaceId,
43
+ spaceId: validSpaceId,
44
+ proposalId: customProposalId,
45
+ });
46
+ expect(proposalId).toBe(customProposalId);
47
+ });
48
+ it('should produce different calldata for different authors', () => {
49
+ const otherAuthor = '0x33333333333333333333333333333333';
50
+ const sharedProposalId = '0x44444444444444444444444444444444';
51
+ const result1 = proposeRequestMembership({
52
+ authorSpaceId: validAuthorSpaceId,
53
+ spaceId: validSpaceId,
54
+ proposalId: sharedProposalId,
55
+ });
56
+ const result2 = proposeRequestMembership({
57
+ authorSpaceId: otherAuthor,
58
+ spaceId: validSpaceId,
59
+ proposalId: sharedProposalId,
60
+ });
61
+ expect(result1.calldata).not.toBe(result2.calldata);
62
+ });
63
+ it('should accept IDs without 0x prefix', () => {
64
+ const result = proposeRequestMembership({
65
+ authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
66
+ spaceId: 'abcdef12345678901234567890abcdef',
67
+ });
68
+ expect(result.calldata).toBeTruthy();
69
+ });
70
+ it('should produce same calldata with or without 0x prefix', () => {
71
+ const proposalId = '0x55555555555555555555555555555555';
72
+ const withPrefix = proposeRequestMembership({
73
+ authorSpaceId: '0x0eed5491b917cf58b33ac81255fe7ae9',
74
+ spaceId: '0xabcdef12345678901234567890abcdef',
75
+ proposalId,
76
+ });
77
+ const withoutPrefix = proposeRequestMembership({
78
+ authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
79
+ spaceId: 'abcdef12345678901234567890abcdef',
80
+ proposalId,
81
+ });
82
+ expect(withPrefix.calldata).toBe(withoutPrefix.calldata);
83
+ });
84
+ it('should generate unique proposalIds', () => {
85
+ const params = {
86
+ authorSpaceId: validAuthorSpaceId,
87
+ spaceId: validSpaceId,
88
+ };
89
+ const result1 = proposeRequestMembership(params);
90
+ const result2 = proposeRequestMembership(params);
91
+ expect(result1.proposalId).not.toBe(result2.proposalId);
92
+ });
93
+ it('should throw for invalid authorSpaceId format', () => {
94
+ expect(() => proposeRequestMembership({
95
+ authorSpaceId: 'invalid',
96
+ spaceId: validSpaceId,
97
+ })).toThrow('authorSpaceId must be bytes16 hex');
98
+ });
99
+ it('should throw for invalid spaceId format', () => {
100
+ expect(() => proposeRequestMembership({
101
+ authorSpaceId: validAuthorSpaceId,
102
+ spaceId: 'tooshort',
103
+ })).toThrow('spaceId must be bytes16 hex');
104
+ });
105
+ it('should throw for invalid proposalId format', () => {
106
+ expect(() => proposeRequestMembership({
107
+ authorSpaceId: validAuthorSpaceId,
108
+ spaceId: validSpaceId,
109
+ proposalId: 'badproposalid',
110
+ })).toThrow('proposalId must be bytes16 hex');
111
+ });
112
+ });
113
+ //# sourceMappingURL=propose-request-membership.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propose-request-membership.test.js","sourceRoot":"","sources":["../../../src/dao-space/propose-request-membership.test.ts"],"names":[],"mappings":"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"}
@@ -117,4 +117,67 @@ export type VoteProposalResult = {
117
117
  /** The calldata for the enter() function call */
118
118
  calldata: `0x${string}`;
119
119
  };
120
+ export type ProposeRequestMembershipParams = {
121
+ /**
122
+ * The requestor's space ID (bytes16 hex, with or without 0x prefix).
123
+ * This is the fromSpaceId in the enter() call and the member to be added.
124
+ */
125
+ authorSpaceId: string;
126
+ /**
127
+ * The DAO space ID (bytes16 hex, with or without 0x prefix).
128
+ * This is the toSpaceId in the enter() call.
129
+ */
130
+ spaceId: string;
131
+ /**
132
+ * Optional bytes16 proposalId (0x + 32 hex chars, with or without 0x prefix).
133
+ * If omitted, a unique id is generated.
134
+ */
135
+ proposalId?: string;
136
+ /** Network to use (defaults to TESTNET) */
137
+ network?: Network;
138
+ };
139
+ export type ProposeRequestMembershipResult = {
140
+ /** The contract address to send the transaction to (Space Registry) */
141
+ to: `0x${string}`;
142
+ /** The calldata for the enter() function call */
143
+ calldata: `0x${string}`;
144
+ /** The proposal ID (bytes16 hex) */
145
+ proposalId: `0x${string}`;
146
+ };
147
+ export type ProposeRemoveMemberParams = {
148
+ /**
149
+ * The proposer's space ID (bytes16 hex, with or without 0x prefix).
150
+ * This is the fromSpaceId in the enter() call.
151
+ */
152
+ authorSpaceId: string;
153
+ /**
154
+ * The DAO space ID (bytes16 hex, with or without 0x prefix).
155
+ * This is the toSpaceId in the enter() call.
156
+ */
157
+ spaceId: string;
158
+ /**
159
+ * The space ID of the member to remove (bytes16 hex, with or without 0x prefix).
160
+ */
161
+ memberToRemoveSpaceId: string;
162
+ /**
163
+ * Voting mode for the proposal.
164
+ * Defaults to 'SLOW' since removeMember is not a fast-path action.
165
+ */
166
+ votingMode?: VotingMode;
167
+ /**
168
+ * Optional bytes16 proposalId (0x + 32 hex chars, with or without 0x prefix).
169
+ * If omitted, a unique id is generated.
170
+ */
171
+ proposalId?: string;
172
+ /** Network to use (defaults to TESTNET) */
173
+ network?: Network;
174
+ };
175
+ export type ProposeRemoveMemberResult = {
176
+ /** The contract address to send the transaction to (Space Registry) */
177
+ to: `0x${string}`;
178
+ /** The calldata for the enter() function call */
179
+ calldata: `0x${string}`;
180
+ /** The proposal ID (bytes16 hex) */
181
+ proposalId: `0x${string}`;
182
+ };
120
183
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dao-space/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dao-space/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vote-proposal.d.ts","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASzE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAiD3E"}
1
+ {"version":3,"file":"vote-proposal.d.ts","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAiD3E"}
@@ -1,13 +1,7 @@
1
1
  import { encodeAbiParameters, encodeFunctionData } from 'viem';
2
2
  import { TESTNET } from '../../contracts.js';
3
3
  import { SpaceRegistryAbi } from '../abis/index.js';
4
- import { bytes16ToBytes32LeftAligned, EMPTY_SIGNATURE, isBytes16Hex, PROPOSAL_VOTED_ACTION, VOTE_OPTION_VALUES, } from './constants.js';
5
- /**
6
- * Ensures a hex string has the 0x prefix.
7
- */
8
- function ensure0xPrefix(value) {
9
- return (value.startsWith('0x') ? value : `0x${value}`);
10
- }
4
+ import { bytes16ToBytes32LeftAligned, EMPTY_SIGNATURE, ensure0xPrefix, isBytes16Hex, PROPOSAL_VOTED_ACTION, VOTE_OPTION_VALUES, } from './constants.js';
11
5
  /**
12
6
  * Creates a vote transaction for a DAO space proposal.
13
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"vote-proposal.js","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAkB,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEzG,8BAA8B;IAC9B,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEjD,kBAAkB;IAClB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+DAA+D,gBAAgB,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yDAAyD,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4DAA4D,aAAa,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAEtD,2FAA2F;IAC3F,MAAM,IAAI,GAAG,mBAAmB,CAC9B;QACE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;QACvC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;KACtC,EACD,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;IAEF,wCAAwC;IACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,OAAO;QACrB,IAAI,EAAE;YACJ,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE,YAAY;YACrB,qBAAqB,EAAE,SAAS;YAChC,KAAK,EAAE,6CAA6C;YACpD,IAAI,EAAE,6BAA6B;YACnC,eAAe,EAAE,kDAAkD;SACpE;KACF,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,sBAAsB;QAClC,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"vote-proposal.js","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEzG,8BAA8B;IAC9B,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEjD,kBAAkB;IAClB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+DAA+D,gBAAgB,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yDAAyD,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4DAA4D,aAAa,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAEtD,2FAA2F;IAC3F,MAAM,IAAI,GAAG,mBAAmB,CAC9B;QACE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;QACvC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;KACtC,EACD,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;IAEF,wCAAwC;IACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,OAAO;QACrB,IAAI,EAAE;YACJ,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE,YAAY;YACrB,qBAAqB,EAAE,SAAS;YAChC,KAAK,EAAE,6CAA6C;YACpD,IAAI,EAAE,6BAA6B;YACnC,eAAe,EAAE,kDAAkD;SACpE;KACF,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,sBAAsB;QAClC,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -3,9 +3,11 @@ import { privateKeyToAccount } from 'viem/accounts';
3
3
  import { it } from 'vitest';
4
4
  import { TESTNET } from '../contracts.js';
5
5
  import { SpaceRegistryAbi } from './abis/index.js';
6
- import { DESCRIPTION_PROPERTY } from './core/ids/system.js';
6
+ import { DESCRIPTION_PROPERTY, RELATION_TYPE } from './core/ids/system.js';
7
7
  import * as daoSpace from './dao-space/index.js';
8
8
  import { createEntity } from './graph/create-entity.js';
9
+ import { createRelation } from './graph/create-relation.js';
10
+ import { deleteEntity } from './graph/delete-entity.js';
9
11
  import { updateEntity } from './graph/update-entity.js';
10
12
  import * as personalSpace from './personal-space/index.js';
11
13
  import { getWalletClient, TESTNET_RPC_URL } from './smart-wallet.js';
@@ -38,7 +40,9 @@ it.skip('should create a space and publish an edit', async () => {
38
40
  transport: http(TESTNET_RPC_URL),
39
41
  });
40
42
  // Check if a personal space already exists for this address
41
- const hasExistingSpace = await personalSpace.hasSpace({ address: account.address });
43
+ const hasExistingSpace = await personalSpace.hasSpace({
44
+ address: account.address,
45
+ });
42
46
  if (!hasExistingSpace) {
43
47
  console.log('Creating personal space...');
44
48
  const { to, calldata } = personalSpace.createSpace();
@@ -53,7 +57,9 @@ it.skip('should create a space and publish an edit', async () => {
53
57
  await publicClient.waitForTransactionReceipt({ hash: createSpaceTxHash });
54
58
  }
55
59
  // Verify space exists after potential creation
56
- const hasSpaceNow = await personalSpace.hasSpace({ address: account.address });
60
+ const hasSpaceNow = await personalSpace.hasSpace({
61
+ address: account.address,
62
+ });
57
63
  if (!hasSpaceNow) {
58
64
  throw new Error(`Failed to create personal space for address ${account.address}`);
59
65
  }
@@ -139,7 +145,9 @@ it.skip('should create a DAO space and propose an edit', async () => {
139
145
  transport: http(TESTNET_RPC_URL),
140
146
  });
141
147
  // Check if a personal space already exists for this address
142
- const hasExistingSpace = await personalSpace.hasSpace({ address: account.address });
148
+ const hasExistingSpace = await personalSpace.hasSpace({
149
+ address: account.address,
150
+ });
143
151
  if (!hasExistingSpace) {
144
152
  console.log('Creating personal space (required to be a DAO editor)...');
145
153
  const { to, calldata } = personalSpace.createSpace();
@@ -154,7 +162,9 @@ it.skip('should create a DAO space and propose an edit', async () => {
154
162
  await publicClient.waitForTransactionReceipt({ hash: createSpaceTxHash });
155
163
  }
156
164
  // Verify space exists after potential creation
157
- const hasSpaceNow = await personalSpace.hasSpace({ address: account.address });
165
+ const hasSpaceNow = await personalSpace.hasSpace({
166
+ address: account.address,
167
+ });
158
168
  if (!hasSpaceNow) {
159
169
  throw new Error(`Failed to create personal space for address ${account.address}`);
160
170
  }
@@ -213,7 +223,9 @@ it.skip('should create a DAO space and propose an edit', async () => {
213
223
  args: [daoSpaceAddress],
214
224
  }));
215
225
  console.log('daoSpaceIdHex:', daoSpaceIdHex);
216
- const hasDaoSpace = await personalSpace.hasSpace({ address: daoSpaceAddress });
226
+ const hasDaoSpace = await personalSpace.hasSpace({
227
+ address: daoSpaceAddress,
228
+ });
217
229
  if (!hasDaoSpace) {
218
230
  throw new Error('DAO space was not registered in the Space Registry');
219
231
  }
@@ -255,4 +267,127 @@ it.skip('should create a DAO space and propose an edit', async () => {
255
267
  console.log('Successfully proposed edit to DAO space');
256
268
  console.log('Proposal ID:', proposalId.slice(2));
257
269
  }, 120000);
270
+ it.skip('should create an entity and then delete it', async () => {
271
+ const privateKeyEnv = process.env.PRIVATE_KEY;
272
+ if (!privateKeyEnv) {
273
+ throw new Error('PRIVATE_KEY environment variable is required. Run `pnpm create-private-key` to generate one.');
274
+ }
275
+ const addressPrivateKey = privateKeyEnv;
276
+ const { address } = privateKeyToAccount(addressPrivateKey);
277
+ console.log('address', address);
278
+ // Get wallet client for testnet
279
+ const walletClient = await getWalletClient({
280
+ privateKey: addressPrivateKey,
281
+ });
282
+ const account = walletClient.account;
283
+ if (!account) {
284
+ throw new Error('Wallet client account is undefined');
285
+ }
286
+ // Create a public client for reading contract state
287
+ const publicClient = createPublicClient({
288
+ transport: http(TESTNET_RPC_URL),
289
+ });
290
+ // Check if a personal space already exists for this address
291
+ const hasExistingSpace = await personalSpace.hasSpace({
292
+ address: account.address,
293
+ });
294
+ if (!hasExistingSpace) {
295
+ console.log('Creating personal space...');
296
+ const { to, calldata } = personalSpace.createSpace();
297
+ const createSpaceTxHash = await walletClient.sendTransaction({
298
+ // @ts-expect-error - viem type mismatch for account
299
+ account: walletClient.account,
300
+ to,
301
+ value: 0n,
302
+ data: calldata,
303
+ });
304
+ console.log('createSpaceTxHash', createSpaceTxHash);
305
+ await publicClient.waitForTransactionReceipt({ hash: createSpaceTxHash });
306
+ }
307
+ const spaceIdHex = (await publicClient.readContract({
308
+ address: TESTNET.SPACE_REGISTRY_ADDRESS,
309
+ abi: SpaceRegistryAbi,
310
+ functionName: 'addressToSpaceId',
311
+ args: [account.address],
312
+ }));
313
+ const spaceId = hexToUuid(spaceIdHex);
314
+ console.log('spaceId (UUID)', spaceId);
315
+ // Step 1: Create an entity with some data and a relation
316
+ const { ops: createOps, id: entityId } = createEntity({
317
+ name: 'Entity to Delete',
318
+ description: 'This entity will be deleted',
319
+ });
320
+ const { ops: relationOps, id: relationId } = createRelation({
321
+ fromEntity: entityId,
322
+ toEntity: '3dd25afe17ff40f290bd9f63799cd299',
323
+ type: RELATION_TYPE,
324
+ });
325
+ console.log('entityId', entityId);
326
+ console.log('relationId', relationId);
327
+ // Publish the create edit
328
+ const { cid: createCid, editId: createEditId, to: createTo, calldata: createCalldata, } = await personalSpace.publishEdit({
329
+ name: 'Create Entity',
330
+ spaceId,
331
+ ops: [...createOps, ...relationOps],
332
+ author: spaceId,
333
+ network: 'TESTNET',
334
+ });
335
+ console.log('create cid', createCid);
336
+ console.log('create editId', createEditId);
337
+ const createTxHash = await walletClient.sendTransaction({
338
+ // @ts-expect-error - viem type mismatch for account
339
+ account: walletClient.account,
340
+ chain: walletClient.chain ?? null,
341
+ to: createTo,
342
+ data: createCalldata,
343
+ });
344
+ console.log('createTxHash', createTxHash);
345
+ const createReceipt = await publicClient.waitForTransactionReceipt({
346
+ hash: createTxHash,
347
+ });
348
+ console.log('createReceipt status', createReceipt.status);
349
+ if (createReceipt.status === 'reverted') {
350
+ throw new Error(`Create transaction reverted: ${createTxHash}`);
351
+ }
352
+ console.log('Successfully created entity', entityId);
353
+ // Wait for the entity to be indexed before deleting
354
+ await new Promise(resolve => setTimeout(resolve, 4000));
355
+ // Step 2: Delete the entity by unsetting all values and relations
356
+ const { ops: deleteOps } = await deleteEntity({
357
+ id: entityId,
358
+ spaceId,
359
+ network: 'TESTNET',
360
+ });
361
+ console.log('deleteOps count', deleteOps.length);
362
+ if (deleteOps.length === 0) {
363
+ console.log('No ops to delete (entity may not have been indexed yet)');
364
+ return;
365
+ }
366
+ // Publish the delete edit
367
+ const { cid: deleteCid, editId: deleteEditId, to: deleteTo, calldata: deleteCalldata, } = await personalSpace.publishEdit({
368
+ name: 'Delete Entity',
369
+ spaceId,
370
+ ops: deleteOps,
371
+ author: spaceId,
372
+ network: 'TESTNET',
373
+ });
374
+ console.log('delete cid', deleteCid);
375
+ console.log('delete editId', deleteEditId);
376
+ const deleteTxHash = await walletClient.sendTransaction({
377
+ // @ts-expect-error - viem type mismatch for account
378
+ account: walletClient.account,
379
+ chain: walletClient.chain ?? null,
380
+ to: deleteTo,
381
+ data: deleteCalldata,
382
+ });
383
+ console.log('deleteTxHash', deleteTxHash);
384
+ const deleteReceipt = await publicClient.waitForTransactionReceipt({
385
+ hash: deleteTxHash,
386
+ });
387
+ console.log('deleteReceipt status', deleteReceipt.status);
388
+ if (deleteReceipt.status === 'reverted') {
389
+ throw new Error(`Delete transaction reverted: ${deleteTxHash}`);
390
+ }
391
+ console.log('Successfully deleted entity', entityId);
392
+ }, 120000);
258
393
  //# sourceMappingURL=full-flow-test.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"full-flow-test.test.js","sourceRoot":"","sources":["../../src/full-flow-test.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"full-flow-test.test.js","sourceRoot":"","sources":["../../src/full-flow-test.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,21 @@
1
1
  import type { CreateResult, DeleteEntityParams } from '../types.js';
2
2
  /**
3
- * Deletes an entity.
3
+ * Deletes an entity by unsetting all its values and deleting all its relations
4
+ * in the specified space.
5
+ *
6
+ * Queries the API to discover the entity's values and relations,
7
+ * then creates the appropriate operations to remove them.
4
8
  *
5
9
  * @example
6
10
  * ```ts
7
- * const { ops } = deleteEntity({ id: entityId });
11
+ * const { ops } = await deleteEntity({
12
+ * id: entityId,
13
+ * spaceId,
14
+ * });
8
15
  * ```
9
16
  *
10
17
  * @param params – {@link DeleteEntityParams}
11
- * @returns The operations to delete the entity.
18
+ * @returns The operations to delete the entity's values and relations.
12
19
  */
13
- export declare const deleteEntity: ({ id }: DeleteEntityParams) => CreateResult;
20
+ export declare const deleteEntity: ({ id, spaceId, network }: DeleteEntityParams) => Promise<CreateResult>;
14
21
  //# sourceMappingURL=delete-entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-entity.d.ts","sourceRoot":"","sources":["../../../src/graph/delete-entity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,kBAAkB,KAAG,YAIzD,CAAC"}
1
+ {"version":3,"file":"delete-entity.d.ts","sourceRoot":"","sources":["../../../src/graph/delete-entity.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAW,MAAM,aAAa,CAAC;AAgB7E;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,GAAU,0BAA0B,kBAAkB,KAAG,OAAO,CAAC,YAAY,CA2ErG,CAAC"}
@@ -1,19 +1,85 @@
1
- import { deleteEntity as grcDeleteEntity } from '@geoprotocol/grc-20';
1
+ import { deleteRelation as grcDeleteRelation, updateEntity as grcUpdateEntity, } from '@geoprotocol/grc-20';
2
+ import { Micro } from 'effect';
2
3
  import { Id } from '../id.js';
3
4
  import { assertValid, toGrcId } from '../id-utils.js';
5
+ import { getApiOrigin } from './constants.js';
6
+ class DeleteEntityError extends Error {
7
+ _tag = 'DeleteEntityError';
8
+ }
4
9
  /**
5
- * Deletes an entity.
10
+ * Deletes an entity by unsetting all its values and deleting all its relations
11
+ * in the specified space.
12
+ *
13
+ * Queries the API to discover the entity's values and relations,
14
+ * then creates the appropriate operations to remove them.
6
15
  *
7
16
  * @example
8
17
  * ```ts
9
- * const { ops } = deleteEntity({ id: entityId });
18
+ * const { ops } = await deleteEntity({
19
+ * id: entityId,
20
+ * spaceId,
21
+ * });
10
22
  * ```
11
23
  *
12
24
  * @param params – {@link DeleteEntityParams}
13
- * @returns The operations to delete the entity.
25
+ * @returns The operations to delete the entity's values and relations.
14
26
  */
15
- export const deleteEntity = ({ id }) => {
27
+ export const deleteEntity = async ({ id, spaceId, network }) => {
16
28
  assertValid(id, '`id` in `deleteEntity`');
17
- return { id: Id(id), ops: [grcDeleteEntity(toGrcId(id))] };
29
+ assertValid(spaceId, '`spaceId` in `deleteEntity`');
30
+ // Normalize to dashless format (canonical form returned by the API)
31
+ const normalizedSpaceId = String(spaceId).replaceAll('-', '');
32
+ const resolvedNetwork = network ?? 'TESTNET';
33
+ const query = `query entity {
34
+ entity(id: "${id}") {
35
+ valuesList(filter: { spaceId: { in: [${JSON.stringify(normalizedSpaceId)}] } }) {
36
+ propertyId
37
+ spaceId
38
+ }
39
+ relationsList(filter: { spaceId: { in: [${JSON.stringify(normalizedSpaceId)}] } }) {
40
+ id
41
+ spaceId
42
+ }
43
+ }
44
+ }`;
45
+ const fetchEntityData = Micro.gen(function* () {
46
+ const result = yield* Micro.tryPromise({
47
+ try: () => fetch(`${getApiOrigin(resolvedNetwork)}/graphql`, {
48
+ method: 'POST',
49
+ headers: { 'Content-Type': 'application/json' },
50
+ body: JSON.stringify({ query }),
51
+ }),
52
+ catch: error => new DeleteEntityError(`Could not fetch entity data for ${id}: ${error}`),
53
+ });
54
+ const json = yield* Micro.tryPromise({
55
+ try: () => result.json(),
56
+ catch: error => new DeleteEntityError(`Could not parse GraphQL response for entity ${id}: ${error}`),
57
+ });
58
+ return json;
59
+ });
60
+ const response = await Micro.runPromise(fetchEntityData);
61
+ if (!response.data?.entity) {
62
+ return { id: Id(id), ops: [] };
63
+ }
64
+ const { valuesList, relationsList } = response.data.entity;
65
+ const ops = [];
66
+ const matchingValues = valuesList.filter(v => v.spaceId === normalizedSpaceId);
67
+ const matchingRelations = relationsList.filter(r => r.spaceId === normalizedSpaceId);
68
+ const uniquePropertyIds = [...new Set(matchingValues.map(v => v.propertyId))];
69
+ if (uniquePropertyIds.length > 0) {
70
+ const unsetValues = uniquePropertyIds.map(propertyId => ({
71
+ property: toGrcId(propertyId),
72
+ language: { type: 'all' },
73
+ }));
74
+ ops.push(grcUpdateEntity({
75
+ id: toGrcId(id),
76
+ set: [],
77
+ unset: unsetValues,
78
+ }));
79
+ }
80
+ for (const relation of matchingRelations) {
81
+ ops.push(grcDeleteRelation(toGrcId(relation.id)));
82
+ }
83
+ return { id: Id(id), ops };
18
84
  };
19
85
  //# sourceMappingURL=delete-entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-entity.js","sourceRoot":"","sources":["../../../src/graph/delete-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGtD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,EAAE,EAAsB,EAAgB,EAAE;IACvE,WAAW,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAE1C,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7D,CAAC,CAAC"}
1
+ {"version":3,"file":"delete-entity.js","sourceRoot":"","sources":["../../../src/graph/delete-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,IAAI,iBAAiB,EACnC,YAAY,IAAI,eAAe,GAEhC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,iBAAkB,SAAQ,KAAK;IAC1B,IAAI,GAAG,mBAAmB,CAAC;CACrC;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAsB,EAAyB,EAAE;IACxG,WAAW,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC1C,WAAW,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;IAEpD,oEAAoE;IACpE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAE9D,MAAM,eAAe,GAAY,OAAO,IAAI,SAAS,CAAC;IAEtD,MAAM,KAAK,GAAG;kBACE,EAAE;6CACyB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;gDAI9B,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;IAK7E,CAAC;IAEH,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACrC,GAAG,EAAE,GAAG,EAAE,CACR,KAAK,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE;gBAChD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;aAChC,CAAC;YACJ,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,mCAAmC,EAAE,KAAK,KAAK,EAAE,CAAC;SACzF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACnC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAoC;YAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,+CAA+C,EAAE,KAAK,KAAK,EAAE,CAAC;SACrG,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAEzD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3D,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC;IAC/E,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC;IAErF,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE9E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAoB,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACxE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;YAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAc,EAAE;SACnC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,IAAI,CACN,eAAe,CAAC;YACd,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;YACf,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,WAAW;SACnB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAC7B,CAAC,CAAC"}