@secondlayer/stacks 0.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.
Files changed (178) hide show
  1. package/README.md +92 -0
  2. package/dist/shared/stacks-02actsrx.cjs +17 -0
  3. package/dist/shared/stacks-02actsrx.cjs.map +10 -0
  4. package/dist/shared/stacks-1aqm7c2h.cjs +110 -0
  5. package/dist/shared/stacks-1aqm7c2h.cjs.map +11 -0
  6. package/dist/shared/stacks-24h5k94q.cjs +74 -0
  7. package/dist/shared/stacks-24h5k94q.cjs.map +11 -0
  8. package/dist/shared/stacks-2ar4prfz.cjs +328 -0
  9. package/dist/shared/stacks-2ar4prfz.cjs.map +11 -0
  10. package/dist/shared/stacks-4py5pm0r.cjs +237 -0
  11. package/dist/shared/stacks-4py5pm0r.cjs.map +10 -0
  12. package/dist/shared/stacks-5tprhns9.cjs +54 -0
  13. package/dist/shared/stacks-5tprhns9.cjs.map +11 -0
  14. package/dist/shared/stacks-61rvzkz1.cjs +132 -0
  15. package/dist/shared/stacks-61rvzkz1.cjs.map +17 -0
  16. package/dist/shared/stacks-709tra19.js +30 -0
  17. package/dist/shared/stacks-709tra19.js.map +10 -0
  18. package/dist/shared/stacks-74k8cxgb.cjs +567 -0
  19. package/dist/shared/stacks-74k8cxgb.cjs.map +13 -0
  20. package/dist/shared/stacks-8m9byk2j.js +7 -0
  21. package/dist/shared/stacks-8m9byk2j.js.map +9 -0
  22. package/dist/shared/stacks-8yykgdww.js +125 -0
  23. package/dist/shared/stacks-8yykgdww.js.map +11 -0
  24. package/dist/shared/stacks-9g0jhab3.cjs +40 -0
  25. package/dist/shared/stacks-9g0jhab3.cjs.map +10 -0
  26. package/dist/shared/stacks-an5k8n4t.cjs +291 -0
  27. package/dist/shared/stacks-an5k8n4t.cjs.map +23 -0
  28. package/dist/shared/stacks-b008c3w8.cjs +214 -0
  29. package/dist/shared/stacks-b008c3w8.cjs.map +11 -0
  30. package/dist/shared/stacks-bnvfmt7y.cjs +31 -0
  31. package/dist/shared/stacks-bnvfmt7y.cjs.map +9 -0
  32. package/dist/shared/stacks-bycy6t9k.js +22 -0
  33. package/dist/shared/stacks-bycy6t9k.js.map +10 -0
  34. package/dist/shared/stacks-d1fmkv3p.js +258 -0
  35. package/dist/shared/stacks-d1fmkv3p.js.map +13 -0
  36. package/dist/shared/stacks-dr5en54r.cjs +119 -0
  37. package/dist/shared/stacks-dr5en54r.cjs.map +10 -0
  38. package/dist/shared/stacks-dxhntr76.js +278 -0
  39. package/dist/shared/stacks-dxhntr76.js.map +10 -0
  40. package/dist/shared/stacks-evnzth1q.cjs +35 -0
  41. package/dist/shared/stacks-evnzth1q.cjs.map +10 -0
  42. package/dist/shared/stacks-f3tk2k5s.js +27 -0
  43. package/dist/shared/stacks-f3tk2k5s.js.map +9 -0
  44. package/dist/shared/stacks-f7wdrzs3.js +285 -0
  45. package/dist/shared/stacks-f7wdrzs3.js.map +11 -0
  46. package/dist/shared/stacks-fcaefc5b.cjs +16 -0
  47. package/dist/shared/stacks-fcaefc5b.cjs.map +10 -0
  48. package/dist/shared/stacks-g9mcjcqg.cjs +3 -0
  49. package/dist/shared/stacks-g9mcjcqg.cjs.map +9 -0
  50. package/dist/shared/stacks-gck1sq7h.cjs +28 -0
  51. package/dist/shared/stacks-gck1sq7h.cjs.map +10 -0
  52. package/dist/shared/stacks-gjvbq6w7.js +46 -0
  53. package/dist/shared/stacks-gjvbq6w7.js.map +10 -0
  54. package/dist/shared/stacks-j2cy7qtt.js +237 -0
  55. package/dist/shared/stacks-j2cy7qtt.js.map +11 -0
  56. package/dist/shared/stacks-k08tgzyp.cjs +232 -0
  57. package/dist/shared/stacks-k08tgzyp.cjs.map +13 -0
  58. package/dist/shared/stacks-k2p5tv6x.js +37 -0
  59. package/dist/shared/stacks-k2p5tv6x.js.map +10 -0
  60. package/dist/shared/stacks-k58k970n.js +234 -0
  61. package/dist/shared/stacks-k58k970n.js.map +10 -0
  62. package/dist/shared/stacks-n2g56wgg.js +338 -0
  63. package/dist/shared/stacks-n2g56wgg.js.map +23 -0
  64. package/dist/shared/stacks-nqytwfcc.js +243 -0
  65. package/dist/shared/stacks-nqytwfcc.js.map +11 -0
  66. package/dist/shared/stacks-qcae5852.js +19 -0
  67. package/dist/shared/stacks-qcae5852.js.map +10 -0
  68. package/dist/shared/stacks-qt8ehebn.js +76 -0
  69. package/dist/shared/stacks-qt8ehebn.js.map +11 -0
  70. package/dist/shared/stacks-qvg7c24g.cjs +232 -0
  71. package/dist/shared/stacks-qvg7c24g.cjs.map +10 -0
  72. package/dist/shared/stacks-r1t6g3c3.cjs +241 -0
  73. package/dist/shared/stacks-r1t6g3c3.cjs.map +11 -0
  74. package/dist/shared/stacks-tjxmrssa.js +282 -0
  75. package/dist/shared/stacks-tjxmrssa.js.map +11 -0
  76. package/dist/shared/stacks-v9jqcpd4.js +18 -0
  77. package/dist/shared/stacks-v9jqcpd4.js.map +10 -0
  78. package/dist/shared/stacks-vdfag81a.cjs +121 -0
  79. package/dist/shared/stacks-vdfag81a.cjs.map +10 -0
  80. package/dist/shared/stacks-vdfs3e5v.js +134 -0
  81. package/dist/shared/stacks-vdfs3e5v.js.map +10 -0
  82. package/dist/shared/stacks-y3dh7hv1.js +60 -0
  83. package/dist/shared/stacks-y3dh7hv1.js.map +11 -0
  84. package/dist/shared/stacks-ya3x01yd.cjs +16 -0
  85. package/dist/shared/stacks-ya3x01yd.cjs.map +10 -0
  86. package/dist/shared/stacks-yfgsm6ap.js +599 -0
  87. package/dist/shared/stacks-yfgsm6ap.js.map +13 -0
  88. package/dist/shared/stacks-yfveb68e.js +121 -0
  89. package/dist/shared/stacks-yfveb68e.js.map +10 -0
  90. package/dist/shared/stacks-zm0b3tgy.js +160 -0
  91. package/dist/shared/stacks-zm0b3tgy.js.map +17 -0
  92. package/dist/shared/stacks-zyv9qqme.cjs +249 -0
  93. package/dist/shared/stacks-zyv9qqme.cjs.map +11 -0
  94. package/dist/src/accounts/index.cjs +90 -0
  95. package/dist/src/accounts/index.cjs.map +12 -0
  96. package/dist/src/accounts/index.d.cts +47 -0
  97. package/dist/src/accounts/index.d.ts +47 -0
  98. package/dist/src/accounts/index.js +104 -0
  99. package/dist/src/accounts/index.js.map +12 -0
  100. package/dist/src/actions/index.cjs +36 -0
  101. package/dist/src/actions/index.cjs.map +9 -0
  102. package/dist/src/actions/index.d.cts +886 -0
  103. package/dist/src/actions/index.d.ts +886 -0
  104. package/dist/src/actions/index.js +81 -0
  105. package/dist/src/actions/index.js.map +9 -0
  106. package/dist/src/bns/index.cjs +590 -0
  107. package/dist/src/bns/index.cjs.map +15 -0
  108. package/dist/src/bns/index.d.cts +241 -0
  109. package/dist/src/bns/index.d.ts +241 -0
  110. package/dist/src/bns/index.js +611 -0
  111. package/dist/src/bns/index.js.map +15 -0
  112. package/dist/src/chains/index.cjs +13 -0
  113. package/dist/src/chains/index.cjs.map +9 -0
  114. package/dist/src/chains/index.d.cts +53 -0
  115. package/dist/src/chains/index.d.ts +53 -0
  116. package/dist/src/chains/index.js +18 -0
  117. package/dist/src/chains/index.js.map +9 -0
  118. package/dist/src/clarity/index.cjs +3 -0
  119. package/dist/src/clarity/index.cjs.map +9 -0
  120. package/dist/src/clarity/index.d.cts +821 -0
  121. package/dist/src/clarity/index.d.ts +821 -0
  122. package/dist/src/clarity/index.js +145 -0
  123. package/dist/src/clarity/index.js.map +9 -0
  124. package/dist/src/connect/index.cjs +480 -0
  125. package/dist/src/connect/index.cjs.map +19 -0
  126. package/dist/src/connect/index.d.cts +110 -0
  127. package/dist/src/connect/index.d.ts +110 -0
  128. package/dist/src/connect/index.js +448 -0
  129. package/dist/src/connect/index.js.map +19 -0
  130. package/dist/src/connect/walletconnect/index.cjs +1322 -0
  131. package/dist/src/connect/walletconnect/index.cjs.map +18 -0
  132. package/dist/src/connect/walletconnect/index.d.cts +132 -0
  133. package/dist/src/connect/walletconnect/index.d.ts +132 -0
  134. package/dist/src/connect/walletconnect/index.js +1290 -0
  135. package/dist/src/connect/walletconnect/index.js.map +18 -0
  136. package/dist/src/index.cjs +557 -0
  137. package/dist/src/index.cjs.map +21 -0
  138. package/dist/src/index.d.cts +847 -0
  139. package/dist/src/index.d.ts +847 -0
  140. package/dist/src/index.js +629 -0
  141. package/dist/src/index.js.map +21 -0
  142. package/dist/src/postconditions/index.cjs +3 -0
  143. package/dist/src/postconditions/index.cjs.map +9 -0
  144. package/dist/src/postconditions/index.d.cts +91 -0
  145. package/dist/src/postconditions/index.d.ts +91 -0
  146. package/dist/src/postconditions/index.js +12 -0
  147. package/dist/src/postconditions/index.js.map +9 -0
  148. package/dist/src/pox/index.cjs +860 -0
  149. package/dist/src/pox/index.cjs.map +15 -0
  150. package/dist/src/pox/index.d.cts +244 -0
  151. package/dist/src/pox/index.d.ts +244 -0
  152. package/dist/src/pox/index.js +877 -0
  153. package/dist/src/pox/index.js.map +15 -0
  154. package/dist/src/stackingdao/index.cjs +300 -0
  155. package/dist/src/stackingdao/index.cjs.map +13 -0
  156. package/dist/src/stackingdao/index.d.cts +179 -0
  157. package/dist/src/stackingdao/index.d.ts +179 -0
  158. package/dist/src/stackingdao/index.js +318 -0
  159. package/dist/src/stackingdao/index.js.map +13 -0
  160. package/dist/src/subscriptions/index.cjs +14 -0
  161. package/dist/src/subscriptions/index.cjs.map +9 -0
  162. package/dist/src/subscriptions/index.d.cts +250 -0
  163. package/dist/src/subscriptions/index.d.ts +250 -0
  164. package/dist/src/subscriptions/index.js +21 -0
  165. package/dist/src/subscriptions/index.js.map +9 -0
  166. package/dist/src/transactions/index.cjs +50 -0
  167. package/dist/src/transactions/index.cjs.map +9 -0
  168. package/dist/src/transactions/index.d.cts +412 -0
  169. package/dist/src/transactions/index.d.ts +412 -0
  170. package/dist/src/transactions/index.js +101 -0
  171. package/dist/src/transactions/index.js.map +9 -0
  172. package/dist/src/utils/index.cjs +168 -0
  173. package/dist/src/utils/index.cjs.map +11 -0
  174. package/dist/src/utils/index.d.cts +140 -0
  175. package/dist/src/utils/index.d.ts +140 -0
  176. package/dist/src/utils/index.js +222 -0
  177. package/dist/src/utils/index.js.map +11 -0
  178. package/package.json +105 -0
