@beclab/olaresid 0.1.13 → 0.2.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 (182) hide show
  1. package/CLI-TREE.md +107 -0
  2. package/CLI.md +122 -1340
  3. package/README.md +30 -12
  4. package/SDK-TREE.md +151 -0
  5. package/TAG.md +95 -41
  6. package/config.json +6 -4
  7. package/dist/abi/TerminusDIDQueryABI.d.ts +397 -0
  8. package/dist/abi/TerminusDIDQueryABI.d.ts.map +1 -0
  9. package/dist/abi/TerminusDIDQueryABI.js +519 -0
  10. package/dist/abi/TerminusDIDQueryABI.js.map +1 -0
  11. package/dist/business/index.d.ts.map +1 -1
  12. package/dist/business/index.js +9 -23
  13. package/dist/business/index.js.map +1 -1
  14. package/dist/business/tag-context.d.ts +1 -0
  15. package/dist/business/tag-context.d.ts.map +1 -1
  16. package/dist/business/tag-context.js +13 -7
  17. package/dist/business/tag-context.js.map +1 -1
  18. package/dist/cli.js +177 -76
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config/index.d.ts +16 -4
  21. package/dist/config/index.d.ts.map +1 -1
  22. package/dist/config/index.js +28 -14
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/domain/core.d.ts +65 -0
  25. package/dist/domain/core.d.ts.map +1 -0
  26. package/dist/domain/core.js +317 -0
  27. package/dist/domain/core.js.map +1 -0
  28. package/dist/domain/index.d.ts +104 -57
  29. package/dist/domain/index.d.ts.map +1 -1
  30. package/dist/domain/index.js +188 -428
  31. package/dist/domain/index.js.map +1 -1
  32. package/dist/domain/types.d.ts +56 -0
  33. package/dist/domain/types.d.ts.map +1 -0
  34. package/dist/domain/types.js +3 -0
  35. package/dist/domain/types.js.map +1 -0
  36. package/dist/index.d.ts +81 -23
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +158 -143
  39. package/dist/index.js.map +1 -1
  40. package/dist/utils/crypto-utils.d.ts +110 -0
  41. package/dist/utils/crypto-utils.d.ts.map +1 -1
  42. package/dist/utils/crypto-utils.js +127 -8
  43. package/dist/utils/crypto-utils.js.map +1 -1
  44. package/dist/utils/error-parser.d.ts.map +1 -1
  45. package/dist/utils/error-parser.js +2 -1
  46. package/dist/utils/error-parser.js.map +1 -1
  47. package/dist/utils/event-parser.d.ts +161 -0
  48. package/dist/utils/event-parser.d.ts.map +1 -0
  49. package/dist/utils/event-parser.js +140 -0
  50. package/dist/utils/event-parser.js.map +1 -0
  51. package/dist/utils/tag-type-builder.d.ts +43 -0
  52. package/dist/utils/tag-type-builder.d.ts.map +1 -1
  53. package/dist/utils/tag-type-builder.js +122 -0
  54. package/dist/utils/tag-type-builder.js.map +1 -1
  55. package/dist/utils/tag-type-parser.d.ts +70 -0
  56. package/dist/utils/tag-type-parser.d.ts.map +1 -0
  57. package/dist/utils/tag-type-parser.js +190 -0
  58. package/dist/utils/tag-type-parser.js.map +1 -0
  59. package/examples/create-with-rpc-demo.ts +142 -0
  60. package/examples/fetch-all-flat-demo.ts +159 -0
  61. package/examples/fetch-by-indices-demo.ts +235 -0
  62. package/examples/fetch-domain-demo.ts +137 -0
  63. package/examples/fetch-domains-demo.ts +221 -0
  64. package/examples/frontend-demo/index.html +2 -2
  65. package/examples/frontend-demo/package-lock.json +4 -1
  66. package/examples/index.ts +3 -5
  67. package/jest.config.js +25 -0
  68. package/package.json +6 -2
  69. package/src/abi/TerminusDIDQueryABI.ts +516 -0
  70. package/src/business/index.ts +9 -33
  71. package/src/business/tag-context.ts +35 -7
  72. package/src/cli.ts +253 -90
  73. package/src/config/index.ts +34 -19
  74. package/src/domain/core.ts +382 -0
  75. package/src/domain/index.ts +271 -641
  76. package/src/domain/types.ts +59 -0
  77. package/src/index.ts +230 -207
  78. package/src/utils/crypto-utils.ts +205 -2
  79. package/src/utils/error-parser.ts +2 -1
  80. package/src/utils/event-parser.ts +353 -0
  81. package/src/utils/tag-type-builder.ts +138 -0
  82. package/src/utils/tag-type-parser.ts +246 -0
  83. package/tests/unit/crypto-utils.test.ts +338 -0
  84. package/tests/unit/ed25519-jwk.test.ts +201 -0
  85. package/tests/unit/event-parser.test.ts +690 -0
  86. package/tests/unit/generate-mnemonic.test.ts +268 -0
  87. package/tests/unit/olares-id-format.test.ts +321 -0
  88. package/tests/unit/tag-type-parser.test.ts +802 -0
  89. package/tests/unit/tag-types.test.ts +821 -0
  90. package/tests/unit/version.test.ts +14 -0
  91. package/tsconfig.json +3 -2
  92. package/dist/abi/ABITypeABI.d.ts +0 -88
  93. package/dist/abi/ABITypeABI.d.ts.map +0 -1
  94. package/dist/abi/ABITypeABI.js +0 -382
  95. package/dist/abi/ABITypeABI.js.map +0 -1
  96. package/dist/abi/RegistryABI.d.ts +0 -77
  97. package/dist/abi/RegistryABI.d.ts.map +0 -1
  98. package/dist/abi/RegistryABI.js +0 -462
  99. package/dist/abi/RegistryABI.js.map +0 -1
  100. package/dist/tag/address.d.ts +0 -11
  101. package/dist/tag/address.d.ts.map +0 -1
  102. package/dist/tag/address.js +0 -44
  103. package/dist/tag/address.js.map +0 -1
  104. package/dist/tag/array.d.ts +0 -14
  105. package/dist/tag/array.d.ts.map +0 -1
  106. package/dist/tag/array.js +0 -72
  107. package/dist/tag/array.js.map +0 -1
  108. package/dist/tag/bool.d.ts +0 -11
  109. package/dist/tag/bool.d.ts.map +0 -1
  110. package/dist/tag/bool.js +0 -43
  111. package/dist/tag/bool.js.map +0 -1
  112. package/dist/tag/bytes.d.ts +0 -11
  113. package/dist/tag/bytes.d.ts.map +0 -1
  114. package/dist/tag/bytes.js +0 -37
  115. package/dist/tag/bytes.js.map +0 -1
  116. package/dist/tag/flarray.d.ts +0 -15
  117. package/dist/tag/flarray.d.ts.map +0 -1
  118. package/dist/tag/flarray.js +0 -81
  119. package/dist/tag/flarray.js.map +0 -1
  120. package/dist/tag/flbytes.d.ts +0 -11
  121. package/dist/tag/flbytes.d.ts.map +0 -1
  122. package/dist/tag/flbytes.js +0 -47
  123. package/dist/tag/flbytes.js.map +0 -1
  124. package/dist/tag/index.d.ts +0 -32
  125. package/dist/tag/index.d.ts.map +0 -1
  126. package/dist/tag/index.js +0 -121
  127. package/dist/tag/index.js.map +0 -1
  128. package/dist/tag/int.d.ts +0 -12
  129. package/dist/tag/int.d.ts.map +0 -1
  130. package/dist/tag/int.js +0 -49
  131. package/dist/tag/int.js.map +0 -1
  132. package/dist/tag/string.d.ts +0 -11
  133. package/dist/tag/string.d.ts.map +0 -1
  134. package/dist/tag/string.js +0 -37
  135. package/dist/tag/string.js.map +0 -1
  136. package/dist/tag/tag.d.ts +0 -67
  137. package/dist/tag/tag.d.ts.map +0 -1
  138. package/dist/tag/tag.js +0 -157
  139. package/dist/tag/tag.js.map +0 -1
  140. package/dist/tag/tuple.d.ts +0 -17
  141. package/dist/tag/tuple.d.ts.map +0 -1
  142. package/dist/tag/tuple.js +0 -162
  143. package/dist/tag/tuple.js.map +0 -1
  144. package/dist/tag/uint.d.ts +0 -12
  145. package/dist/tag/uint.d.ts.map +0 -1
  146. package/dist/tag/uint.js +0 -49
  147. package/dist/tag/uint.js.map +0 -1
  148. package/dist/test/did.d.ts +0 -2
  149. package/dist/test/did.d.ts.map +0 -1
  150. package/dist/test/did.js +0 -177
  151. package/dist/test/did.js.map +0 -1
  152. package/dist/utils/tag-abi-codec.d.ts +0 -69
  153. package/dist/utils/tag-abi-codec.d.ts.map +0 -1
  154. package/dist/utils/tag-abi-codec.js +0 -144
  155. package/dist/utils/tag-abi-codec.js.map +0 -1
  156. package/examples/crypto-utilities.ts +0 -140
  157. package/examples/ed25519-jwk.ts +0 -73
  158. package/examples/generate-mnemonic.ts +0 -149
  159. package/examples/legacy.ts +0 -33
  160. package/examples/olares-id-format.ts +0 -197
  161. package/examples/tag-builder.ts +0 -235
  162. package/examples/tag-nested-tuple.ts +0 -190
  163. package/examples/tag-simple.ts +0 -149
  164. package/examples/tag-tagger.ts +0 -217
  165. package/examples/test-nested-tuple-conversion.ts +0 -143
  166. package/examples/test-type-bytes-parser.ts +0 -70
  167. package/src/abi/ABITypeABI.ts +0 -379
  168. package/src/abi/RegistryABI.ts +0 -459
  169. package/src/tag/address.ts +0 -48
  170. package/src/tag/array.ts +0 -80
  171. package/src/tag/bool.ts +0 -43
  172. package/src/tag/bytes.ts +0 -38
  173. package/src/tag/flarray.ts +0 -99
  174. package/src/tag/flbytes.ts +0 -48
  175. package/src/tag/index.ts +0 -170
  176. package/src/tag/int.ts +0 -51
  177. package/src/tag/string.ts +0 -38
  178. package/src/tag/tag.ts +0 -229
  179. package/src/tag/tuple.ts +0 -193
  180. package/src/tag/uint.ts +0 -51
  181. package/src/test/did.ts +0 -346
  182. package/src/utils/tag-abi-codec.ts +0 -158
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.QueryContractHelper = void 0;
7
+ exports.collectFieldNameHashes = collectFieldNameHashes;
8
+ exports.batchFetchFieldNames = batchFetchFieldNames;
9
+ exports.parseDomain = parseDomain;
10
+ exports.parseAllDomains = parseAllDomains;
11
+ exports.calculateLevel = calculateLevel;
12
+ exports.getParentDomainName = getParentDomainName;
13
+ const ethers_1 = require("ethers");
14
+ const TerminusDIDQueryABI_1 = __importDefault(require("../abi/TerminusDIDQueryABI"));
15
+ const tag_type_parser_1 = require("../utils/tag-type-parser");
16
+ const error_parser_1 = require("../utils/error-parser");
17
+ const crypto_utils_1 = require("../utils/crypto-utils");
18
+ // ============================================================================
19
+ // Query Contract Helper
20
+ // ============================================================================
21
+ /**
22
+ * Helper class for interacting with TerminusDIDQuery contract
23
+ */
24
+ class QueryContractHelper {
25
+ constructor(queryContractAddress, provider) {
26
+ this.contract = new ethers_1.ethers.Contract(queryContractAddress, TerminusDIDQueryABI_1.default, provider);
27
+ }
28
+ /**
29
+ * Get total supply of domains
30
+ */
31
+ async getTotalSupply() {
32
+ try {
33
+ const supply = await this.contract.totalSupply();
34
+ return Number(supply);
35
+ }
36
+ catch (error) {
37
+ const parsedError = (0, error_parser_1.parseContractError)(error);
38
+ console.error('[core] getTotalSupply failed:', parsedError.message);
39
+ throw new Error(parsedError.message);
40
+ }
41
+ }
42
+ /**
43
+ * Get token ID by index
44
+ */
45
+ async getTokenByIndex(index) {
46
+ try {
47
+ return await this.contract.tokenByIndex(index);
48
+ }
49
+ catch (error) {
50
+ const parsedError = (0, error_parser_1.parseContractError)(error);
51
+ console.error('[core] getTokenByIndex failed:', parsedError.message);
52
+ throw new Error(parsedError.message);
53
+ }
54
+ }
55
+ /**
56
+ * Get single domain data by token ID or domain name
57
+ * Automatically detects if input is tokenId (starts with 0x or is bigint) or domain name
58
+ */
59
+ async getDomain(nameOrTokenId) {
60
+ try {
61
+ let data;
62
+ // Check if it's a tokenId (hex string or bigint)
63
+ if (typeof nameOrTokenId === 'bigint' ||
64
+ (typeof nameOrTokenId === 'string' &&
65
+ nameOrTokenId.startsWith('0x'))) {
66
+ data = await this.contract.getDomain(nameOrTokenId);
67
+ }
68
+ else {
69
+ // It's a domain name
70
+ data = await this.contract.getDomainByName(nameOrTokenId);
71
+ }
72
+ return this._convertDomainData(data);
73
+ }
74
+ catch (error) {
75
+ const parsedError = (0, error_parser_1.parseContractError)(error);
76
+ console.error('[core] getDomain failed:', parsedError.message);
77
+ throw new Error(parsedError.message);
78
+ }
79
+ }
80
+ /**
81
+ * Get multiple domains data by token IDs
82
+ */
83
+ async getDomains(tokenIds) {
84
+ try {
85
+ const data = await this.contract.getDomains(tokenIds);
86
+ return data.map((d) => this._convertDomainData(d));
87
+ }
88
+ catch (error) {
89
+ const parsedError = (0, error_parser_1.parseContractError)(error);
90
+ console.error('[core] getDomains failed:', parsedError.message);
91
+ throw new Error(parsedError.message);
92
+ }
93
+ }
94
+ /**
95
+ * Get all domains with pagination
96
+ */
97
+ async getAllDomains(offset, limit) {
98
+ try {
99
+ const data = await this.contract.getAllDomains(offset, limit);
100
+ return data.map((d) => this._convertDomainData(d));
101
+ }
102
+ catch (error) {
103
+ const parsedError = (0, error_parser_1.parseContractError)(error);
104
+ console.error('[core] getAllDomains failed:', parsedError.message);
105
+ throw new Error(parsedError.message);
106
+ }
107
+ }
108
+ /**
109
+ * Get domains by specific indices (single RPC call)
110
+ */
111
+ async getDomainsByIndices(indices) {
112
+ try {
113
+ const data = await this.contract.getDomainsByIndices(indices);
114
+ return data.map((d) => this._convertDomainData(d));
115
+ }
116
+ catch (error) {
117
+ const parsedError = (0, error_parser_1.parseContractError)(error);
118
+ console.error('[core] getDomainsByIndices failed:', parsedError.message);
119
+ throw new Error(parsedError.message);
120
+ }
121
+ }
122
+ /**
123
+ * Convert contract response to RawDomainData
124
+ */
125
+ _convertDomainData(data) {
126
+ return {
127
+ tokenId: data.tokenId,
128
+ domain: data.domain,
129
+ did: data.did,
130
+ notes: data.notes,
131
+ allowSubdomain: data.allowSubdomain,
132
+ owner: data.owner,
133
+ tags: data.tags.map((tag) => ({
134
+ from: tag.from,
135
+ name: tag.name,
136
+ // ethers v6 returns bytes fields as Uint8Array; normalize to hex string
137
+ abiType: ethers_1.ethers.hexlify(tag.abiType ?? '0x'),
138
+ value: ethers_1.ethers.hexlify(tag.value ?? '0x'),
139
+ fieldNamesHash: tag.fieldNamesHash
140
+ }))
141
+ };
142
+ }
143
+ }
144
+ exports.QueryContractHelper = QueryContractHelper;
145
+ // ============================================================================
146
+ // Field Names Fetching
147
+ // ============================================================================
148
+ /**
149
+ * Collect all unique field name hashes from raw domains
150
+ */
151
+ function collectFieldNameHashes(rawDomains) {
152
+ const hashSet = new Set();
153
+ for (const domain of rawDomains) {
154
+ for (const tag of domain.tags) {
155
+ for (const hash of tag.fieldNamesHash) {
156
+ if (hash &&
157
+ hash !==
158
+ '0x0000000000000000000000000000000000000000000000000000000000000000') {
159
+ hashSet.add(hash);
160
+ }
161
+ }
162
+ }
163
+ }
164
+ return Array.from(hashSet);
165
+ }
166
+ /**
167
+ * Batch fetch field names from blockchain events
168
+ * Groups queries by block number to minimize RPC calls
169
+ */
170
+ async function batchFetchFieldNames(contract, hashes) {
171
+ const fieldNamesMap = new Map();
172
+ if (hashes.length === 0) {
173
+ return fieldNamesMap;
174
+ }
175
+ // Step 1: Batch get block numbers for all hashes
176
+ const hashToBlock = new Map();
177
+ for (const hash of hashes) {
178
+ try {
179
+ const blockNum = await contract.getFieldNamesEventBlock(hash);
180
+ hashToBlock.set(hash, Number(blockNum));
181
+ }
182
+ catch (error) {
183
+ console.error(`[core] failed to get block number for field name hash ${hash}:`, error instanceof Error ? error.message : String(error));
184
+ throw error;
185
+ }
186
+ }
187
+ // Step 2: Group hashes by block number
188
+ const blockToHashes = new Map();
189
+ for (const [hash, blockNum] of hashToBlock.entries()) {
190
+ if (!blockToHashes.has(blockNum)) {
191
+ blockToHashes.set(blockNum, []);
192
+ }
193
+ blockToHashes.get(blockNum).push(hash);
194
+ }
195
+ // Step 3: Batch query events by block
196
+ for (const [blockNum, hashesInBlock] of blockToHashes.entries()) {
197
+ try {
198
+ const events = await contract.queryFilter('OffchainStringArray', blockNum, blockNum);
199
+ for (const event of events) {
200
+ const eventHash = event.args.hash;
201
+ if (hashesInBlock.includes(eventHash)) {
202
+ fieldNamesMap.set(eventHash, event.args.value);
203
+ }
204
+ }
205
+ }
206
+ catch (error) {
207
+ console.error(`[core] failed to query events at block ${blockNum} for ${hashesInBlock.length} hashes:`, error instanceof Error ? error.message : String(error));
208
+ throw error;
209
+ }
210
+ }
211
+ return fieldNamesMap;
212
+ }
213
+ // ============================================================================
214
+ // Domain Parsing
215
+ // ============================================================================
216
+ /**
217
+ * Parse a single raw domain into flat domain data
218
+ */
219
+ function parseDomain(rawDomain, fieldNamesMap) {
220
+ const abiCoder = new ethers_1.AbiCoder();
221
+ const domain = {
222
+ id: ethers_1.ethers.toBeHex(rawDomain.tokenId, 32),
223
+ name: rawDomain.domain,
224
+ did: rawDomain.did,
225
+ note: rawDomain.notes,
226
+ allowSubdomain: rawDomain.allowSubdomain,
227
+ owner: ethers_1.ethers.getAddress(rawDomain.owner),
228
+ level: calculateLevel(rawDomain.domain),
229
+ tags: []
230
+ };
231
+ // Parse tags
232
+ for (const rawTag of rawDomain.tags) {
233
+ try {
234
+ const tag = tag_type_parser_1.TagTypeParser.parseTag(rawTag, fieldNamesMap, abiCoder);
235
+ domain.tags.push(tag);
236
+ }
237
+ catch (error) {
238
+ console.error(`[core] failed to parse tag ${rawTag.name}:`, error);
239
+ throw error;
240
+ }
241
+ }
242
+ applyLatestDID(domain);
243
+ return domain;
244
+ }
245
+ /**
246
+ * Parse all raw domains into flat domain data
247
+ * Also calculates parentId for each domain
248
+ */
249
+ function parseAllDomains(rawDomains, fieldNamesMap) {
250
+ const abiCoder = new ethers_1.AbiCoder();
251
+ // Step 1: Create all domain objects
252
+ const domainMap = new Map();
253
+ for (const rawDomain of rawDomains) {
254
+ const domain = {
255
+ id: ethers_1.ethers.toBeHex(rawDomain.tokenId, 32),
256
+ name: rawDomain.domain,
257
+ did: rawDomain.did,
258
+ note: rawDomain.notes,
259
+ allowSubdomain: rawDomain.allowSubdomain,
260
+ owner: ethers_1.ethers.getAddress(rawDomain.owner),
261
+ level: calculateLevel(rawDomain.domain),
262
+ tags: []
263
+ };
264
+ // Parse tags
265
+ for (const rawTag of rawDomain.tags) {
266
+ try {
267
+ const tag = tag_type_parser_1.TagTypeParser.parseTag(rawTag, fieldNamesMap, abiCoder);
268
+ domain.tags.push(tag);
269
+ }
270
+ catch (error) {
271
+ console.error(`[core] failed to parse tag ${rawTag.name}:`, error);
272
+ throw error;
273
+ }
274
+ }
275
+ applyLatestDID(domain);
276
+ domainMap.set(domain.name, domain);
277
+ }
278
+ // Step 2: Calculate parentId
279
+ const flatDomains = [];
280
+ for (const domain of domainMap.values()) {
281
+ if (domain.level > 1) {
282
+ const parentName = getParentDomainName(domain.name);
283
+ const parent = domainMap.get(parentName);
284
+ if (parent) {
285
+ domain.parentId = parent.id;
286
+ }
287
+ }
288
+ flatDomains.push(domain);
289
+ }
290
+ return flatDomains;
291
+ }
292
+ // ============================================================================
293
+ // Utility Functions
294
+ // ============================================================================
295
+ /**
296
+ * If a domain has a latestDID tag with a non-empty valueFormatted, override did with it
297
+ */
298
+ function applyLatestDID(domain) {
299
+ const latestDIDTag = domain.tags.find((t) => t.name === 'latestDID');
300
+ if (latestDIDTag?.valueFormatted) {
301
+ domain.did = (0, crypto_utils_1.getFullyQualifiedVerificationMethodID)(latestDIDTag.valueFormatted);
302
+ }
303
+ }
304
+ /**
305
+ * Calculate domain level (number of dots + 1)
306
+ */
307
+ function calculateLevel(domainName) {
308
+ return domainName.split('.').length;
309
+ }
310
+ /**
311
+ * Get parent domain name
312
+ */
313
+ function getParentDomainName(domainName) {
314
+ const parts = domainName.split('.');
315
+ return parts.slice(1).join('.');
316
+ }
317
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/domain/core.ts"],"names":[],"mappings":"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"}
@@ -1,59 +1,106 @@
1
- import { ethers } from 'ethers';
2
- import DIDTag from '../tag/index';
3
- export declare namespace PackageDomain {
4
- interface Tag {
5
- definition: any;
6
- from: string;
7
- to: string;
8
- name: string;
9
- valueFormated: any;
10
- valueSource: any;
11
- }
12
- interface DomainData {
13
- id: string;
14
- name: string;
15
- did: string;
16
- note: string;
17
- allowSubdomain: boolean;
18
- owner: string;
19
- subdomains: DomainData[];
20
- tags: Tag[];
21
- }
22
- interface OfficialExtendedInformation {
23
- ip: string;
24
- rsaKey: string;
25
- authenticateds: any[];
26
- latestDID: string;
27
- }
28
- class Domain implements DomainData {
29
- id: string;
30
- name: string;
31
- did: string;
32
- note: string;
33
- allowSubdomain: boolean;
34
- owner: string;
35
- subdomains: DomainData[];
36
- tags: Tag[];
37
- constructor(id: string, name: string, did: string, note: string, allowSubdomain: boolean, owner: string, subdomains: Domain[], tags: Tag[]);
38
- }
39
- const syncById: (tokenId: string, contract: ethers.Contract) => Promise<Domain>;
40
- const syncByName: (name: string, contract: ethers.Contract) => Promise<Domain | undefined>;
41
- const syncByIndex: (index: number, contract: ethers.Contract) => Promise<Domain>;
42
- const buildTree: (allDomains: Domain[]) => Domain[];
43
- const findSubdomain: (domain: Domain, allDomains: Domain[]) => Domain[];
44
- const findASubtree: (name: string, allDomains: Domain[]) => Domain | undefined;
45
- const findSubtreesByOwner: (owner: string, allDomains: Domain[]) => Domain[];
46
- const findSubtreesByDid: (did: string, allDomains: Domain[]) => Domain[];
47
- const fetchAllTagType: (domain: Domain, contract: ethers.Contract) => Promise<Tag[]>;
48
- const fetchTagStructure: (tag: Tag, contract: ethers.Contract) => Promise<import("../tag/tag").Tag>;
49
- const fetchTagValue: (tag: Tag, contract: ethers.Contract) => Promise<any>;
50
- const fetchAllTagValue: (domain: Domain, contract: ethers.Contract) => Promise<Tag[]>;
51
- const defineTag: (domain: Domain | undefined, tagName: string, value: DIDTag.TagParserBase, contract: any, providerHolder: DIDTag.ABITypeProviderHolder) => Promise<void>;
52
- const getAllSubdoamin: (domain: Domain) => Domain[];
53
- const fetchOfficialExtendedInformation: (domain: Domain, contract: ethers.Contract) => Promise<OfficialExtendedInformation>;
54
- const updateIp: (domain: Domain, ipStr: string, contract: ethers.Contract) => Promise<string>;
55
- const updateRSAPublicKey: (domain: Domain, rsaPublicKey: string, contract: ethers.Contract) => Promise<string>;
56
- const setValue: (tag: Tag, data: any, contract: ethers.Contract) => Promise<string>;
57
- const setTagger: (tag: Tag, tagger: string, contract: ethers.Contract) => Promise<string>;
1
+ /**
2
+ * Domain fetching functions
3
+ *
4
+ * This module provides three main functions for fetching domain data:
5
+ * 1. fetchDomain - Fetch a single domain by name or tokenId
6
+ * 2. fetchDomains - Fetch multiple domains with pagination
7
+ * 3. fetchAllFlat - Fetch all domains with flat structure
8
+ */
9
+ import { FlatDomainData, FetchAllOptions } from './types';
10
+ import type { DIDConsole } from '../index';
11
+ /**
12
+ * Options for fetchDomain
13
+ */
14
+ export interface FetchDomainOptions {
15
+ queryContractAddress?: string;
58
16
  }
17
+ /**
18
+ * Options for fetchDomains (paginated query)
19
+ */
20
+ export interface FetchDomainsOptions {
21
+ queryContractAddress?: string;
22
+ offset: number;
23
+ limit: number;
24
+ }
25
+ /**
26
+ * Fetch a single domain by name or tokenId
27
+ *
28
+ * @param console - DIDConsole instance
29
+ * @param nameOrTokenId - Domain name (e.g., "alice.olares.com") or tokenId (hex string or bigint)
30
+ * @param options - Fetch options
31
+ * @returns Domain data or null if not found
32
+ *
33
+ * @example
34
+ * // Fetch by domain name
35
+ * const domain = await fetchDomain(console, "alice.olares.com", { queryContractAddress });
36
+ *
37
+ * // Fetch by tokenId
38
+ * const domain = await fetchDomain(console, "0x123...", { queryContractAddress });
39
+ */
40
+ export declare function fetchDomain(console: DIDConsole, nameOrTokenId: string | bigint, options?: FetchDomainOptions): Promise<FlatDomainData | null>;
41
+ /**
42
+ * Fetch multiple domains with pagination
43
+ * Allows you to fetch a specific range of domains with offset and limit
44
+ *
45
+ * @param console - DIDConsole instance
46
+ * @param options - Fetch options including offset and limit
47
+ * @returns Array of domains in the specified range
48
+ *
49
+ * @example
50
+ * // Fetch first 10 domains
51
+ * const domains = await fetchDomains(console, {
52
+ * queryContractAddress: "0x...",
53
+ * offset: 0,
54
+ * limit: 10
55
+ * });
56
+ *
57
+ * // Fetch next 10 domains
58
+ * const nextDomains = await fetchDomains(console, {
59
+ * queryContractAddress: "0x...",
60
+ * offset: 10,
61
+ * limit: 10
62
+ * });
63
+ */
64
+ export declare function fetchDomains(console: DIDConsole, options: FetchDomainsOptions): Promise<FlatDomainData[]>;
65
+ /**
66
+ * Options for fetchDomainsByIndices
67
+ */
68
+ export interface FetchDomainsByIndicesOptions {
69
+ queryContractAddress?: string;
70
+ }
71
+ /**
72
+ * Fetch multiple domains by their indices
73
+ * Useful for fetching specific domains when you know their positions
74
+ *
75
+ * @param console - DIDConsole instance
76
+ * @param indices - Array of domain indices (e.g., [5, 6, 9, 10])
77
+ * @param options - Fetch options
78
+ * @returns Array of domains corresponding to the specified indices
79
+ *
80
+ * @example
81
+ * // Fetch domains at specific indices
82
+ * const domains = await fetchDomainsByIndices(console, [5, 6, 9, 10], {
83
+ * queryContractAddress: "0x..."
84
+ * });
85
+ *
86
+ * // Result will contain domains at positions 5, 6, 9, and 10
87
+ * // indices[0] -> domains[0], indices[1] -> domains[1], etc.
88
+ */
89
+ export declare function fetchDomainsByIndices(console: DIDConsole, indices: number[], options?: FetchDomainsByIndicesOptions): Promise<FlatDomainData[]>;
90
+ /**
91
+ * Fetch all domains with flat structure using query contract
92
+ * Much more efficient than the old fetchAll method
93
+ *
94
+ * @param console - DIDConsole instance
95
+ * @param options - Fetch options
96
+ * @returns Array of all domains in flat structure
97
+ *
98
+ * @example
99
+ * const domains = await fetchAllFlat(console, {
100
+ * queryContractAddress: "0x...",
101
+ * batchSize: 100,
102
+ * onProgress: (current, total) => console.log(`${current}/${total}`)
103
+ * });
104
+ */
105
+ export declare function fetchAllFlat(console: DIDConsole, options?: FetchAllOptions): Promise<FlatDomainData[]>;
59
106
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE,MAAM,GAAG,MAAM,EAC9B,OAAO,GAAE,kBAAuB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA+BhC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC,CAwC3B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE,4BAAiC,GACxC,OAAO,CAAC,cAAc,EAAE,CAAC,CAkD3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE,eAAoB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC,CAqC3B"}