@midnames/sdk 1.0.0 → 1.0.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.
@@ -4,5 +4,5 @@
4
4
  "sourceRoot": "../../../../",
5
5
  "sources": ["src/leaf.compact", "compiler/standard-library.compact"],
6
6
  "names": [],
7
- "mappings": "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"
7
+ "mappings": "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"
8
8
  }
@@ -0,0 +1,5 @@
1
+ export declare function domainToKey(name: string): {
2
+ key: Uint8Array;
3
+ len: bigint;
4
+ };
5
+ export declare function keyToDomain(key: Uint8Array): string;
@@ -0,0 +1,19 @@
1
+ export function domainToKey(name) {
2
+ const bytes = new TextEncoder().encode(name);
3
+ if (bytes.length === 0 || bytes.length > 32)
4
+ throw new Error(`Domain name must be 1-32 bytes, got ${bytes.length}`);
5
+ const key = new Uint8Array(32).fill(255);
6
+ key.set(bytes);
7
+ return { key, len: BigInt(bytes.length) };
8
+ }
9
+ export function keyToDomain(key) {
10
+ let len = 32;
11
+ for (let i = 0; i < 32; i++) {
12
+ if (key[i] === 255) {
13
+ len = i;
14
+ break;
15
+ }
16
+ }
17
+ return new TextDecoder().decode(key.subarray(0, len));
18
+ }
19
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAe;IACzC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,GAAG,GAAG,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC"}
@@ -3,76 +3,47 @@ import { type ContractProviders } from "@midnight-ntwrk/midnight-js-contracts";
3
3
  import { Leaf } from "@midnames/ns";
4
4
  import type { Result } from "./results.js";
5
5
  export declare const leafContractInstance: CompiledContract.CompiledContract<Leaf.Contract<any, any>, any, never>;
6
- /**
7
- * Insert or update a field for a domain
8
- */
6
+ export declare function buildKvs(fields: Array<[string, string]>): Array<{
7
+ is_some: boolean;
8
+ value: [string, string];
9
+ }>;
9
10
  export declare function insertField(domain: string, key: string, value: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
10
11
  transactionId: string;
11
12
  }>>;
12
- /**
13
- * Clear a specific field for a domain
14
- */
15
13
  export declare function clearField(domain: string, key: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
16
14
  transactionId: string;
17
15
  }>>;
18
- /**
19
- * Clear all fields for a domain
20
- */
21
16
  export declare function clearAllFields(domain: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
22
17
  transactionId: string;
23
18
  }>>;
24
- /**
25
- * Add multiple fields to a domain in a single transaction
26
- * Maximum of 10 fields can be added at once
27
- */
28
19
  export declare function addMultipleFields(domain: string, fields: Array<[string, string]>, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
29
20
  transactionId: string;
30
21
  }>>;
31
- /**
32
- * Update domain target address
33
- */
34
22
  export declare function updateDomainTarget(domain: string, targetAddress: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
35
23
  transactionId: string;
36
24
  }>>;
