@graphprotocol/grc-20 0.31.1 → 0.32.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 (116) hide show
  1. package/dist/examples/ranks/create-ordinal-rank.js +4 -4
  2. package/dist/examples/ranks/create-ordinal-rank.js.map +1 -1
  3. package/dist/examples/ranks/create-weighted-rank.js +4 -4
  4. package/dist/examples/ranks/create-weighted-rank.js.map +1 -1
  5. package/dist/proto.d.ts +4 -8
  6. package/dist/proto.d.ts.map +1 -1
  7. package/dist/proto.js +4 -8
  8. package/dist/proto.js.map +1 -1
  9. package/dist/scripts/setup-rank-types.d.ts +2 -2
  10. package/dist/scripts/setup-rank-types.d.ts.map +1 -1
  11. package/dist/scripts/setup-rank-types.js.map +1 -1
  12. package/dist/src/codec/convert.d.ts +18 -0
  13. package/dist/src/codec/convert.d.ts.map +1 -0
  14. package/dist/src/codec/convert.js +188 -0
  15. package/dist/src/codec/convert.js.map +1 -0
  16. package/dist/src/core/account.d.ts +2 -2
  17. package/dist/src/core/account.d.ts.map +1 -1
  18. package/dist/src/core/account.js +2 -0
  19. package/dist/src/core/account.js.map +1 -1
  20. package/dist/src/core/account.test.js +69 -22
  21. package/dist/src/core/account.test.js.map +1 -1
  22. package/dist/src/core/blocks/data.d.ts +3 -3
  23. package/dist/src/core/blocks/data.d.ts.map +1 -1
  24. package/dist/src/core/blocks/data.js +2 -1
  25. package/dist/src/core/blocks/data.js.map +1 -1
  26. package/dist/src/core/blocks/data.test.js +74 -36
  27. package/dist/src/core/blocks/data.test.js.map +1 -1
  28. package/dist/src/core/blocks/text.d.ts +3 -3
  29. package/dist/src/core/blocks/text.d.ts.map +1 -1
  30. package/dist/src/core/blocks/text.js +2 -1
  31. package/dist/src/core/blocks/text.js.map +1 -1
  32. package/dist/src/core/blocks/text.test.js +79 -15
  33. package/dist/src/core/blocks/text.test.js.map +1 -1
  34. package/dist/src/encoding.test.d.ts +2 -0
  35. package/dist/src/encoding.test.d.ts.map +1 -0
  36. package/dist/src/encoding.test.js +644 -0
  37. package/dist/src/encoding.test.js.map +1 -0
  38. package/dist/src/full-flow-test.test.js +125 -37
  39. package/dist/src/full-flow-test.test.js.map +1 -1
  40. package/dist/src/graph/constants.d.ts +2 -1
  41. package/dist/src/graph/constants.d.ts.map +1 -1
  42. package/dist/src/graph/constants.js +4 -0
  43. package/dist/src/graph/constants.js.map +1 -1
  44. package/dist/src/graph/create-entity.d.ts +0 -1
  45. package/dist/src/graph/create-entity.d.ts.map +1 -1
  46. package/dist/src/graph/create-entity.js +155 -111
  47. package/dist/src/graph/create-entity.js.map +1 -1
  48. package/dist/src/graph/create-entity.test.js +339 -206
  49. package/dist/src/graph/create-entity.test.js.map +1 -1
  50. package/dist/src/graph/create-image.d.ts.map +1 -1
  51. package/dist/src/graph/create-image.js +14 -13
  52. package/dist/src/graph/create-image.js.map +1 -1
  53. package/dist/src/graph/create-image.test.js +109 -50
  54. package/dist/src/graph/create-image.test.js.map +1 -1
  55. package/dist/src/graph/create-property.d.ts.map +1 -1
  56. package/dist/src/graph/create-property.js +10 -19
  57. package/dist/src/graph/create-property.js.map +1 -1
  58. package/dist/src/graph/create-property.test.js +129 -19
  59. package/dist/src/graph/create-property.test.js.map +1 -1
  60. package/dist/src/graph/create-relation.d.ts +1 -3
  61. package/dist/src/graph/create-relation.d.ts.map +1 -1
  62. package/dist/src/graph/create-relation.js +21 -37
  63. package/dist/src/graph/create-relation.js.map +1 -1
  64. package/dist/src/graph/create-relation.test.js +186 -200
  65. package/dist/src/graph/create-relation.test.js.map +1 -1
  66. package/dist/src/graph/create-space.d.ts +2 -2
  67. package/dist/src/graph/create-space.d.ts.map +1 -1
  68. package/dist/src/graph/create-space.js.map +1 -1
  69. package/dist/src/graph/create-type.d.ts.map +1 -1
  70. package/dist/src/graph/create-type.js +16 -21
  71. package/dist/src/graph/create-type.js.map +1 -1
  72. package/dist/src/graph/create-type.test.js +76 -67
  73. package/dist/src/graph/create-type.test.js.map +1 -1
  74. package/dist/src/graph/delete-relation.d.ts.map +1 -1
  75. package/dist/src/graph/delete-relation.js +3 -6
  76. package/dist/src/graph/delete-relation.js.map +1 -1
  77. package/dist/src/graph/delete-relation.test.js +6 -8
  78. package/dist/src/graph/delete-relation.test.js.map +1 -1
  79. package/dist/src/graph/index.d.ts +1 -4
  80. package/dist/src/graph/index.d.ts.map +1 -1
  81. package/dist/src/graph/index.js +1 -4
  82. package/dist/src/graph/index.js.map +1 -1
  83. package/dist/src/graph/update-entity.d.ts.map +1 -1
  84. package/dist/src/graph/update-entity.js +109 -57
  85. package/dist/src/graph/update-entity.js.map +1 -1
  86. package/dist/src/graph/update-entity.test.js +167 -40
  87. package/dist/src/graph/update-entity.test.js.map +1 -1
  88. package/dist/src/graph/update-relation.d.ts +1 -2
  89. package/dist/src/graph/update-relation.d.ts.map +1 -1
  90. package/dist/src/graph/update-relation.js +12 -16
  91. package/dist/src/graph/update-relation.js.map +1 -1
  92. package/dist/src/graph/update-relation.test.js +75 -109
  93. package/dist/src/graph/update-relation.test.js.map +1 -1
  94. package/dist/src/id-utils.d.ts +6 -0
  95. package/dist/src/id-utils.d.ts.map +1 -1
  96. package/dist/src/id-utils.js +13 -0
  97. package/dist/src/id-utils.js.map +1 -1
  98. package/dist/src/ipfs.d.ts +3 -3
  99. package/dist/src/ipfs.d.ts.map +1 -1
  100. package/dist/src/ipfs.js +27 -7
  101. package/dist/src/ipfs.js.map +1 -1
  102. package/dist/src/ipfs.test.js +130 -17
  103. package/dist/src/ipfs.test.js.map +1 -1
  104. package/dist/src/proto/index.d.ts +7 -1
  105. package/dist/src/proto/index.d.ts.map +1 -1
  106. package/dist/src/proto/index.js +6 -1
  107. package/dist/src/proto/index.js.map +1 -1
  108. package/dist/src/ranks/create-rank.d.ts.map +1 -1
  109. package/dist/src/ranks/create-rank.js +54 -47
  110. package/dist/src/ranks/create-rank.js.map +1 -1
  111. package/dist/src/ranks/create-rank.test.js +181 -94
  112. package/dist/src/ranks/create-rank.test.js.map +1 -1
  113. package/dist/src/types.d.ts +52 -89
  114. package/dist/src/types.d.ts.map +1 -1
  115. package/dist/src/types.js.map +1 -1
  116. package/package.json +2 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.test.js","sourceRoot":"","sources":["../../src/encoding.test.ts"],"names":[],"mappings":"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"}