@@ -0,0 +1,81 @@
1
+ import {
2
+ ContractResponseError,
3
+ getContract
4
+ } from "../../shared/stacks-vdfs3e5v.js";
5
+ import {
6
+ deployContract,
7
+ getAccountInfo,
8
+ getBalance,
9
+ getBlock,
10
+ getBlockHeight,
11
+ getContractAbi,
12
+ multicall,
13
+ signMessage,
14
+ signTransactionAction,
15
+ simulateCall,
16
+ simulateTransaction,
17
+ sponsorTransaction,
18
+ transferStx
19
+ } from "../../shared/stacks-n2g56wgg.js";
20
+ import {
21
+ callContract,
22
+ estimateFee,
23
+ getMapEntry,
24
+ getNonce,
25
+ isProviderAccount,
26
+ readContract,
27
+ sendTransaction
28
+ } from "../../shared/stacks-zm0b3tgy.js";
29
+ import {
30
+ watchAddress,
31
+ watchAddressBalance,
32
+ watchBlocks,
33
+ watchMempool,
34
+ watchNftEvent,
35
+ watchTransaction
36
+ } from "../../shared/stacks-y3dh7hv1.js";
37
+ import"../../shared/stacks-709tra19.js";
38
+ import"../../shared/stacks-d1fmkv3p.js";
39
+ import"../../shared/stacks-dxhntr76.js";
40
+ import"../../shared/stacks-f7wdrzs3.js";
41
+ import"../../shared/stacks-yfgsm6ap.js";
42
+ import"../../shared/stacks-j2cy7qtt.js";
43
+ import"../../shared/stacks-8yykgdww.js";
44
+ import"../../shared/stacks-v9jqcpd4.js";
45
+ import"../../shared/stacks-bycy6t9k.js";
46
+ import"../../shared/stacks-gjvbq6w7.js";
47
+ import"../../shared/stacks-nqytwfcc.js";
48
+ import"../../shared/stacks-8m9byk2j.js";
49
+ export {
50
+ watchTransaction,
51
+ watchNftEvent,
52
+ watchMempool,
53
+ watchBlocks,
54
+ watchAddressBalance,
55
+ watchAddress,
56
+ transferStx,
57
+ sponsorTransaction,
58
+ simulateTransaction,
59
+ simulateCall,
60
+ signTransactionAction,
61
+ signMessage,
62
+ sendTransaction,
63
+ readContract,
64
+ multicall,
65
+ isProviderAccount,
66
+ getNonce,
67
+ getMapEntry,
68
+ getContractAbi,
69
+ getContract,
70
+ getBlockHeight,
71
+ getBlock,
72
+ getBalance,
73
+ getAccountInfo,
74
+ estimateFee,
75
+ deployContract,
76
+ callContract,
77
+ ContractResponseError
78
+ };
79
+
80
+ //# debugId=F624779DC089FCE764756E2164756E21
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "F624779DC089FCE764756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,590 @@
1
+ // src/bns/index.ts
2
+ var exports_bns = {};
3
+ __export(exports_bns, {
4
+ validateNamespace: () => validateNamespace,
5
+ validateName: () => validateName,
6
+ validateFQN: () => validateFQN,
7
+ parseFQN: () => parseFQN,
8
+ hashPreorder: () => hashPreorder,
9
+ generateSalt: () => generateSalt,
10
+ formatFQN: () => formatFQN,
11
+ bns: () => bns,
12
+ ZONEFILE_RESOLVER_CONTRACTS: () => ZONEFILE_RESOLVER_CONTRACTS,
13
+ BNS_CONTRACTS: () => BNS_CONTRACTS
14
+ });
15
+ module.exports = __toCommonJS(exports_bns);
16
+
17
+ // src/bns/abi.ts
18
+ var BNS_ABI = {
19
+ functions: [
20
+ {
21
+ name: "get-owner-name",
22
+ access: "read-only",
23
+ args: [
24
+ { name: "name", type: { buff: { length: 48 } } },
25
+ { name: "namespace", type: { buff: { length: 20 } } }
26
+ ],
27
+ outputs: {
28
+ response: {
29
+ ok: { optional: "principal" },
30
+ error: "uint128"
31
+ }
32
+ }
33
+ },
34
+ {
35
+ name: "get-id-from-bns",
36
+ access: "read-only",
37
+ args: [
38
+ { name: "name", type: { buff: { length: 48 } } },
39
+ { name: "namespace", type: { buff: { length: 20 } } }
40
+ ],
41
+ outputs: { optional: "uint128" }
42
+ },
43
+ {
44
+ name: "get-bns-from-id",
45
+ access: "read-only",
46
+ args: [{ name: "id", type: "uint128" }],
47
+ outputs: {
48
+ optional: {
49
+ tuple: [
50
+ { name: "name", type: { buff: { length: 48 } } },
51
+ { name: "namespace", type: { buff: { length: 20 } } }
52
+ ]
53
+ }
54
+ }
55
+ },
56
+ {
57
+ name: "get-owner",
58
+ access: "read-only",
59
+ args: [{ name: "id", type: "uint128" }],
60
+ outputs: {
61
+ response: {
62
+ ok: { optional: "principal" },
63
+ error: "none"
64
+ }
65
+ }
66
+ },
67
+ {
68
+ name: "get-primary",
69
+ access: "read-only",
70
+ args: [{ name: "owner", type: "principal" }],
71
+ outputs: {
72
+ response: {
73
+ ok: {
74
+ optional: {
75
+ tuple: [
76
+ { name: "name", type: { buff: { length: 48 } } },
77
+ { name: "namespace", type: { buff: { length: 20 } } }
78
+ ]
79
+ }
80
+ },
81
+ error: "none"
82
+ }
83
+ }
84
+ },
85
+ {
86
+ name: "can-resolve-name",
87
+ access: "read-only",
88
+ args: [
89
+ { name: "namespace", type: { buff: { length: 20 } } },
90
+ { name: "name", type: { buff: { length: 48 } } }
91
+ ],
92
+ outputs: {
93
+ response: {
94
+ ok: {
95
+ tuple: [
96
+ { name: "renewal", type: "uint128" },
97
+ { name: "owner", type: "principal" }
98
+ ]
99
+ },
100
+ error: "uint128"
101
+ }
102
+ }
103
+ },
104
+ {
105
+ name: "get-renewal-height",
106
+ access: "read-only",
107
+ args: [{ name: "id", type: "uint128" }],
108
+ outputs: { response: { ok: "uint128", error: "uint128" } }
109
+ },
110
+ {
111
+ name: "get-name-price",
112
+ access: "read-only",
113
+ args: [
114
+ { name: "namespace", type: { buff: { length: 20 } } },
115
+ { name: "name", type: { buff: { length: 48 } } }
116
+ ],
117
+ outputs: {
118
+ response: {
119
+ ok: { response: { ok: "uint128", error: "uint128" } },
120
+ error: "uint128"
121
+ }
122
+ }
123
+ },
124
+ {
125
+ name: "get-bns-info",
126
+ access: "read-only",
127
+ args: [
128
+ { name: "name", type: { buff: { length: 48 } } },
129
+ { name: "namespace", type: { buff: { length: 20 } } }
130
+ ],
131
+ outputs: {
132
+ optional: {
133
+ tuple: [
134
+ { name: "hashed-salted-fqn-preorder", type: { optional: { buff: { length: 20 } } } },
135
+ { name: "imported-at", type: { optional: "uint128" } },
136
+ { name: "owner", type: "principal" },
137
+ { name: "preordered-by", type: { optional: "principal" } },
138
+ { name: "registered-at", type: { optional: "uint128" } },
139
+ { name: "renewal-height", type: "uint128" },
140
+ { name: "stx-burn", type: "uint128" }
141
+ ]
142
+ }
143
+ }
144
+ },
145
+ {
146
+ name: "name-preorder",
147
+ access: "public",
148
+ args: [
149
+ { name: "hashed-salted-fqn", type: { buff: { length: 20 } } },
150
+ { name: "stx-to-burn", type: "uint128" }
151
+ ],
152
+ outputs: { response: { ok: "uint128", error: "uint128" } }
153
+ },
154
+ {
155
+ name: "name-register",
156
+ access: "public",
157
+ args: [
158
+ { name: "namespace", type: { buff: { length: 20 } } },
159
+ { name: "name", type: { buff: { length: 48 } } },
160
+ { name: "salt", type: { buff: { length: 20 } } }
161
+ ],
162
+ outputs: { response: { ok: "uint128", error: "uint128" } }
163
+ },
164
+ {
165
+ name: "name-claim-fast",
166
+ access: "public",
167
+ args: [
168
+ { name: "name", type: { buff: { length: 48 } } },
169
+ { name: "namespace", type: { buff: { length: 20 } } },
170
+ { name: "send-to", type: "principal" }
171
+ ],
172
+ outputs: { response: { ok: "uint128", error: "uint128" } }
173
+ },
174
+ {
175
+ name: "name-renewal",
176
+ access: "public",
177
+ args: [
178
+ { name: "namespace", type: { buff: { length: 20 } } },
179
+ { name: "name", type: { buff: { length: 48 } } }
180
+ ],
181
+ outputs: { response: { ok: "bool", error: "uint128" } }
182
+ },
183
+ {
184
+ name: "transfer",
185
+ access: "public",
186
+ args: [
187
+ { name: "id", type: "uint128" },
188
+ { name: "owner", type: "principal" },
189
+ { name: "recipient", type: "principal" }
190
+ ],
191
+ outputs: { response: { ok: "bool", error: "uint128" } }
192
+ },
193
+ {
194
+ name: "set-primary-name",
195
+ access: "public",
196
+ args: [{ name: "primary-name-id", type: "uint128" }],
197
+ outputs: { response: { ok: "bool", error: "uint128" } }
198
+ }
199
+ ],
200
+ non_fungible_tokens: [{ name: "BNS-V2", type: "uint128" }]
201
+ };
202
+
203
+ // src/bns/zonefile-abi.ts
204
+ var ZONEFILE_RESOLVER_ABI = {
205
+ functions: [
206
+ {
207
+ name: "resolve-name",
208
+ access: "read-only",
209
+ args: [
210
+ { name: "name", type: { buff: { length: 48 } } },
211
+ { name: "namespace", type: { buff: { length: 20 } } }
212
+ ],
213
+ outputs: {
214
+ response: {
215
+ ok: { optional: { buff: { length: 8192 } } },
216
+ error: "uint128"
217
+ }
218
+ }
219
+ },
220
+ {
221
+ name: "update-zonefile",
222
+ access: "public",
223
+ args: [
224
+ { name: "name", type: { buff: { length: 48 } } },
225
+ { name: "namespace", type: { buff: { length: 20 } } },
226
+ { name: "new-zonefile", type: { optional: { buff: { length: 8192 } } } }
227
+ ],
228
+ outputs: { response: { ok: "bool", error: "uint128" } }
229
+ },
230
+ {
231
+ name: "revoke-name",
232
+ access: "public",
233
+ args: [
234
+ { name: "name", type: { buff: { length: 48 } } },
235
+ { name: "namespace", type: { buff: { length: 20 } } }
236
+ ],
237
+ outputs: { response: { ok: "bool", error: "uint128" } }
238
+ }
239
+ ]
240
+ };
241
+
242
+ // src/bns/constants.ts
243
+ var BNS_CONTRACTS = {
244
+ mainnet: {
245
+ address: "SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF",
246
+ name: "BNS-V2"
247
+ },
248
+ testnet: {
249
+ address: "ST2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D9SZJQ0M",
250
+ name: "BNS-V2"
251
+ }
252
+ };
253
+ var ZONEFILE_RESOLVER_CONTRACTS = {
254
+ mainnet: {
255
+ address: "SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF",
256
+ name: "zonefile-resolver"
257
+ },
258
+ testnet: {
259
+ address: "ST2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D9SZJQ0M",
260
+ name: "zonefile-resolver"
261
+ }
262
+ };
263
+ var DEFAULT_NAMESPACE = "btc";
264
+
265
+ // src/bns/utils.ts
266
+ function parseFQN(fqn) {
267
+ const parts = fqn.split(".");
268
+ if (parts.length === 1) {
269
+ return {
270
+ name: parts[0],
271
+ namespace: DEFAULT_NAMESPACE
272
+ };
273
+ }
274
+ if (parts.length === 2) {
275
+ return {
276
+ name: parts[0],
277
+ namespace: parts[1]
278
+ };
279
+ }
280
+ throw new Error(`Invalid fully qualified name: ${fqn}. Expected format: "name.namespace" or "name"`);
281
+ }
282
+ function formatFQN(name, namespace) {
283
+ return `${name}.${namespace}`;
284
+ }
285
+ function validateName(name) {
286
+ if (name.length < 1 || name.length > 48)
287
+ return false;
288
+ const regex = /^[a-z0-9]([a-z0-9_-]*[a-z0-9])?$/;
289
+ return regex.test(name);
290
+ }
291
+ function validateNamespace(namespace) {
292
+ if (namespace.length < 1 || namespace.length > 20)
293
+ return false;
294
+ const regex = /^[a-z0-9]+$/;
295
+ return regex.test(namespace);
296
+ }
297
+ function validateFQN(fqn) {
298
+ try {
299
+ const { name, namespace } = parseFQN(fqn);
300
+ return validateName(name) && validateNamespace(namespace);
301
+ } catch {
302
+ return false;
303
+ }
304
+ }
305
+ function generateSalt() {
306
+ const salt = new Uint8Array(20);
307
+ crypto.getRandomValues(salt);
308
+ return salt;
309
+ }
310
+ function hashPreorder(name, namespace, salt) {
311
+ const nameBytes = new TextEncoder().encode(name);
312
+ const namespaceBytes = new TextEncoder().encode(namespace);
313
+ const combined = new Uint8Array(nameBytes.length + namespaceBytes.length + salt.length);
314
+ combined.set(nameBytes, 0);
315
+ combined.set(namespaceBytes, nameBytes.length);
316
+ combined.set(salt, nameBytes.length + namespaceBytes.length);
317
+ return hash160(combined);
318
+ }
319
+
320
+ // src/bns/actions.ts
321
+ function getBnsContract(client) {
322
+ if (!client.chain) {
323
+ throw new Error("Client must have a chain configured");
324
+ }
325
+ const network = client.chain.network;
326
+ const contract = network === "mainnet" ? BNS_CONTRACTS.mainnet : BNS_CONTRACTS.testnet;
327
+ return getContract({
328
+ client,
329
+ address: contract.address,
330
+ name: contract.name,
331
+ abi: BNS_ABI
332
+ });
333
+ }
334
+ function getZonefileContract(client) {
335
+ if (!client.chain) {
336
+ throw new Error("Client must have a chain configured");
337
+ }
338
+ const network = client.chain.network;
339
+ const contract = network === "mainnet" ? ZONEFILE_RESOLVER_CONTRACTS.mainnet : ZONEFILE_RESOLVER_CONTRACTS.testnet;
340
+ return getContract({
341
+ client,
342
+ address: contract.address,
343
+ name: contract.name,
344
+ abi: ZONEFILE_RESOLVER_ABI
345
+ });
346
+ }
347
+ function stringToBytes(str) {
348
+ return new TextEncoder().encode(str);
349
+ }
350
+ async function resolveName(client, nameOrFQN) {
351
+ if (!validateFQN(nameOrFQN)) {
352
+ throw new Error(`Invalid name format: ${nameOrFQN}`);
353
+ }
354
+ const { name, namespace } = parseFQN(nameOrFQN);
355
+ const bns = getBnsContract(client);
356
+ const owner = await bns.read["get-owner-name"]({
357
+ name: stringToBytes(name),
358
+ namespace: stringToBytes(namespace)
359
+ });
360
+ return owner;
361
+ }
362
+ async function getPrimaryName(client, address) {
363
+ const bns = getBnsContract(client);
364
+ const result = await bns.read["get-primary"]({
365
+ owner: address
366
+ });
367
+ if (result === null)
368
+ return null;
369
+ const name = new TextDecoder().decode(result.name);
370
+ const namespace = new TextDecoder().decode(result.namespace);
371
+ return formatFQN(name, namespace);
372
+ }
373
+ async function canRegister(client, nameOrFQN) {
374
+ if (!validateFQN(nameOrFQN)) {
375
+ throw new Error(`Invalid name format: ${nameOrFQN}`);
376
+ }
377
+ const { name, namespace } = parseFQN(nameOrFQN);
378
+ const bns = getBnsContract(client);
379
+ try {
380
+ await bns.read["can-resolve-name"]({
381
+ namespace: stringToBytes(namespace),
382
+ name: stringToBytes(name)
383
+ });
384
+ return false;
385
+ } catch {
386
+ return true;
387
+ }
388
+ }
389
+ async function getNamePrice(client, nameOrFQN) {
390
+ if (!validateFQN(nameOrFQN)) {
391
+ throw new Error(`Invalid name format: ${nameOrFQN}`);
392
+ }
393
+ const { name, namespace } = parseFQN(nameOrFQN);
394
+ const bns = getBnsContract(client);
395
+ const result = await bns.read["get-name-price"]({
396
+ namespace: stringToBytes(namespace),
397
+ name: stringToBytes(name)
398
+ });
399
+ if ("ok" in result)
400
+ return result.ok;
401
+ throw new Error(`Failed to get name price for ${nameOrFQN}`);
402
+ }
403
+ async function getNameId(client, nameOrFQN) {
404
+ if (!validateFQN(nameOrFQN)) {
405
+ throw new Error(`Invalid name format: ${nameOrFQN}`);
406
+ }
407
+ const { name, namespace } = parseFQN(nameOrFQN);
408
+ const bns = getBnsContract(client);
409
+ return await bns.read["get-id-from-bns"]({
410
+ name: stringToBytes(name),
411
+ namespace: stringToBytes(namespace)
412
+ });
413
+ }
414
+ async function preorder(client, params) {
415
+ const { name: nameInput, namespace: namespaceInput, salt: providedSalt } = params;
416
+ const fqn = namespaceInput ? `${nameInput}.${namespaceInput}` : nameInput;
417
+ if (!validateFQN(fqn)) {
418
+ throw new Error(`Invalid name format: ${fqn}`);
419
+ }
420
+ const { name, namespace } = parseFQN(fqn);
421
+ const available = await canRegister(client, fqn);
422
+ if (!available) {
423
+ throw new Error(`Name ${fqn} is not available for registration`);
424
+ }
425
+ const price = await getNamePrice(client, fqn);
426
+ const salt = providedSalt ?? generateSalt();
427
+ const hashedSaltedFqn = hashPreorder(name, namespace, salt);
428
+ const bns = getBnsContract(client);
429
+ const txid = await bns.call["name-preorder"]({
430
+ hashedSaltedFqn,
431
+ stxToBurn: price
432
+ }, {
433
+ postConditions: [Pc.principal(client.account.address).willSendLte(price).ustx()]
434
+ });
435
+ return { txid, salt };
436
+ }
437
+ async function register(client, params) {
438
+ const { name: nameInput, namespace: namespaceInput, salt } = params;
439
+ const fqn = namespaceInput ? `${nameInput}.${namespaceInput}` : nameInput;
440
+ if (!validateFQN(fqn)) {
441
+ throw new Error(`Invalid name format: ${fqn}`);
442
+ }
443
+ const { name, namespace } = parseFQN(fqn);
444
+ const bns = getBnsContract(client);
445
+ return bns.call["name-register"]({
446
+ name: stringToBytes(name),
447
+ namespace: stringToBytes(namespace),
448
+ salt
449
+ });
450
+ }
451
+ async function claimFast(client, params) {
452
+ const { name: nameInput, namespace: namespaceInput, recipient } = params;
453
+ const fqn = namespaceInput ? `${nameInput}.${namespaceInput}` : nameInput;
454
+ if (!validateFQN(fqn)) {
455
+ throw new Error(`Invalid name format: ${fqn}`);
456
+ }
457
+ const { name, namespace } = parseFQN(fqn);
458
+ const available = await canRegister(client, fqn);
459
+ if (!available) {
460
+ throw new Error(`Name ${fqn} is not available for registration`);
461
+ }
462
+ const price = await getNamePrice(client, fqn);
463
+ const bns = getBnsContract(client);
464
+ return bns.call["name-claim-fast"]({
465
+ name: stringToBytes(name),
466
+ namespace: stringToBytes(namespace),
467
+ sendTo: recipient
468
+ }, {
469
+ postConditions: [Pc.principal(recipient).willSendLte(price).ustx()]
470
+ });
471
+ }
472
+ async function transfer(client, params) {
473
+ const { name: nameInput, namespace: namespaceInput, recipient } = params;
474
+ const fqn = namespaceInput ? `${nameInput}.${namespaceInput}` : nameInput;
475
+ if (!validateFQN(fqn)) {
476
+ throw new Error(`Invalid name format: ${fqn}`);
477
+ }
478
+ const id = await getNameId(client, fqn);
479
+ if (id === null) {
480
+ throw new Error(`Name ${fqn} does not exist`);
481
+ }
482
+ const currentOwner = await resolveName(client, fqn);
483
+ if (!currentOwner) {
484
+ throw new Error(`Cannot determine owner of ${fqn}`);
485
+ }
486
+ const bns = getBnsContract(client);
487
+ if (!client.chain) {
488
+ throw new Error("Client must have a chain configured");
489
+ }
490
+ const network = client.chain.network;
491
+ const contract = network === "mainnet" ? BNS_CONTRACTS.mainnet : BNS_CONTRACTS.testnet;
492
+ return bns.call.transfer({
493
+ id,
494
+ owner: currentOwner,
495
+ recipient
496
+ }, {
497
+ postConditions: [
498
+ Pc.principal(currentOwner).willSendAsset().nft(`${contract.address}.${contract.name}::BNS-V2`, Cl.uint(id))
499
+ ]
500
+ });
501
+ }
502
+ async function setPrimary(client, params) {
503
+ const { name: nameInput, namespace: namespaceInput } = params;
504
+ const fqn = namespaceInput ? `${nameInput}.${namespaceInput}` : nameInput;
505
+ if (!validateFQN(fqn)) {
506
+ throw new Error(`Invalid name format: ${fqn}`);
507
+ }
508
+ const id = await getNameId(client, fqn);
509
+ if (id === null) {
510
+ throw new Error(`Name ${fqn} does not exist`);
511
+ }
512
+ const bns = getBnsContract(client);
513
+ return bns.call["set-primary-name"]({ primaryNameId: id });
514
+ }
515
+ async function getZonefile(client, nameOrFQN) {
516
+ if (!validateFQN(nameOrFQN)) {
517
+ throw new Error(`Invalid name format: ${nameOrFQN}`);
518
+ }
519
+ const { name, namespace } = parseFQN(nameOrFQN);
520
+ const zonefile = getZonefileContract(client);
521
+ try {
522
+ const result = await zonefile.read["resolve-name"]({
523
+ name: stringToBytes(name),
524
+ namespace: stringToBytes(namespace)
525
+ });
526
+ return result;
527
+ } catch {
528
+ return null;
529
+ }
530
+ }
531
+ async function updateZonefile(client, params) {
532
+ const { name: nameInput, namespace: namespaceInput, zonefile } = params;
533
+ const fqn = namespaceInput ? `${nameInput}.${namespaceInput}` : nameInput;
534
+ if (!validateFQN(fqn)) {
535
+ throw new Error(`Invalid name format: ${fqn}`);
536
+ }
537
+ const { name, namespace } = parseFQN(fqn);
538
+ const currentOwner = await resolveName(client, fqn);
539
+ if (!currentOwner) {
540
+ throw new Error(`Name ${fqn} does not exist`);
541
+ }
542
+ const zonefileContract = getZonefileContract(client);
543
+ let zonefileBytes = null;
544
+ if (zonefile !== null) {
545
+ zonefileBytes = typeof zonefile === "string" ? new TextEncoder().encode(zonefile) : zonefile;
546
+ if (zonefileBytes.length > 8192) {
547
+ throw new Error(`Zonefile too large: ${zonefileBytes.length} bytes (max 8192)`);
548
+ }
549
+ }
550
+ return zonefileContract.call["update-zonefile"]({
551
+ name: stringToBytes(name),
552
+ namespace: stringToBytes(namespace),
553
+ newZonefile: zonefileBytes
554
+ });
555
+ }
556
+ async function revokeZonefile(client, nameOrFQN) {
557
+ if (!validateFQN(nameOrFQN)) {
558
+ throw new Error(`Invalid name format: ${nameOrFQN}`);
559
+ }
560
+ const { name, namespace } = parseFQN(nameOrFQN);
561
+ const zonefileContract = getZonefileContract(client);
562
+ return zonefileContract.call["revoke-name"]({
563
+ name: stringToBytes(name),
564
+ namespace: stringToBytes(namespace)
565
+ });
566
+ }
567
+
568
+ // src/bns/index.ts
569
+ function bns() {
570
+ return (client) => ({
571
+ bns: {
572
+ resolveName: (name) => resolveName(client, name),
573
+ getPrimaryName: (address) => getPrimaryName(client, address),
574
+ canRegister: (name) => canRegister(client, name),
575
+ getNamePrice: (name) => getNamePrice(client, name),
576
+ getNameId: (name) => getNameId(client, name),
577
+ preorder: (params) => preorder(client, params),
578
+ register: (params) => register(client, params),
579
+ claimFast: (params) => claimFast(client, params),
580
+ transfer: (params) => transfer(client, params),
581
+ setPrimary: (params) => setPrimary(client, params),
582
+ getZonefile: (name) => getZonefile(client, name),
583
+ updateZonefile: (params) => updateZonefile(client, params),
584
+ revokeZonefile: (name) => revokeZonefile(client, name)
585
+ }
586
+ });
587
+ }
588
+
589
+ //# debugId=D099C8A7BE697C2764756E2164756E21
590
+ //# sourceMappingURL=index.cjs.map