37
- /**
38
- * Update domain cost (subdomain pricing)
39
- */
40
- export declare function updateDomainCost(domain: string, cost: bigint, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
25
+ export declare function updateDomainColor(domain: string, color: Uint8Array, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
41
26
  transactionId: string;
42
27
  }>>;
43
- /**
44
- * Update domain color (accepted token type)
45
- */
46
- export declare function updateDomainColor(domain: string, colorBytes: Uint8Array, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
28
+ export declare function updateDomainCosts(domain: string, costs: {
29
+ short: bigint;
30
+ medium: bigint;
31
+ long: bigint;
32
+ }, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
47
33
  transactionId: string;
48
34
  }>>;
49
- /**
50
- * Transfer domain ownership (executed on parent contract)
51
- */
52
35
  export declare function transferDomainOwnership(parentDomain: string, subdomainName: string, newOwnerAddress: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
53
36
  transactionId: string;
54
37
  }>>;
55
- /**
56
- * Set resolver for a domain (executed on parent contract)
57
- */
58
38
  export declare function setDomainResolver(parentDomain: string, subdomainName: string, resolverAddress: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
59
39
  transactionId: string;
60
40
  }>>;
61
- /**
62
- * Register domain for an address (free for parent domain owner)
63
- */
64
41
  export declare function registerDomainFor(parentDomain: string, ownerAddress: string, subdomainName: string, resolverAddress: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
65
42
  transactionId: string;
66
43
  }>>;
67
- /**
68
- * Buy domain for an address (requires payment)
69
- */
70
44
  export declare function buyDomainFor(parentDomain: string, ownerAddress: string, subdomainName: string, resolverAddress: string, _paymentAmount: bigint, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
71
45
  transactionId: string;
72
46
  }>>;
73
- /**
74
- * Change domain owner (executed on domain's own contract)
75
- */
76
47
  export declare function changeDomainOwner(domain: string, newOwnerAddress: string, providers: ContractProviders<Leaf.Contract>): Promise<Result<{
77
48
  transactionId: string;
78
49
  }>>;
@@ -1,13 +1,12 @@
1
1
  import { CompiledContract } from "@midnight-ntwrk/compact-js";
2
2
  import { findDeployedContract, } from "@midnight-ntwrk/midnight-js-contracts";
3
- // Note: Payment coin creation is no longer needed - wallet handles payment balancing automatically
4
3
  import { ShieldedCoinPublicKey, MidnightBech32m, } from "@midnight-ntwrk/wallet-sdk-address-format";
5
4
  import { isWalletAddress } from "./utils/address.js";
6
5
  import { getNetworkId } from "@midnight-ntwrk/midnight-js-network-id";
7
6
  import { Leaf } from "@midnames/ns";
8
7
  import { success, failure } from "./results.js";
9
8
  import { NetworkError, InvalidDomainError } from "./errors.js";
10
- import { normalizeDomain, parseFullDomain } from "./utils/domain.js";
9
+ import { normalizeDomain, parseFullDomain, domainToKey } from "./utils/domain.js";
11
10
  import { getDomainInfo } from "./core.js";
12
11
  function validateDomain(domain) {
13
12
  const normalized = normalizeDomain(domain);
@@ -19,7 +18,6 @@ function validateDomain(domain) {
19
18
  }
20
19
  // Contract types and instances
21
20
  export const leafContractInstance = CompiledContract.make("leaf-contract", Leaf.Contract).pipe(CompiledContract.withVacantWitnesses, CompiledContract.withCompiledFileAssets("./managed/leaf"));
22
- // Helper function to join a leaf contract
23
21
  async function joinLeafContract(providers, contractAddress) {
24
22
  return await findDeployedContract(providers, {
25
23
  contractAddress,
@@ -28,16 +26,43 @@ async function joinLeafContract(providers, contractAddress) {
28
26
  initialPrivateState: { phantom: false },
29
27
  });
30
28
  }
31
- // Helper to parse address to bytes format
29
+ // --- Shared helpers ---
30
+ async function withLeafContract(domain, providers, label, fn) {
31
+ const validated = validateDomain(domain);
32
+ if (!validated.success)
33
+ return failure(validated.error);
34
+ try {
35
+ const domainInfoResult = await getDomainInfo(validated.data, {
36
+ provider: providers.publicDataProvider,
37
+ });
38
+ if (!domainInfoResult.success) {
39
+ return failure(domainInfoResult.error);
40
+ }
41
+ const contractAddress = domainInfoResult.data.resolver;
42
+ const contract = await joinLeafContract(providers, contractAddress);
43
+ const result = await fn(contract, domainInfoResult.data);
44
+ return success(result);
45
+ }
46
+ catch (error) {
47
+ return failure(new NetworkError(`Failed to ${label}: ${error instanceof Error ? error.message : String(error)}`, error));
48
+ }
49
+ }
50
+ function txId(result) {
51
+ return { transactionId: result.public.txId };
52
+ }
53
+ export function buildKvs(fields) {
54
+ return Array.from({ length: 10 }, (_, i) => ({
55
+ is_some: i < fields.length,
56
+ value: i < fields.length ? fields[i] : ["", ""],
57
+ }));
58
+ }
32
59
  function parseAddressToBytes(address) {
33
60
  if (isWalletAddress(address)) {
34
- // Wallet address (mn_ prefix)
35
61
  const bech32Parsed = MidnightBech32m.parse(address);
36
62
  const coinPublicKey = ShieldedCoinPublicKey.codec.decode(getNetworkId(), bech32Parsed);
37
63
  return { bytes: new Uint8Array(coinPublicKey.data) };
38
64
  }
39
65
  else {
40
- // Contract address (64-char hex string) - strip 0200 prefix for backward compat
41
66
  let hexString = address;
42
67
  if (address.startsWith("0200")) {
43
68
  hexString = address.slice(4);
@@ -46,376 +71,67 @@ function parseAddressToBytes(address) {
46
71
  return { bytes: bytes.length === 32 ? bytes : bytes.subarray(-32) };
47
72
  }
48
73
  }
49
- // Helper to format target address for contract calls
50
- function formatTargetAddress(address) {
51
- if (isWalletAddress(address)) {
52
- // Wallet address (mn_ prefix)
53
- return {
54
- tag: "Left",
55
- value: parseAddressToBytes(address),
56
- };
57
- }
58
- else {
59
- // Contract address (64-char hex string)
60
- return {
61
- tag: "Right",
62
- value: parseAddressToBytes(address),
63
- };
64
- }
65
- }
66
- // Helper to create target Either for contract calls
67
- function createTargetEither(target) {
68
- return target.tag === "Left"
69
- ? {
70
- is_left: true,
71
- left: target.value,
72
- right: { bytes: new Uint8Array(32) },
73
- }
74
- : {
75
- is_left: false,
76
- left: { bytes: new Uint8Array(32) },
77
- right: target.value,
78
- };
74
+ function formatTargetForContract(address) {
75
+ const parsed = parseAddressToBytes(address);
76
+ const isLeft = isWalletAddress(address);
77
+ return {
78
+ is_left: isLeft,
79
+ left: isLeft ? parsed : { bytes: new Uint8Array(32) },
80
+ right: isLeft ? { bytes: new Uint8Array(32) } : parsed,
81
+ };
79
82
  }
80
- // Note: Payment coin creation is no longer needed
81
- // The wallet handles payment balancing automatically when using register_domain_for
82
- /**
83
- * Insert or update a field for a domain
84
- */
83
+ // --- Domain operations ---
85
84
  export async function insertField(domain, key, value, providers) {
86
- const validated = validateDomain(domain);
87
- if (!validated.success)
88
- return failure(validated.error);
89
- try {
90
- const domainInfoResult = await getDomainInfo(validated.data, {
91
- provider: providers.publicDataProvider,
92
- });
93
- if (!domainInfoResult.success) {
94
- return failure(domainInfoResult.error);
95
- }
96
- const contractAddress = domainInfoResult.data.resolver;
97
- const contract = await joinLeafContract(providers, contractAddress);
98
- const result = await contract.callTx.insert_field(key, value);
99
- return success({
100
- transactionId: result.public.txId,
101
- });
102
- }
103
- catch (error) {
104
- return failure(new NetworkError(`Failed to insert field: ${error instanceof Error ? error.message : String(error)}`, error));
105
- }
85
+ return withLeafContract(domain, providers, "insert field", async (contract) => txId(await contract.callTx.insert_field(key, value)));
106
86
  }
107
- /**
108
- * Clear a specific field for a domain
109
- */
110
87
  export async function clearField(domain, key, providers) {
111
- const validated = validateDomain(domain);
112
- if (!validated.success)
113
- return failure(validated.error);
114
- try {
115
- const domainInfoResult = await getDomainInfo(validated.data, {
116
- provider: providers.publicDataProvider,
117
- });
118
- if (!domainInfoResult.success) {
119
- return failure(domainInfoResult.error);
120
- }
121
- const contractAddress = domainInfoResult.data.resolver;
122
- const contract = await joinLeafContract(providers, contractAddress);
123
- const result = await contract.callTx.clear_field(key);
124
- return success({
125
- transactionId: result.public.txId,
126
- });
127
- }
128
- catch (error) {
129
- return failure(new NetworkError(`Failed to clear field: ${error instanceof Error ? error.message : String(error)}`, error));
130
- }
88
+ return withLeafContract(domain, providers, "clear field", async (contract) => txId(await contract.callTx.clear_field(key)));
131
89
  }
132
- /**
133
- * Clear all fields for a domain
134
- */
135
90
  export async function clearAllFields(domain, providers) {
136
- const validated = validateDomain(domain);
137
- if (!validated.success)
138
- return failure(validated.error);
139
- try {
140
- const domainInfoResult = await getDomainInfo(validated.data, {
141
- provider: providers.publicDataProvider,
142
- });
143
- if (!domainInfoResult.success) {
144
- return failure(domainInfoResult.error);
145
- }
146
- const contractAddress = domainInfoResult.data.resolver;
147
- const domainName = validated.data.split(".")[0];
148
- const contract = await joinLeafContract(providers, contractAddress);
149
- const result = await contract.callTx.clear_all_fields(domainName);
150
- return success({
151
- transactionId: result.public.txId,
152
- });
153
- }
154
- catch (error) {
155
- return failure(new NetworkError(`Failed to clear all fields: ${error instanceof Error ? error.message : String(error)}`, error));
156
- }
91
+ return withLeafContract(domain, providers, "clear all fields", async (contract) => txId(await contract.callTx.clear_all_fields()));
157
92
  }
158
- /**
159
- * Add multiple fields to a domain in a single transaction
160
- * Maximum of 10 fields can be added at once
161
- */
162
93
  export async function addMultipleFields(domain, fields, providers) {
163
- const validated = validateDomain(domain);
164
- if (!validated.success)
165
- return failure(validated.error);
166
- try {
167
- if (fields.length === 0) {
168
- return failure(new NetworkError("No fields provided"));
169
- }
170
- if (fields.length > 10) {
171
- return failure(new NetworkError("Maximum of 10 fields can be added at once"));
172
- }
173
- // Convert to the Vector<10, Maybe<[string, string]>> format
174
- const kvs = [];
175
- for (let i = 0; i < 10; i++) {
176
- if (i < fields.length) {
177
- kvs.push({
178
- is_some: true,
179
- value: fields[i],
180
- });
181
- }
182
- else {
183
- kvs.push({
184
- is_some: false,
185
- value: ["", ""], // Empty strings for unused slots
186
- });
187
- }
188
- }
189
- const domainInfoResult = await getDomainInfo(validated.data, {
190
- provider: providers.publicDataProvider,
191
- });
192
- if (!domainInfoResult.success) {
193
- return failure(domainInfoResult.error);
194
- }
195
- const contractAddress = domainInfoResult.data.resolver;
196
- const contract = await joinLeafContract(providers, contractAddress);
197
- const result = await contract.callTx.add_multiple_fields(kvs);
198
- return success({
199
- transactionId: result.public.txId,
200
- });
94
+ if (fields.length === 0) {
95
+ return failure(new NetworkError("No fields provided"));
201
96
  }
202
- catch (error) {
203
- return failure(new NetworkError(`Failed to add multiple fields: ${error instanceof Error ? error.message : String(error)}`, error));
97
+ if (fields.length > 10) {
98
+ return failure(new NetworkError("Maximum of 10 fields can be added at once"));
204
99
  }
100
+ return withLeafContract(domain, providers, "add multiple fields", async (contract) => txId(await contract.callTx.add_multiple_fields(buildKvs(fields))));
205
101
  }
206
- /**
207
- * Update domain target address
208
- */
209
102
  export async function updateDomainTarget(domain, targetAddress, providers) {
210
- const validated = validateDomain(domain);
211
- if (!validated.success)
212
- return failure(validated.error);
213
- try {
214
- const domainInfoResult = await getDomainInfo(validated.data, {
215
- provider: providers.publicDataProvider,
216
- });
217
- if (!domainInfoResult.success) {
218
- return failure(domainInfoResult.error);
219
- }
220
- const contractAddress = domainInfoResult.data.resolver;
221
- const targetFormatted = formatTargetAddress(targetAddress);
222
- const targetEither = createTargetEither(targetFormatted);
223
- const contract = await joinLeafContract(providers, contractAddress);
224
- const result = await contract.callTx.update_domain_target(targetEither);
225
- return success({
226
- transactionId: result.public.txId,
227
- });
228
- }
229
- catch (error) {
230
- return failure(new NetworkError(`Failed to update domain target: ${error instanceof Error ? error.message : String(error)}`, error));
231
- }
103
+ return withLeafContract(domain, providers, "update domain target", async (contract) => txId(await contract.callTx.update_domain_target(formatTargetForContract(targetAddress))));
232
104
  }
233
- /**
234
- * Update domain cost (subdomain pricing)
235
- */
236
- export async function updateDomainCost(domain, cost, providers) {
237
- const validated = validateDomain(domain);
238
- if (!validated.success)
239
- return failure(validated.error);
240
- try {
241
- if (cost < BigInt(0)) {
242
- return failure(new NetworkError("Cost must be non-negative"));
243
- }
244
- const domainInfoResult = await getDomainInfo(validated.data, {
245
- provider: providers.publicDataProvider,
246
- });
247
- if (!domainInfoResult.success) {
248
- return failure(domainInfoResult.error);
249
- }
250
- const contractAddress = domainInfoResult.data.resolver;
251
- const contract = await joinLeafContract(providers, contractAddress);
252
- const result = await contract.callTx.update_cost(cost);
253
- return success({
254
- transactionId: result.public.txId,
255
- });
256
- }
257
- catch (error) {
258
- return failure(new NetworkError(`Failed to update domain cost: ${error instanceof Error ? error.message : String(error)}`, error));
105
+ export async function updateDomainColor(domain, color, providers) {
106
+ if (color.length !== 32) {
107
+ return failure(new NetworkError("Color must be exactly 32 bytes"));
259
108
  }
109
+ return withLeafContract(domain, providers, "update domain color", async (contract) => txId(await contract.callTx.update_color(color)));
260
110
  }
261
- /**
262
- * Update domain color (accepted token type)
263
- */
264
- export async function updateDomainColor(domain, colorBytes, providers) {
265
- const validated = validateDomain(domain);
266
- if (!validated.success)
267
- return failure(validated.error);
268
- try {
269
- if (colorBytes.length !== 32) {
270
- return failure(new NetworkError("Color must be exactly 32 bytes"));
271
- }
272
- const domainInfoResult = await getDomainInfo(validated.data, {
273
- provider: providers.publicDataProvider,
274
- });
275
- if (!domainInfoResult.success) {
276
- return failure(domainInfoResult.error);
277
- }
278
- const contractAddress = domainInfoResult.data.resolver;
279
- const contract = await joinLeafContract(providers, contractAddress);
280
- const result = await contract.callTx.update_color(colorBytes);
281
- return success({
282
- transactionId: result.public.txId,
283
- });
284
- }
285
- catch (error) {
286
- return failure(new NetworkError(`Failed to update domain color: ${error instanceof Error ? error.message : String(error)}`, error));
111
+ export async function updateDomainCosts(domain, costs, providers) {
112
+ if (costs.short < BigInt(0) || costs.medium < BigInt(0) || costs.long < BigInt(0)) {
113
+ return failure(new NetworkError("Costs must be non-negative"));
287
114
  }
115
+ return withLeafContract(domain, providers, "update domain costs", async (contract) => txId(await contract.callTx.update_costs(costs.short, costs.medium, costs.long)));
288
116
  }
289
- /**
290
- * Transfer domain ownership (executed on parent contract)
291
- */
292
117
  export async function transferDomainOwnership(parentDomain, subdomainName, newOwnerAddress, providers) {
293
- const validated = validateDomain(parentDomain);
294
- if (!validated.success)
295
- return failure(validated.error);
296
- try {
297
- const domainInfoResult = await getDomainInfo(validated.data, {
298
- provider: providers.publicDataProvider,
299
- });
300
- if (!domainInfoResult.success) {
301
- return failure(domainInfoResult.error);
302
- }
303
- const parentContractAddress = domainInfoResult.data.resolver;
304
- const newOwnerBytes = parseAddressToBytes(newOwnerAddress);
305
- const parentContract = await joinLeafContract(providers, parentContractAddress);
306
- const result = await parentContract.callTx.transfer_domain(subdomainName, newOwnerBytes);
307
- return success({
308
- transactionId: result.public.txId,
309
- });
310
- }
311
- catch (error) {
312
- return failure(new NetworkError(`Failed to transfer domain ownership: ${error instanceof Error ? error.message : String(error)}`, error));
313
- }
118
+ return withLeafContract(parentDomain, providers, "transfer domain ownership", async (contract) => txId(await contract.callTx.transfer_domain(domainToKey(subdomainName).key, parseAddressToBytes(newOwnerAddress))));
314
119
  }
315
- /**
316
- * Set resolver for a domain (executed on parent contract)
317
- */
318
120
  export async function setDomainResolver(parentDomain, subdomainName, resolverAddress, providers) {
319
- const validated = validateDomain(parentDomain);
320
- if (!validated.success)
321
- return failure(validated.error);
322
- try {
323
- const domainInfoResult = await getDomainInfo(validated.data, {
324
- provider: providers.publicDataProvider,
325
- });
326
- if (!domainInfoResult.success) {
327
- return failure(domainInfoResult.error);
328
- }
329
- const parentContractAddress = domainInfoResult.data.resolver;
330
- const resolverBytes = parseAddressToBytes(resolverAddress);
331
- const parentContract = await joinLeafContract(providers, parentContractAddress);
332
- const result = await parentContract.callTx.set_resolver(subdomainName, resolverBytes);
333
- return success({
334
- transactionId: result.public.txId,
335
- });
336
- }
337
- catch (error) {
338
- return failure(new NetworkError(`Failed to set domain resolver: ${error instanceof Error ? error.message : String(error)}`, error));
339
- }
121
+ return withLeafContract(parentDomain, providers, "set domain resolver", async (contract) => txId(await contract.callTx.set_resolver(domainToKey(subdomainName).key, parseAddressToBytes(resolverAddress))));
340
122
  }
341
- /**
342
- * Register domain for an address (free for parent domain owner)
343
- */
344
123
  export async function registerDomainFor(parentDomain, ownerAddress, subdomainName, resolverAddress, providers) {
345
- const validated = validateDomain(parentDomain);
346
- if (!validated.success)
347
- return failure(validated.error);
348
- try {
349
- const domainInfoResult = await getDomainInfo(validated.data, {
350
- provider: providers.publicDataProvider,
351
- });
352
- if (!domainInfoResult.success) {
353
- return failure(domainInfoResult.error);
354
- }
355
- const parentContractAddress = domainInfoResult.data.resolver;
356
- const ownerBytes = parseAddressToBytes(ownerAddress);
357
- const resolverBytes = parseAddressToBytes(resolverAddress);
358
- const parentContract = await joinLeafContract(providers, parentContractAddress);
359
- const result = await parentContract.callTx.register_domain_for(ownerBytes, subdomainName, resolverBytes);
360
- return success({
361
- transactionId: result.public.txId,
362
- });
363
- }
364
- catch (error) {
365
- return failure(new NetworkError(`Failed to register domain: ${error instanceof Error ? error.message : String(error)}`, error));
366
- }
124
+ return withLeafContract(parentDomain, providers, "register domain", async (contract) => {
125
+ const { key, len } = domainToKey(subdomainName);
126
+ return txId(await contract.callTx.register_domain_for(parseAddressToBytes(ownerAddress), key, len, parseAddressToBytes(resolverAddress)));
127
+ });
367
128
  }
368
- /**
369
- * Buy domain for an address (requires payment)
370
- */
371
129
  export async function buyDomainFor(parentDomain, ownerAddress, subdomainName, resolverAddress, _paymentAmount, providers) {
372
- const validated = validateDomain(parentDomain);
373
- if (!validated.success)
374
- return failure(validated.error);
375
- try {
376
- const domainInfoResult = await getDomainInfo(validated.data, {
377
- provider: providers.publicDataProvider,
378
- });
379
- if (!domainInfoResult.success) {
380
- return failure(domainInfoResult.error);
381
- }
382
- const parentContractAddress = domainInfoResult.data.resolver;
383
- const ownerBytes = parseAddressToBytes(ownerAddress);
384
- const resolverBytes = parseAddressToBytes(resolverAddress);
385
- //const paymentCoin = createPaymentCoin(paymentAmount);
386
- const parentContract = await joinLeafContract(providers, parentContractAddress);
387
- const result = await parentContract.callTx.register_domain_for(ownerBytes, subdomainName, resolverBytes);
388
- return success({
389
- transactionId: result.public.txId,
390
- });
391
- }
392
- catch (error) {
393
- return failure(new NetworkError(`Failed to buy domain: ${error instanceof Error ? error.message : String(error)}`, error));
394
- }
130
+ return withLeafContract(parentDomain, providers, "buy domain", async (contract) => {
131
+ const { key, len } = domainToKey(subdomainName);
132
+ return txId(await contract.callTx.register_domain_for(parseAddressToBytes(ownerAddress), key, len, parseAddressToBytes(resolverAddress)));
133
+ });
395
134
  }
396
- /**
397
- * Change domain owner (executed on domain's own contract)
398
- */
399
135
  export async function changeDomainOwner(domain, newOwnerAddress, providers) {
400
- const validated = validateDomain(domain);
401
- if (!validated.success)
402
- return failure(validated.error);
403
- try {
404
- const domainInfoResult = await getDomainInfo(validated.data, {
405
- provider: providers.publicDataProvider,
406
- });
407
- if (!domainInfoResult.success) {
408
- return failure(domainInfoResult.error);
409
- }
410
- const contractAddress = domainInfoResult.data.resolver;
411
- const newOwnerBytes = parseAddressToBytes(newOwnerAddress);
412
- const contract = await joinLeafContract(providers, contractAddress);
413
- const result = await contract.callTx.change_owner(newOwnerBytes);
414
- return success({
415
- transactionId: result.public.txId,
416
- });
417
- }
418
- catch (error) {
419
- return failure(new NetworkError(`Failed to change domain owner: ${error instanceof Error ? error.message : String(error)}`, error));
420
- }
136
+ return withLeafContract(domain, providers, "change domain owner", async (contract) => txId(await contract.callTx.change_owner(parseAddressToBytes(newOwnerAddress))));
421
137
  }
@@ -1,9 +1,16 @@
1
1
  import type { PublicDataProvider } from "@midnight-ntwrk/midnight-js-types";
2
+ export interface NetworkConfig {
3
+ indexerUrl: string;
4
+ indexerWsUrl: string;
5
+ tldAddress: string;
6
+ }
7
+ export declare const NETWORK_REGISTRY: Record<string, NetworkConfig>;
2
8
  export interface ProviderConfig {
3
9
  indexerUrl?: string;
4
10
  indexerWsUrl?: string;
5
11
  networkId?: string;
6
12
  }
7
- export declare function getDefaultProvider(): PublicDataProvider;
13
+ export declare function getNetworkConfig(networkId: string): NetworkConfig;
14
+ export declare function getDefaultProvider(networkId?: string): PublicDataProvider;
8
15
  export declare function setDefaultProvider(provider: PublicDataProvider): void;
9
16
  export declare function createDefaultProvider(config?: ProviderConfig): PublicDataProvider;