@@ -1,54 +1,142 @@
1
+ import { createPublicClient, encodeAbiParameters, encodeFunctionData, http, keccak256, toHex } from 'viem';
1
2
  import { privateKeyToAccount } from 'viem/accounts';
2
3
  import { it } from 'vitest';
3
- import { Ipfs } from '../index.js';
4
- import { TESTNET_API_ORIGIN } from './graph/constants.js';
4
+ import { SpaceRegistryAbi } from './abis/index.js';
5
5
  import { createEntity } from './graph/create-entity.js';
6
- import { createSpace } from './graph/create-space.js';
6
+ import { publishEdit } from './ipfs.js';
7
7
  import { getWalletClient } from './smart-wallet.js';
8
- it.skip('should create a space', async () => {
8
+ // Contract addresses for testnet
9
+ // Note: These should be imported from contracts.ts once it's exported
10
+ const SPACE_REGISTRY_ADDRESS = '0xB01683b2f0d38d43fcD4D9aAB980166988924132';
11
+ const EMPTY_SPACE_ID = '0x00000000000000000000000000000000';
12
+ const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
13
+ // Action constants
14
+ const EDITS_PUBLISHED = keccak256(toHex('GOVERNANCE.EDITS_PUBLISHED'));
15
+ /**
16
+ * Converts a bytes16 hex space ID to a UUID string (without dashes).
17
+ */
18
+ function hexToUuid(hex) {
19
+ // Remove 0x prefix and trailing zeros (bytes16 is 32 hex chars)
20
+ return hex.slice(2, 34).toLowerCase();
21
+ }
22
+ it.skip('should create a space and publish an edit', async () => {
23
+ // IMPORTANT: Replace with your actual private key for testing
24
+ // You can get your private key using https://www.geobrowser.io/export-wallet
9
25
  const addressPrivateKey = '0xTODO';
10
26
  const { address } = privateKeyToAccount(addressPrivateKey);
11
- const smartAccountWalletClient = await getWalletClient({
27
+ console.log('address', address);
28
+ // Get wallet client for testnet
29
+ const walletClient = await getWalletClient({
12
30
  privateKey: addressPrivateKey,
13
31
  });
14
- console.log('addressPrivateKey', addressPrivateKey);
15
- console.log('address', address);
16
- // console.log('smartAccountWalletClient', smartAccountWalletClient);
17
- const space = await createSpace({
18
- editorAddress: address,
19
- name: 'test (nik2)',
20
- network: 'TESTNET',
32
+ const account = walletClient.account;
33
+ if (!account) {
34
+ throw new Error('Wallet client account is undefined');
35
+ }
36
+ // Create a public client for reading contract state
37
+ const rpcUrl = walletClient.chain?.rpcUrls?.default?.http?.[0];
38
+ if (!rpcUrl) {
39
+ throw new Error('Wallet client RPC URL is undefined');
40
+ }
41
+ const publicClient = createPublicClient({
42
+ transport: http(rpcUrl),
21
43
  });
22
- console.log('space', space);
23
- const spaceId = space.id;
24
- const { ops, id } = await createEntity({
25
- name: 'test (nik2)',
26
- description: 'test (nik2)',
44
+ // Check if a personal space already exists for this address
45
+ let spaceIdHex = (await publicClient.readContract({
46
+ address: SPACE_REGISTRY_ADDRESS,
47
+ abi: SpaceRegistryAbi,
48
+ functionName: 'addressToSpaceId',
49
+ args: [account.address],
50
+ }));
51
+ console.log('existing spaceIdHex', spaceIdHex);
52
+ // Create a personal space if one doesn't exist
53
+ if (spaceIdHex.toLowerCase() === EMPTY_SPACE_ID.toLowerCase()) {
54
+ console.log('Creating personal space...');
55
+ const createSpaceTxHash = await walletClient.sendTransaction({
56
+ // @ts-expect-error - viem type mismatch for account
57
+ account: walletClient.account,
58
+ to: SPACE_REGISTRY_ADDRESS,
59
+ value: 0n,
60
+ data: encodeFunctionData({
61
+ abi: SpaceRegistryAbi,
62
+ functionName: 'registerSpaceId',
63
+ args: [
64
+ keccak256(toHex('EOA_SPACE')), // _type
65
+ encodeAbiParameters([{ type: 'string' }], ['1.0.0']), // _version
66
+ ],
67
+ }),
68
+ });
69
+ console.log('createSpaceTxHash', createSpaceTxHash);
70
+ await publicClient.waitForTransactionReceipt({ hash: createSpaceTxHash });
71
+ // Re-fetch the space ID after creation
72
+ spaceIdHex = (await publicClient.readContract({
73
+ address: SPACE_REGISTRY_ADDRESS,
74
+ abi: SpaceRegistryAbi,
75
+ functionName: 'addressToSpaceId',
76
+ args: [account.address],
77
+ }));
78
+ console.log('new spaceIdHex', spaceIdHex);
79
+ }
80
+ if (spaceIdHex.toLowerCase() === EMPTY_SPACE_ID.toLowerCase()) {
81
+ throw new Error(`Failed to create personal space for address ${account.address}`);
82
+ }
83
+ const spaceId = hexToUuid(spaceIdHex);
84
+ console.log('spaceId (UUID)', spaceId);
85
+ // Verify the space address exists
86
+ const spaceAddress = (await publicClient.readContract({
87
+ address: SPACE_REGISTRY_ADDRESS,
88
+ abi: SpaceRegistryAbi,
89
+ functionName: 'spaceIdToAddress',
90
+ args: [spaceIdHex],
91
+ }));
92
+ if (spaceAddress.toLowerCase() === ZERO_ADDRESS.toLowerCase()) {
93
+ throw new Error(`Space ${spaceId} not found in registry (spaceIdHex=${spaceIdHex})`);
94
+ }
95
+ console.log('spaceAddress', spaceAddress);
96
+ // Create an entity with some data
97
+ const { ops, id: entityId } = createEntity({
98
+ name: 'Test Entity',
99
+ description: 'Created via full-flow test',
27
100
  });
28
- console.log('entity id', id);
29
- const { cid } = await Ipfs.publishEdit({
30
- name: 'Edit name',
101
+ console.log('entityId', entityId);
102
+ // Publish the edit to IPFS
103
+ const { cid, editId } = await publishEdit({
104
+ name: 'Test Edit',
31
105
  ops,
32
- author: address,
106
+ author: account.address,
107
+ network: 'TESTNET_V2',
33
108
  });
34
109
  console.log('cid', cid);
35
- const result = await fetch(`${TESTNET_API_ORIGIN}/space/${spaceId}/edit/calldata`, {
36
- method: 'POST',
37
- body: JSON.stringify({ cid }),
110
+ console.log('editId', editId);
111
+ // Publish edit on-chain via SpaceRegistry.enter(...)
112
+ // SpaceRegistry.enter expects `bytes data`; we ABI-encode the CID as a single string
113
+ const enterData = encodeAbiParameters([{ type: 'string' }], [cid]);
114
+ const calldata = encodeFunctionData({
115
+ abi: SpaceRegistryAbi,
116
+ functionName: 'enter',
117
+ args: [
118
+ spaceIdHex, // fromSpaceId (bytes16)
119
+ spaceIdHex, // toSpaceId (bytes16)
120
+ EDITS_PUBLISHED, // action
121
+ '0x0000000000000000000000000000000000000000000000000000000000000000', // topic
122
+ enterData, // data
123
+ '0x',
124
+ ],
38
125
  });
39
- console.log('edit result', result);
40
- const editResultJson = await result.json();
41
- console.log('editResultJson', editResultJson);
42
- const { to, data } = editResultJson;
43
- console.log('to', to);
44
- console.log('data', data);
45
- const txResult = await smartAccountWalletClient.sendTransaction({
46
- // @ts-expect-error - TODO: fix the types error
47
- account: smartAccountWalletClient.account,
48
- to: to,
126
+ const publishTxHash = await walletClient.sendTransaction({
127
+ // @ts-expect-error - viem type mismatch for account
128
+ account: walletClient.account,
129
+ chain: walletClient.chain ?? null,
130
+ to: SPACE_REGISTRY_ADDRESS,
49
131
  value: 0n,
50
- data: data,
132
+ data: calldata,
51
133
  });
52
- console.log('txResult', txResult);
53
- }, 30000);
134
+ console.log('publishTxHash', publishTxHash);
135
+ const publishReceipt = await publicClient.waitForTransactionReceipt({ hash: publishTxHash });
136
+ console.log('publishReceipt status', publishReceipt.status);
137
+ if (publishReceipt.status === 'reverted') {
138
+ throw new Error(`Publish transaction reverted: ${publishTxHash}`);
139
+ }
140
+ console.log('Successfully published edit to space', spaceId);
141
+ }, 60000);
54
142
  //# 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":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IAC1C,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACnC,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,wBAAwB,GAAG,MAAM,eAAe,CAAC;QACrD,UAAU,EAAE,iBAAiB;KAC9B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,qEAAqE;IAErE,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;QAC9B,aAAa,EAAE,OAAO;QACtB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IAEzB,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,MAAM,YAAY,CAAC;QACrC,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,aAAa;KAC3B,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE7B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,EAAE,WAAW;QACjB,GAAG;QACH,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAExB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,kBAAkB,UAAU,OAAO,gBAAgB,EAAE;QACjF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;KAC9B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAEnC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC9C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,eAAe,CAAC;QAC9D,+CAA+C;QAC/C,OAAO,EAAE,wBAAwB,CAAC,OAAO;QACzC,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"full-flow-test.test.js","sourceRoot":"","sources":["../../src/full-flow-test.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export declare const MAINNET_API_ORIGIN = "https://hypergraph-v2.up.railway.app";
2
2
  export declare const TESTNET_API_ORIGIN = "https://api-testnet.geobrowser.io";
3
3
  export declare const TESTNET_V2_API_ORIGIN = "https://testnet-api.geobrowser.io";
4
- export type Network = 'TESTNET' | 'TESTNET_V2' | 'MAINNET';
4
+ export declare const TESTNET_V3_API_ORIGIN = "https://testnet-api-staging.geobrowser.io";
5
+ export type Network = 'TESTNET' | 'TESTNET_V2' | 'TESTNET_V3' | 'MAINNET';
5
6
  export declare function getApiOrigin(network?: Network): string;
6
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/graph/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE,eAAO,MAAM,qBAAqB,sCAAsC,CAAC;AAEzE,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAE3D,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAQtD"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/graph/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE,eAAO,MAAM,qBAAqB,sCAAsC,CAAC;AACzE,eAAO,MAAM,qBAAqB,8CAA8C,CAAC;AAEjF,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;AAE1E,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAWtD"}
@@ -1,6 +1,7 @@
1
1
  export const MAINNET_API_ORIGIN = 'https://hypergraph-v2.up.railway.app';
2
2
  export const TESTNET_API_ORIGIN = 'https://api-testnet.geobrowser.io';
3
3
  export const TESTNET_V2_API_ORIGIN = 'https://testnet-api.geobrowser.io';
4
+ export const TESTNET_V3_API_ORIGIN = 'https://testnet-api-staging.geobrowser.io';
4
5
  export function getApiOrigin(network) {
5
6
  if (network === 'TESTNET') {
6
7
  return TESTNET_API_ORIGIN;
@@ -8,6 +9,9 @@ export function getApiOrigin(network) {
8
9
  if (network === 'TESTNET_V2') {
9
10
  return TESTNET_V2_API_ORIGIN;
10
11
  }
12
+ if (network === 'TESTNET_V3') {
13
+ return TESTNET_V3_API_ORIGIN;
14
+ }
11
15
  return MAINNET_API_ORIGIN;
12
16
  }
13
17
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/graph/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,mCAAmC,CAAC;AAIzE,MAAM,UAAU,YAAY,CAAC,OAAiB;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/graph/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,mCAAmC,CAAC;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AAIjF,MAAM,UAAU,YAAY,CAAC,OAAiB;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -26,7 +26,6 @@ import type { CreateResult, EntityParams } from '../types.js';
26
26
  * fromSpace: 'id of the from space', // optional
27
27
  * fromVersion: 'id of the from version', // optional
28
28
  * toVersion: 'id of the to version', // optional
29
- * verified: true, // optional
30
29
  * position: positionString, // optional
31
30
  * entityId: 'id of the relation entity', // optional and will be generated if not provided
32
31
  * entityName: 'name of the relation entity', // optional
@@ -1 +1 @@
1
- {"version":3,"file":"create-entity.d.ts","sourceRoot":"","sources":["../../../src/graph/create-entity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AAGvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,YAAY,GAAI,yEAQ1B,YAAY,KAAG,YAuKjB,CAAC"}
1
+ {"version":3,"file":"create-entity.d.ts","sourceRoot":"","sources":["../../../src/graph/create-entity.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,eAAO,MAAM,YAAY,GAAI,yEAQ1B,YAAY,KAAG,YA+MjB,CAAC"}
@@ -1,6 +1,7 @@
1
+ import { createEntity as grcCreateEntity, createRelation as grcCreateRelation, languages, } from '@geoprotocol/grc-20';
1
2
  import { COVER_PROPERTY, DESCRIPTION_PROPERTY, NAME_PROPERTY, TYPES_PROPERTY } from '../core/ids/system.js';
2
3
  import { Id } from '../id.js';
3
- import { assertValid, generate } from '../id-utils.js';
4
+ import { assertValid, generate, toGrcId } from '../id-utils.js';
4
5
  import { createRelation } from './create-relation.js';
5
6
  /**
6
7
  * Creates an entity with the given name, description, cover, properties, and types.
@@ -29,7 +30,6 @@ import { createRelation } from './create-relation.js';
29
30
  * fromSpace: 'id of the from space', // optional
30
31
  * fromVersion: 'id of the from version', // optional
31
32
  * toVersion: 'id of the to version', // optional
32
- * verified: true, // optional
33
33
  * position: positionString, // optional
34
34
  * entityId: 'id of the relation entity', // optional and will be generated if not provided
35
35
  * entityName: 'name of the relation entity', // optional
@@ -61,61 +61,50 @@ export const createEntity = ({ id: providedId, name, description, cover, values,
61
61
  assertValid(cover, '`cover` in `createEntity`');
62
62
  for (const valueEntry of values ?? []) {
63
63
  assertValid(valueEntry.property, '`values` in `createEntity`');
64
- if (valueEntry.options) {
65
- const optionsParam = valueEntry.options;
66
- switch (optionsParam.type) {
67
- case 'text':
68
- if (optionsParam.language) {
69
- assertValid(optionsParam.language, '`language` in `options` in `values` in `createEntity`');
70
- }
71
- break;
72
- case 'number':
73
- if (optionsParam.unit) {
74
- assertValid(optionsParam.unit, '`unit` in `options` in `values` in `createEntity`');
75
- }
76
- break;
77
- default:
78
- // @ts-expect-error - we only support text and number options
79
- throw new Error(`Invalid option type: ${optionsParam.type}`);
80
- }
64
+ // Validate IDs in typed values
65
+ if (valueEntry.type === 'text' && valueEntry.language) {
66
+ assertValid(valueEntry.language, '`language` in `values` in `createEntity`');
81
67
  }
82
- // we only assert Ids one level deep for a better experience here, but multiple levels deep are
83
- // asserted since we use createRelation and createEntity internally
84
- for (const [key, relationEntry] of Object.entries(relations ?? {})) {
85
- assertValid(key, '`relations` in `createEntity`');
86
- if (Array.isArray(relationEntry)) {
87
- for (const relation of relationEntry) {
88
- assertValid(relation.toEntity, '`toEntity` in `relations` in `createEntity`');
89
- if (relation.toSpace)
90
- assertValid(relation.toSpace, '`toSpace` in `relations` in `createEntity`');
91
- if (relation.fromSpace)
92
- assertValid(relation.fromSpace, '`fromSpace` in `relations` in `createEntity`');
93
- if (relation.fromVersion)
94
- assertValid(relation.fromVersion, '`fromVersion` in `relations` in `createEntity`');
95
- if (relation.toVersion)
96
- assertValid(relation.toVersion, '`toVersion` in `relations` in `createEntity`');
97
- if (relation.entityId)
98
- assertValid(relation.entityId, '`entityId` in `relations` in `createEntity`');
99
- if (relation.entityCover)
100
- assertValid(relation.entityCover, '`entityCover` in `relations` in `createEntity`');
101
- }
102
- }
103
- else {
104
- assertValid(relationEntry.toEntity, '`toEntity` in `relations` in `createEntity`');
105
- if (relationEntry.toSpace)
106
- assertValid(relationEntry.toSpace, '`toSpace` in `relations` in `createEntity`');
107
- if (relationEntry.fromSpace)
108
- assertValid(relationEntry.fromSpace, '`fromSpace` in `relations` in `createEntity`');
109
- if (relationEntry.fromVersion)
110
- assertValid(relationEntry.fromVersion, '`fromVersion` in `relations` in `createEntity`');
111
- if (relationEntry.toVersion)
112
- assertValid(relationEntry.toVersion, '`toVersion` in `relations` in `createEntity`');
113
- if (relationEntry.entityId)
114
- assertValid(relationEntry.entityId, '`entityId` in `relations` in `createEntity`');
115
- if (relationEntry.entityCover)
116
- assertValid(relationEntry.entityCover, '`entityCover` in `relations` in `createEntity`');
68
+ if (valueEntry.type === 'float64' && valueEntry.unit) {
69
+ assertValid(valueEntry.unit, '`unit` in `values` in `createEntity`');
70
+ }
71
+ }
72
+ // we only assert Ids one level deep for a better experience here, but multiple levels deep are
73
+ // asserted since we use createRelation and createEntity internally
74
+ for (const [key, relationEntry] of Object.entries(relations ?? {})) {
75
+ assertValid(key, '`relations` in `createEntity`');
76
+ if (Array.isArray(relationEntry)) {
77
+ for (const relation of relationEntry) {
78
+ assertValid(relation.toEntity, '`toEntity` in `relations` in `createEntity`');
79
+ if (relation.toSpace)
80
+ assertValid(relation.toSpace, '`toSpace` in `relations` in `createEntity`');
81
+ if (relation.fromSpace)
82
+ assertValid(relation.fromSpace, '`fromSpace` in `relations` in `createEntity`');
83
+ if (relation.fromVersion)
84
+ assertValid(relation.fromVersion, '`fromVersion` in `relations` in `createEntity`');
85
+ if (relation.toVersion)
86
+ assertValid(relation.toVersion, '`toVersion` in `relations` in `createEntity`');
87
+ if (relation.entityId)
88
+ assertValid(relation.entityId, '`entityId` in `relations` in `createEntity`');
89
+ if (relation.entityCover)
90
+ assertValid(relation.entityCover, '`entityCover` in `relations` in `createEntity`');
117
91
  }
118
92
  }
93
+ else {
94
+ assertValid(relationEntry.toEntity, '`toEntity` in `relations` in `createEntity`');
95
+ if (relationEntry.toSpace)
96
+ assertValid(relationEntry.toSpace, '`toSpace` in `relations` in `createEntity`');
97
+ if (relationEntry.fromSpace)
98
+ assertValid(relationEntry.fromSpace, '`fromSpace` in `relations` in `createEntity`');
99
+ if (relationEntry.fromVersion)
100
+ assertValid(relationEntry.fromVersion, '`fromVersion` in `relations` in `createEntity`');
101
+ if (relationEntry.toVersion)
102
+ assertValid(relationEntry.toVersion, '`toVersion` in `relations` in `createEntity`');
103
+ if (relationEntry.entityId)
104
+ assertValid(relationEntry.entityId, '`entityId` in `relations` in `createEntity`');
105
+ if (relationEntry.entityCover)
106
+ assertValid(relationEntry.entityCover, '`entityCover` in `relations` in `createEntity`');
107
+ }
119
108
  }
120
109
  for (const typeId of types ?? []) {
121
110
  assertValid(typeId, '`types` in `createEntity`');
@@ -125,75 +114,131 @@ export const createEntity = ({ id: providedId, name, description, cover, values,
125
114
  const newValues = [];
126
115
  if (name) {
127
116
  newValues.push({
128
- property: NAME_PROPERTY,
129
- value: name,
117
+ property: toGrcId(NAME_PROPERTY),
118
+ value: {
119
+ type: 'text',
120
+ value: name,
121
+ language: languages.english(),
122
+ },
130
123
  });
131
124
  }
132
125
  if (description) {
133
126
  newValues.push({
134
- property: DESCRIPTION_PROPERTY,
135
- value: description,
127
+ property: toGrcId(DESCRIPTION_PROPERTY),
128
+ value: {
129
+ type: 'text',
130
+ value: description,
131
+ language: languages.english(),
132
+ },
136
133
  });
137
134
  }
138
135
  for (const valueEntry of values ?? []) {
139
- let options;
140
- if (valueEntry.options) {
141
- const optionsParam = valueEntry.options;
142
- switch (optionsParam.type) {
143
- case 'text':
144
- options = {
145
- text: {
146
- language: optionsParam.language,
147
- },
148
- };
149
- break;
150
- case 'number':
151
- options = {
152
- number: {
153
- unit: optionsParam.unit,
154
- },
155
- };
156
- break;
157
- }
136
+ const property = toGrcId(valueEntry.property);
137
+ if (valueEntry.type === 'text') {
138
+ newValues.push({
139
+ property,
140
+ value: {
141
+ type: 'text',
142
+ value: valueEntry.value,
143
+ language: valueEntry.language ? toGrcId(valueEntry.language) : languages.english(),
144
+ },
145
+ });
146
+ }
147
+ else if (valueEntry.type === 'float64') {
148
+ newValues.push({
149
+ property,
150
+ value: {
151
+ type: 'float64',
152
+ value: valueEntry.value,
153
+ ...(valueEntry.unit ? { unit: toGrcId(valueEntry.unit) } : {}),
154
+ },
155
+ });
156
+ }
157
+ else if (valueEntry.type === 'bool') {
158
+ newValues.push({
159
+ property,
160
+ value: {
161
+ type: 'bool',
162
+ value: valueEntry.value,
163
+ },
164
+ });
165
+ }
166
+ else if (valueEntry.type === 'point') {
167
+ newValues.push({
168
+ property,
169
+ value: {
170
+ type: 'point',
171
+ lon: valueEntry.lon,
172
+ lat: valueEntry.lat,
173
+ ...(valueEntry.alt !== undefined ? { alt: valueEntry.alt } : {}),
174
+ },
175
+ });
176
+ }
177
+ else if (valueEntry.type === 'date') {
178
+ newValues.push({
179
+ property,
180
+ value: {
181
+ type: 'date',
182
+ value: valueEntry.value,
183
+ },
184
+ });
185
+ }
186
+ else if (valueEntry.type === 'time') {
187
+ newValues.push({
188
+ property,
189
+ value: {
190
+ type: 'time',
191
+ value: valueEntry.value,
192
+ },
193
+ });
194
+ }
195
+ else if (valueEntry.type === 'datetime') {
196
+ newValues.push({
197
+ property,
198
+ value: {
199
+ type: 'datetime',
200
+ value: valueEntry.value,
201
+ },
202
+ });
203
+ }
204
+ else if (valueEntry.type === 'schedule') {
205
+ newValues.push({
206
+ property,
207
+ value: {
208
+ type: 'schedule',
209
+ value: valueEntry.value,
210
+ },
211
+ });
212
+ }
213
+ else {
214
+ // Exhaustive check - this will cause a TypeScript error if a new type is added
215
+ // to TypedValue but not handled here
216
+ const exhaustiveCheck = valueEntry;
217
+ throw new Error(`Unsupported value type: ${exhaustiveCheck.type}`);
158
218
  }
159
- newValues.push({
160
- property: Id(valueEntry.property),
161
- value: valueEntry.value,
162
- options,
163
- });
164
219
  }
165
- const op = {
166
- type: 'UPDATE_ENTITY',
167
- entity: {
168
- id: Id(id),
169
- values: newValues,
170
- },
171
- };
172
- ops.push(op);
220
+ ops.push(grcCreateEntity({
221
+ id: toGrcId(id),
222
+ values: newValues,
223
+ }));
173
224
  if (cover) {
174
- ops.push({
175
- type: 'CREATE_RELATION',
176
- relation: {
177
- id: generate(),
178
- entity: generate(),
179
- fromEntity: Id(id),
180
- toEntity: Id(cover),
181
- type: COVER_PROPERTY,
182
- },
183
- });
225
+ ops.push(grcCreateRelation({
226
+ id: toGrcId(generate()),
227
+ entity: toGrcId(generate()),
228
+ from: toGrcId(id),
229
+ to: toGrcId(cover),
230
+ relationType: toGrcId(COVER_PROPERTY),
231
+ }));
184
232
  }
185
233
  if (types) {
186
234
  for (const typeId of types) {
187
- ops.push({
188
- type: 'CREATE_RELATION',
189
- relation: {
190
- id: generate(),
191
- entity: generate(),
192
- fromEntity: Id(id),
193
- toEntity: Id(typeId),
194
- type: TYPES_PROPERTY,
195
- },
196
- });
235
+ ops.push(grcCreateRelation({
236
+ id: toGrcId(generate()),
237
+ entity: toGrcId(generate()),
238
+ from: toGrcId(id),
239
+ to: toGrcId(typeId),
240
+ relationType: toGrcId(TYPES_PROPERTY),
241
+ }));
197
242
  }
198
243
  }
199
244
  for (const [typeId, value] of Object.entries(relations ?? {})) {
@@ -211,7 +256,6 @@ export const createEntity = ({ id: providedId, name, description, cover, values,
211
256
  toSpace: relation.toSpace,
212
257
  fromVersion: relation.fromVersion,
213
258
  toVersion: relation.toVersion,
214
- verified: relation.verified,
215
259
  entityId: relationEntityId,
216
260
  entityName: relation.entityName,
217
261
  entityDescription: relation.entityDescription,