@ensdomains/ensjs 3.0.0-beta.1 → 3.0.0-beta.10

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 (518) hide show
  1. package/dist/cjs/clients/decorators/subgraph.js.map +1 -1
  2. package/dist/cjs/clients/decorators/wallet.js +2 -0
  3. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  4. package/dist/cjs/clients/public.js.map +1 -1
  5. package/dist/cjs/clients/subgraph.js.map +1 -1
  6. package/dist/cjs/contracts/consts.js +53 -2
  7. package/dist/cjs/contracts/consts.js.map +1 -1
  8. package/dist/cjs/dns.js +3 -3
  9. package/dist/cjs/dns.js.map +1 -1
  10. package/dist/cjs/errors/subgraph.js.map +1 -1
  11. package/dist/cjs/errors/utils.js +27 -18
  12. package/dist/cjs/errors/utils.js.map +1 -1
  13. package/dist/cjs/errors/version.js +1 -1
  14. package/dist/cjs/errors/version.js.map +1 -1
  15. package/dist/cjs/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +3 -3
  16. package/dist/cjs/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
  17. package/dist/cjs/functions/dns/importDnsName.js +7 -7
  18. package/dist/cjs/functions/dns/importDnsName.js.map +1 -1
  19. package/dist/cjs/functions/public/_getAbi.js +2 -2
  20. package/dist/cjs/functions/public/_getAbi.js.map +1 -1
  21. package/dist/cjs/functions/public/_getAddr.js +9 -19
  22. package/dist/cjs/functions/public/_getAddr.js.map +1 -1
  23. package/dist/cjs/functions/public/_getContentHash.js +1 -1
  24. package/dist/cjs/functions/public/batch.js.map +1 -1
  25. package/dist/cjs/functions/public/getAbiRecord.js.map +1 -1
  26. package/dist/cjs/functions/public/getAddressRecord.js.map +1 -1
  27. package/dist/cjs/functions/public/getAvailable.js.map +1 -1
  28. package/dist/cjs/functions/public/getContentHashRecord.js.map +1 -1
  29. package/dist/cjs/functions/public/getExpiry.js.map +1 -1
  30. package/dist/cjs/functions/public/getName.js.map +1 -1
  31. package/dist/cjs/functions/public/getOwner.js.map +1 -1
  32. package/dist/cjs/functions/public/getPrice.js.map +1 -1
  33. package/dist/cjs/functions/public/getRecords.js +51 -37
  34. package/dist/cjs/functions/public/getRecords.js.map +1 -1
  35. package/dist/cjs/functions/public/getResolver.js.map +1 -1
  36. package/dist/cjs/functions/public/getSupportedInterfaces.js +1 -1
  37. package/dist/cjs/functions/public/getSupportedInterfaces.js.map +1 -1
  38. package/dist/cjs/functions/public/getTextRecord.js.map +1 -1
  39. package/dist/cjs/functions/public/getWrapperData.js.map +1 -1
  40. package/dist/cjs/functions/public/getWrapperName.js.map +1 -1
  41. package/dist/cjs/functions/public/multicallWrapper.js.map +1 -1
  42. package/dist/cjs/functions/public/universalWrapper.js.map +1 -1
  43. package/dist/cjs/functions/subgraph/client.js.map +1 -1
  44. package/dist/cjs/functions/subgraph/filters.js +3 -0
  45. package/dist/cjs/functions/subgraph/filters.js.map +1 -0
  46. package/dist/cjs/functions/subgraph/getDecodedName.js.map +1 -1
  47. package/dist/cjs/functions/subgraph/getNameHistory.js +4 -3
  48. package/dist/cjs/functions/subgraph/getNameHistory.js.map +1 -1
  49. package/dist/cjs/functions/subgraph/getNamesForAddress.js +155 -190
  50. package/dist/cjs/functions/subgraph/getNamesForAddress.js.map +1 -1
  51. package/dist/cjs/functions/subgraph/getSubgraphRecords.js +34 -26
  52. package/dist/cjs/functions/subgraph/getSubgraphRecords.js.map +1 -1
  53. package/dist/cjs/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
  54. package/dist/cjs/functions/subgraph/getSubnames.js +95 -108
  55. package/dist/cjs/functions/subgraph/getSubnames.js.map +1 -1
  56. package/dist/cjs/functions/subgraph/types.js +3 -0
  57. package/dist/cjs/functions/subgraph/types.js.map +1 -0
  58. package/dist/cjs/functions/subgraph/utils.js.map +1 -1
  59. package/dist/cjs/functions/wallet/clearRecords.js +26 -0
  60. package/dist/cjs/functions/wallet/clearRecords.js.map +1 -0
  61. package/dist/cjs/functions/wallet/commitName.js.map +1 -1
  62. package/dist/cjs/functions/wallet/createSubname.js +1 -1
  63. package/dist/cjs/functions/wallet/createSubname.js.map +1 -1
  64. package/dist/cjs/functions/wallet/deleteSubname.js.map +1 -1
  65. package/dist/cjs/functions/wallet/registerName.js.map +1 -1
  66. package/dist/cjs/functions/wallet/renewNames.js.map +1 -1
  67. package/dist/cjs/functions/wallet/setAbiRecord.js.map +1 -1
  68. package/dist/cjs/functions/wallet/setAddressRecord.js.map +1 -1
  69. package/dist/cjs/functions/wallet/setChildFuses.js +1 -1
  70. package/dist/cjs/functions/wallet/setChildFuses.js.map +1 -1
  71. package/dist/cjs/functions/wallet/setContentHashRecord.js.map +1 -1
  72. package/dist/cjs/functions/wallet/setFuses.js +1 -1
  73. package/dist/cjs/functions/wallet/setFuses.js.map +1 -1
  74. package/dist/cjs/functions/wallet/setPrimaryName.js.map +1 -1
  75. package/dist/cjs/functions/wallet/setRecords.js.map +1 -1
  76. package/dist/cjs/functions/wallet/setResolver.js.map +1 -1
  77. package/dist/cjs/functions/wallet/setTextRecord.js.map +1 -1
  78. package/dist/cjs/functions/wallet/transferName.js.map +1 -1
  79. package/dist/cjs/functions/wallet/unwrapName.js.map +1 -1
  80. package/dist/cjs/functions/wallet/wrapName.js +3 -1
  81. package/dist/cjs/functions/wallet/wrapName.js.map +1 -1
  82. package/dist/cjs/index.js +1 -2
  83. package/dist/cjs/index.js.map +1 -1
  84. package/dist/cjs/subgraph.js +4 -1
  85. package/dist/cjs/subgraph.js.map +1 -1
  86. package/dist/cjs/utils/contentHash.js +60 -131
  87. package/dist/cjs/utils/contentHash.js.map +1 -1
  88. package/dist/cjs/utils/encoders/encodeAbi.js +33 -3
  89. package/dist/cjs/utils/encoders/encodeAbi.js.map +1 -1
  90. package/dist/cjs/utils/encoders/encodeClearRecords.js +12 -0
  91. package/dist/cjs/utils/encoders/encodeClearRecords.js.map +1 -0
  92. package/dist/cjs/utils/encoders/encodeSetAddr.js +5 -16
  93. package/dist/cjs/utils/encoders/encodeSetAddr.js.map +1 -1
  94. package/dist/cjs/utils/encoders/encodeSetContentHash.js +1 -4
  95. package/dist/cjs/utils/encoders/encodeSetContentHash.js.map +1 -1
  96. package/dist/cjs/utils/format.js +1 -5
  97. package/dist/cjs/utils/format.js.map +1 -1
  98. package/dist/cjs/utils/fuses.js +184 -200
  99. package/dist/cjs/utils/fuses.js.map +1 -1
  100. package/dist/cjs/utils/generateRecordCallArray.js +2 -7
  101. package/dist/cjs/utils/generateRecordCallArray.js.map +1 -1
  102. package/dist/cjs/utils/index.js +31 -7
  103. package/dist/cjs/utils/index.js.map +1 -1
  104. package/dist/cjs/utils/normaliseCoinId.js +35 -0
  105. package/dist/cjs/utils/normaliseCoinId.js.map +1 -0
  106. package/dist/cjs/utils/registerHelpers.js +3 -1
  107. package/dist/cjs/utils/registerHelpers.js.map +1 -1
  108. package/dist/cjs/wallet.js +3 -1
  109. package/dist/cjs/wallet.js.map +1 -1
  110. package/dist/esm/clients/decorators/subgraph.js.map +1 -1
  111. package/dist/esm/clients/decorators/wallet.js +2 -0
  112. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  113. package/dist/esm/clients/public.js.map +1 -1
  114. package/dist/esm/clients/subgraph.js.map +1 -1
  115. package/dist/esm/contracts/consts.js +53 -2
  116. package/dist/esm/contracts/consts.js.map +1 -1
  117. package/dist/esm/dns.js +1 -1
  118. package/dist/esm/dns.js.map +1 -1
  119. package/dist/esm/errors/subgraph.js.map +1 -1
  120. package/dist/esm/errors/utils.js +24 -16
  121. package/dist/esm/errors/utils.js.map +1 -1
  122. package/dist/esm/errors/version.js +1 -1
  123. package/dist/esm/errors/version.js.map +1 -1
  124. package/dist/esm/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +10 -10
  125. package/dist/esm/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
  126. package/dist/esm/functions/dns/getDnsOwner.js +1 -1
  127. package/dist/esm/functions/dns/importDnsName.js +13 -12
  128. package/dist/esm/functions/dns/importDnsName.js.map +1 -1
  129. package/dist/esm/functions/public/_getAbi.js +2 -2
  130. package/dist/esm/functions/public/_getAbi.js.map +1 -1
  131. package/dist/esm/functions/public/_getAddr.js +10 -20
  132. package/dist/esm/functions/public/_getAddr.js.map +1 -1
  133. package/dist/esm/functions/public/_getContentHash.js +2 -2
  134. package/dist/esm/functions/public/batch.js +2 -1
  135. package/dist/esm/functions/public/batch.js.map +1 -1
  136. package/dist/esm/functions/public/getAbiRecord.js +2 -1
  137. package/dist/esm/functions/public/getAbiRecord.js.map +1 -1
  138. package/dist/esm/functions/public/getAddressRecord.js +2 -1
  139. package/dist/esm/functions/public/getAddressRecord.js.map +1 -1
  140. package/dist/esm/functions/public/getAvailable.js +2 -1
  141. package/dist/esm/functions/public/getAvailable.js.map +1 -1
  142. package/dist/esm/functions/public/getContentHashRecord.js +2 -1
  143. package/dist/esm/functions/public/getContentHashRecord.js.map +1 -1
  144. package/dist/esm/functions/public/getExpiry.js +2 -1
  145. package/dist/esm/functions/public/getExpiry.js.map +1 -1
  146. package/dist/esm/functions/public/getName.js +2 -1
  147. package/dist/esm/functions/public/getName.js.map +1 -1
  148. package/dist/esm/functions/public/getOwner.js +3 -2
  149. package/dist/esm/functions/public/getOwner.js.map +1 -1
  150. package/dist/esm/functions/public/getPrice.js +3 -2
  151. package/dist/esm/functions/public/getPrice.js.map +1 -1
  152. package/dist/esm/functions/public/getRecords.js +54 -39
  153. package/dist/esm/functions/public/getRecords.js.map +1 -1
  154. package/dist/esm/functions/public/getResolver.js +2 -1
  155. package/dist/esm/functions/public/getResolver.js.map +1 -1
  156. package/dist/esm/functions/public/getSupportedInterfaces.js +24 -2
  157. package/dist/esm/functions/public/getSupportedInterfaces.js.map +1 -1
  158. package/dist/esm/functions/public/getTextRecord.js +2 -1
  159. package/dist/esm/functions/public/getTextRecord.js.map +1 -1
  160. package/dist/esm/functions/public/getWrapperData.js +2 -1
  161. package/dist/esm/functions/public/getWrapperData.js.map +1 -1
  162. package/dist/esm/functions/public/getWrapperName.js +2 -1
  163. package/dist/esm/functions/public/getWrapperName.js.map +1 -1
  164. package/dist/esm/functions/public/multicallWrapper.js.map +1 -1
  165. package/dist/esm/functions/public/universalWrapper.js.map +1 -1
  166. package/dist/esm/functions/subgraph/client.js.map +1 -1
  167. package/dist/esm/functions/subgraph/filters.js +2 -0
  168. package/dist/esm/functions/subgraph/filters.js.map +1 -0
  169. package/dist/esm/functions/subgraph/getDecodedName.js +2 -1
  170. package/dist/esm/functions/subgraph/getDecodedName.js.map +1 -1
  171. package/dist/esm/functions/subgraph/getNameHistory.js +8 -6
  172. package/dist/esm/functions/subgraph/getNameHistory.js.map +1 -1
  173. package/dist/esm/functions/subgraph/getNamesForAddress.js +163 -192
  174. package/dist/esm/functions/subgraph/getNamesForAddress.js.map +1 -1
  175. package/dist/esm/functions/subgraph/getSubgraphRecords.js +36 -27
  176. package/dist/esm/functions/subgraph/getSubgraphRecords.js.map +1 -1
  177. package/dist/esm/functions/subgraph/getSubgraphRegistrant.js +2 -1
  178. package/dist/esm/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
  179. package/dist/esm/functions/subgraph/getSubnames.js +103 -112
  180. package/dist/esm/functions/subgraph/getSubnames.js.map +1 -1
  181. package/dist/esm/functions/subgraph/types.js +2 -0
  182. package/dist/esm/functions/subgraph/types.js.map +1 -0
  183. package/dist/esm/functions/subgraph/utils.js.map +1 -1
  184. package/dist/esm/functions/wallet/clearRecords.js +44 -0
  185. package/dist/esm/functions/wallet/clearRecords.js.map +1 -0
  186. package/dist/esm/functions/wallet/commitName.js +3 -1
  187. package/dist/esm/functions/wallet/commitName.js.map +1 -1
  188. package/dist/esm/functions/wallet/createSubname.js +3 -2
  189. package/dist/esm/functions/wallet/createSubname.js.map +1 -1
  190. package/dist/esm/functions/wallet/deleteSubname.js +2 -1
  191. package/dist/esm/functions/wallet/deleteSubname.js.map +1 -1
  192. package/dist/esm/functions/wallet/registerName.js +4 -1
  193. package/dist/esm/functions/wallet/registerName.js.map +1 -1
  194. package/dist/esm/functions/wallet/renewNames.js +3 -1
  195. package/dist/esm/functions/wallet/renewNames.js.map +1 -1
  196. package/dist/esm/functions/wallet/setAbiRecord.js +3 -1
  197. package/dist/esm/functions/wallet/setAbiRecord.js.map +1 -1
  198. package/dist/esm/functions/wallet/setAddressRecord.js +2 -1
  199. package/dist/esm/functions/wallet/setAddressRecord.js.map +1 -1
  200. package/dist/esm/functions/wallet/setChildFuses.js +3 -2
  201. package/dist/esm/functions/wallet/setChildFuses.js.map +1 -1
  202. package/dist/esm/functions/wallet/setContentHashRecord.js +2 -1
  203. package/dist/esm/functions/wallet/setContentHashRecord.js.map +1 -1
  204. package/dist/esm/functions/wallet/setFuses.js +4 -3
  205. package/dist/esm/functions/wallet/setFuses.js.map +1 -1
  206. package/dist/esm/functions/wallet/setPrimaryName.js +2 -1
  207. package/dist/esm/functions/wallet/setPrimaryName.js.map +1 -1
  208. package/dist/esm/functions/wallet/setRecords.js +2 -1
  209. package/dist/esm/functions/wallet/setRecords.js.map +1 -1
  210. package/dist/esm/functions/wallet/setResolver.js +2 -1
  211. package/dist/esm/functions/wallet/setResolver.js.map +1 -1
  212. package/dist/esm/functions/wallet/setTextRecord.js +2 -1
  213. package/dist/esm/functions/wallet/setTextRecord.js.map +1 -1
  214. package/dist/esm/functions/wallet/transferName.js +2 -1
  215. package/dist/esm/functions/wallet/transferName.js.map +1 -1
  216. package/dist/esm/functions/wallet/unwrapName.js +2 -1
  217. package/dist/esm/functions/wallet/unwrapName.js.map +1 -1
  218. package/dist/esm/functions/wallet/wrapName.js +6 -3
  219. package/dist/esm/functions/wallet/wrapName.js.map +1 -1
  220. package/dist/esm/index.js +1 -1
  221. package/dist/esm/index.js.map +1 -1
  222. package/dist/esm/subgraph.js +1 -0
  223. package/dist/esm/subgraph.js.map +1 -1
  224. package/dist/esm/utils/contentHash.js +56 -128
  225. package/dist/esm/utils/contentHash.js.map +1 -1
  226. package/dist/esm/utils/encoders/encodeAbi.js +30 -2
  227. package/dist/esm/utils/encoders/encodeAbi.js.map +1 -1
  228. package/dist/esm/utils/encoders/encodeClearRecords.js +8 -0
  229. package/dist/esm/utils/encoders/encodeClearRecords.js.map +1 -0
  230. package/dist/esm/utils/encoders/encodeSetAddr.js +5 -16
  231. package/dist/esm/utils/encoders/encodeSetAddr.js.map +1 -1
  232. package/dist/esm/utils/encoders/encodeSetContentHash.js +2 -5
  233. package/dist/esm/utils/encoders/encodeSetContentHash.js.map +1 -1
  234. package/dist/esm/utils/format.js +0 -2
  235. package/dist/esm/utils/format.js.map +1 -1
  236. package/dist/esm/utils/fuses.js +183 -201
  237. package/dist/esm/utils/fuses.js.map +1 -1
  238. package/dist/esm/utils/generateRecordCallArray.js +3 -7
  239. package/dist/esm/utils/generateRecordCallArray.js.map +1 -1
  240. package/dist/esm/utils/index.js +5 -3
  241. package/dist/esm/utils/index.js.map +1 -1
  242. package/dist/esm/utils/normaliseCoinId.js +30 -0
  243. package/dist/esm/utils/normaliseCoinId.js.map +1 -0
  244. package/dist/esm/utils/registerHelpers.js +4 -2
  245. package/dist/esm/utils/registerHelpers.js.map +1 -1
  246. package/dist/esm/wallet.js +1 -0
  247. package/dist/esm/wallet.js.map +1 -1
  248. package/dist/types/clients/decorators/public.d.ts +1 -519
  249. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  250. package/dist/types/clients/decorators/subgraph.d.ts +2 -520
  251. package/dist/types/clients/decorators/subgraph.d.ts.map +1 -1
  252. package/dist/types/clients/decorators/wallet.d.ts +66 -47
  253. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  254. package/dist/types/clients/public.d.ts +24 -265
  255. package/dist/types/clients/public.d.ts.map +1 -1
  256. package/dist/types/clients/subgraph.d.ts +19 -260
  257. package/dist/types/clients/subgraph.d.ts.map +1 -1
  258. package/dist/types/clients/wallet.d.ts +54 -86
  259. package/dist/types/clients/wallet.d.ts.map +1 -1
  260. package/dist/types/contracts/consts.d.ts +52 -3
  261. package/dist/types/contracts/consts.d.ts.map +1 -1
  262. package/dist/types/dns.d.ts +2 -2
  263. package/dist/types/dns.d.ts.map +1 -1
  264. package/dist/types/errors/subgraph.d.ts +4 -4
  265. package/dist/types/errors/subgraph.d.ts.map +1 -1
  266. package/dist/types/errors/utils.d.ts +16 -13
  267. package/dist/types/errors/utils.d.ts.map +1 -1
  268. package/dist/types/errors/version.d.ts +1 -1
  269. package/dist/types/errors/version.d.ts.map +1 -1
  270. package/dist/types/functions/dns/getDnsImportData.d.ts +39 -0
  271. package/dist/types/functions/dns/{prepareDnsImport.d.ts.map → getDnsImportData.d.ts.map} +1 -1
  272. package/dist/types/functions/dns/getDnsOwner.d.ts +1 -1
  273. package/dist/types/functions/dns/importDnsName.d.ts +88 -102
  274. package/dist/types/functions/dns/importDnsName.d.ts.map +1 -1
  275. package/dist/types/functions/public/_getAddr.d.ts.map +1 -1
  276. package/dist/types/functions/public/batch.d.ts +2 -1
  277. package/dist/types/functions/public/batch.d.ts.map +1 -1
  278. package/dist/types/functions/public/getAbiRecord.d.ts +2 -1
  279. package/dist/types/functions/public/getAbiRecord.d.ts.map +1 -1
  280. package/dist/types/functions/public/getAddressRecord.d.ts +2 -1
  281. package/dist/types/functions/public/getAddressRecord.d.ts.map +1 -1
  282. package/dist/types/functions/public/getAvailable.d.ts +2 -1
  283. package/dist/types/functions/public/getAvailable.d.ts.map +1 -1
  284. package/dist/types/functions/public/getContentHashRecord.d.ts +2 -1
  285. package/dist/types/functions/public/getContentHashRecord.d.ts.map +1 -1
  286. package/dist/types/functions/public/getExpiry.d.ts +2 -1
  287. package/dist/types/functions/public/getExpiry.d.ts.map +1 -1
  288. package/dist/types/functions/public/getName.d.ts +2 -1
  289. package/dist/types/functions/public/getName.d.ts.map +1 -1
  290. package/dist/types/functions/public/getOwner.d.ts +19 -9
  291. package/dist/types/functions/public/getOwner.d.ts.map +1 -1
  292. package/dist/types/functions/public/getPrice.d.ts +3 -2
  293. package/dist/types/functions/public/getPrice.d.ts.map +1 -1
  294. package/dist/types/functions/public/getRecords.d.ts +3 -2
  295. package/dist/types/functions/public/getRecords.d.ts.map +1 -1
  296. package/dist/types/functions/public/getResolver.d.ts +2 -1
  297. package/dist/types/functions/public/getResolver.d.ts.map +1 -1
  298. package/dist/types/functions/public/getSupportedInterfaces.d.ts +41 -4
  299. package/dist/types/functions/public/getSupportedInterfaces.d.ts.map +1 -1
  300. package/dist/types/functions/public/getTextRecord.d.ts +2 -1
  301. package/dist/types/functions/public/getTextRecord.d.ts.map +1 -1
  302. package/dist/types/functions/public/getWrapperData.d.ts +4 -3
  303. package/dist/types/functions/public/getWrapperData.d.ts.map +1 -1
  304. package/dist/types/functions/public/getWrapperName.d.ts +2 -1
  305. package/dist/types/functions/public/getWrapperName.d.ts.map +1 -1
  306. package/dist/types/functions/subgraph/client.d.ts +2 -2
  307. package/dist/types/functions/subgraph/client.d.ts.map +1 -1
  308. package/dist/types/functions/subgraph/filters.d.ts +693 -0
  309. package/dist/types/functions/subgraph/filters.d.ts.map +1 -0
  310. package/dist/types/functions/subgraph/getDecodedName.d.ts +2 -1
  311. package/dist/types/functions/subgraph/getDecodedName.d.ts.map +1 -1
  312. package/dist/types/functions/subgraph/getNameHistory.d.ts +2 -1
  313. package/dist/types/functions/subgraph/getNameHistory.d.ts.map +1 -1
  314. package/dist/types/functions/subgraph/getNamesForAddress.d.ts +7 -2
  315. package/dist/types/functions/subgraph/getNamesForAddress.d.ts.map +1 -1
  316. package/dist/types/functions/subgraph/getSubgraphRecords.d.ts +2 -1
  317. package/dist/types/functions/subgraph/getSubgraphRecords.d.ts.map +1 -1
  318. package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts +2 -1
  319. package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts.map +1 -1
  320. package/dist/types/functions/subgraph/getSubnames.d.ts +5 -2
  321. package/dist/types/functions/subgraph/getSubnames.d.ts.map +1 -1
  322. package/dist/types/functions/subgraph/types.d.ts +13 -0
  323. package/dist/types/functions/subgraph/types.d.ts.map +1 -0
  324. package/dist/types/functions/subgraph/utils.d.ts +2 -2
  325. package/dist/types/functions/subgraph/utils.d.ts.map +1 -1
  326. package/dist/types/functions/wallet/clearRecords.d.ts +555 -0
  327. package/dist/types/functions/wallet/clearRecords.d.ts.map +1 -0
  328. package/dist/types/functions/wallet/commitName.d.ts +80 -93
  329. package/dist/types/functions/wallet/commitName.d.ts.map +1 -1
  330. package/dist/types/functions/wallet/createSubname.d.ts +82 -96
  331. package/dist/types/functions/wallet/createSubname.d.ts.map +1 -1
  332. package/dist/types/functions/wallet/deleteSubname.d.ts +79 -93
  333. package/dist/types/functions/wallet/deleteSubname.d.ts.map +1 -1
  334. package/dist/types/functions/wallet/registerName.d.ts +80 -89
  335. package/dist/types/functions/wallet/registerName.d.ts.map +1 -1
  336. package/dist/types/functions/wallet/renewNames.d.ts +79 -89
  337. package/dist/types/functions/wallet/renewNames.d.ts.map +1 -1
  338. package/dist/types/functions/wallet/setAbiRecord.d.ts +80 -93
  339. package/dist/types/functions/wallet/setAbiRecord.d.ts.map +1 -1
  340. package/dist/types/functions/wallet/setAddressRecord.d.ts +79 -93
  341. package/dist/types/functions/wallet/setAddressRecord.d.ts.map +1 -1
  342. package/dist/types/functions/wallet/setChildFuses.d.ts +81 -95
  343. package/dist/types/functions/wallet/setChildFuses.d.ts.map +1 -1
  344. package/dist/types/functions/wallet/setContentHashRecord.d.ts +79 -93
  345. package/dist/types/functions/wallet/setContentHashRecord.d.ts.map +1 -1
  346. package/dist/types/functions/wallet/setFuses.d.ts +81 -95
  347. package/dist/types/functions/wallet/setFuses.d.ts.map +1 -1
  348. package/dist/types/functions/wallet/setPrimaryName.d.ts +79 -93
  349. package/dist/types/functions/wallet/setPrimaryName.d.ts.map +1 -1
  350. package/dist/types/functions/wallet/setRecords.d.ts +79 -93
  351. package/dist/types/functions/wallet/setRecords.d.ts.map +1 -1
  352. package/dist/types/functions/wallet/setResolver.d.ts +79 -93
  353. package/dist/types/functions/wallet/setResolver.d.ts.map +1 -1
  354. package/dist/types/functions/wallet/setTextRecord.d.ts +79 -93
  355. package/dist/types/functions/wallet/setTextRecord.d.ts.map +1 -1
  356. package/dist/types/functions/wallet/transferName.d.ts +80 -94
  357. package/dist/types/functions/wallet/transferName.d.ts.map +1 -1
  358. package/dist/types/functions/wallet/unwrapName.d.ts +79 -93
  359. package/dist/types/functions/wallet/unwrapName.d.ts.map +1 -1
  360. package/dist/types/functions/wallet/wrapName.d.ts +81 -95
  361. package/dist/types/functions/wallet/wrapName.d.ts.map +1 -1
  362. package/dist/types/index.d.ts +1 -1
  363. package/dist/types/index.d.ts.map +1 -1
  364. package/dist/types/subgraph.d.ts +1 -0
  365. package/dist/types/subgraph.d.ts.map +1 -1
  366. package/dist/types/types.d.ts +3 -1
  367. package/dist/types/types.d.ts.map +1 -1
  368. package/dist/types/utils/contentHash.d.ts +10 -11
  369. package/dist/types/utils/contentHash.d.ts.map +1 -1
  370. package/dist/types/utils/encoders/encodeAbi.d.ts +8 -5
  371. package/dist/types/utils/encoders/encodeAbi.d.ts.map +1 -1
  372. package/dist/types/utils/encoders/encodeClearRecords.d.ts +3 -0
  373. package/dist/types/utils/encoders/encodeClearRecords.d.ts.map +1 -0
  374. package/dist/types/utils/encoders/encodeSetAddr.d.ts.map +1 -1
  375. package/dist/types/utils/encoders/encodeSetContentHash.d.ts.map +1 -1
  376. package/dist/types/utils/format.d.ts +0 -2
  377. package/dist/types/utils/format.d.ts.map +1 -1
  378. package/dist/types/utils/fuses.d.ts +164 -125
  379. package/dist/types/utils/fuses.d.ts.map +1 -1
  380. package/dist/types/utils/generateRecordCallArray.d.ts.map +1 -1
  381. package/dist/types/utils/index.d.ts +5 -3
  382. package/dist/types/utils/index.d.ts.map +1 -1
  383. package/dist/types/utils/normaliseCoinId.d.ts +10 -0
  384. package/dist/types/utils/normaliseCoinId.d.ts.map +1 -0
  385. package/dist/types/utils/registerHelpers.d.ts +2 -2
  386. package/dist/types/utils/registerHelpers.d.ts.map +1 -1
  387. package/dist/types/wallet.d.ts +18 -17
  388. package/dist/types/wallet.d.ts.map +1 -1
  389. package/package.json +8 -8
  390. package/src/clients/decorators/subgraph.ts +1 -0
  391. package/src/clients/decorators/wallet.ts +41 -3
  392. package/src/clients/public.ts +3 -2
  393. package/src/clients/subgraph.ts +3 -2
  394. package/src/clients/wallet.ts +1 -1
  395. package/src/contracts/consts.ts +58 -13
  396. package/src/dns.ts +7 -5
  397. package/src/errors/subgraph.ts +4 -4
  398. package/src/errors/utils.ts +29 -18
  399. package/src/errors/version.ts +1 -1
  400. package/src/functions/dns/{prepareDnsImport.ts → getDnsImportData.ts} +13 -13
  401. package/src/functions/dns/getDnsOwner.ts +1 -1
  402. package/src/functions/dns/importDnsName.ts +21 -15
  403. package/src/functions/public/_getAbi.ts +2 -2
  404. package/src/functions/public/_getAddr.ts +16 -23
  405. package/src/functions/public/_getContentHash.ts +2 -2
  406. package/src/functions/public/batch.ts +2 -1
  407. package/src/functions/public/getAbiRecord.ts +2 -1
  408. package/src/functions/public/getAddressRecord.ts +2 -1
  409. package/src/functions/public/getAvailable.ts +2 -1
  410. package/src/functions/public/getContentHashRecord.ts +2 -1
  411. package/src/functions/public/getExpiry.ts +2 -1
  412. package/src/functions/public/getName.ts +3 -2
  413. package/src/functions/public/getOwner.ts +54 -33
  414. package/src/functions/public/getPrice.ts +3 -2
  415. package/src/functions/public/getRecords.ts +125 -105
  416. package/src/functions/public/getResolver.ts +3 -2
  417. package/src/functions/public/getSupportedInterfaces.ts +70 -10
  418. package/src/functions/public/getTextRecord.ts +2 -1
  419. package/src/functions/public/getWrapperData.ts +5 -4
  420. package/src/functions/public/getWrapperName.ts +3 -2
  421. package/src/functions/public/multicallWrapper.ts +1 -1
  422. package/src/functions/public/universalWrapper.ts +1 -1
  423. package/src/functions/subgraph/client.ts +2 -2
  424. package/src/functions/subgraph/filters.ts +702 -0
  425. package/src/functions/subgraph/getDecodedName.ts +2 -1
  426. package/src/functions/subgraph/getNameHistory.ts +8 -6
  427. package/src/functions/subgraph/getNamesForAddress.ts +199 -195
  428. package/src/functions/subgraph/getSubgraphRecords.ts +65 -33
  429. package/src/functions/subgraph/getSubgraphRegistrant.ts +2 -1
  430. package/src/functions/subgraph/getSubnames.ts +123 -114
  431. package/src/functions/subgraph/types.ts +13 -0
  432. package/src/functions/subgraph/utils.ts +2 -2
  433. package/src/functions/wallet/clearRecords.ts +97 -0
  434. package/src/functions/wallet/commitName.ts +3 -1
  435. package/src/functions/wallet/createSubname.ts +6 -5
  436. package/src/functions/wallet/deleteSubname.ts +2 -1
  437. package/src/functions/wallet/registerName.ts +4 -1
  438. package/src/functions/wallet/renewNames.ts +3 -1
  439. package/src/functions/wallet/setAbiRecord.ts +3 -1
  440. package/src/functions/wallet/setAddressRecord.ts +2 -1
  441. package/src/functions/wallet/setChildFuses.ts +5 -4
  442. package/src/functions/wallet/setContentHashRecord.ts +2 -1
  443. package/src/functions/wallet/setFuses.ts +8 -4
  444. package/src/functions/wallet/setPrimaryName.ts +2 -1
  445. package/src/functions/wallet/setRecords.ts +2 -1
  446. package/src/functions/wallet/setResolver.ts +2 -1
  447. package/src/functions/wallet/setTextRecord.ts +2 -1
  448. package/src/functions/wallet/transferName.ts +3 -2
  449. package/src/functions/wallet/unwrapName.ts +2 -1
  450. package/src/functions/wallet/wrapName.ts +10 -4
  451. package/src/index.ts +0 -1
  452. package/src/subgraph.ts +5 -0
  453. package/src/types.ts +6 -3
  454. package/src/utils/contentHash.ts +65 -113
  455. package/src/utils/encoders/encodeAbi.ts +37 -8
  456. package/src/utils/encoders/encodeClearRecords.ts +9 -0
  457. package/src/utils/encoders/encodeSetAddr.ts +5 -16
  458. package/src/utils/encoders/encodeSetContentHash.ts +2 -4
  459. package/src/utils/format.ts +0 -6
  460. package/src/utils/fuses.ts +312 -308
  461. package/src/utils/generateRecordCallArray.ts +3 -9
  462. package/src/utils/index.ts +37 -5
  463. package/src/utils/normaliseCoinId.ts +36 -0
  464. package/src/utils/registerHelpers.ts +5 -3
  465. package/src/wallet.ts +41 -0
  466. package/dist/types/functions/dns/prepareDnsImport.d.ts +0 -39
  467. package/src/@types/@ensdomains/content-hash.d.ts +0 -1
  468. package/src/functions/dns/getDnsOwner.test.ts +0 -195
  469. package/src/functions/dns/importDnsName.test.ts +0 -117
  470. package/src/functions/dns/prepareDnsImport.test.ts +0 -115
  471. package/src/functions/public/batch.test.ts +0 -67
  472. package/src/functions/public/ccip.test.ts +0 -78
  473. package/src/functions/public/getAbiRecord.test.ts +0 -174
  474. package/src/functions/public/getAddressRecord.test.ts +0 -83
  475. package/src/functions/public/getAvailable.test.ts +0 -17
  476. package/src/functions/public/getContentHashRecord.test.ts +0 -28
  477. package/src/functions/public/getExpiry.test.ts +0 -48
  478. package/src/functions/public/getName.test.ts +0 -66
  479. package/src/functions/public/getOwner.test.ts +0 -87
  480. package/src/functions/public/getPrice.test.ts +0 -45
  481. package/src/functions/public/getRecords.test.ts +0 -49
  482. package/src/functions/public/getResolver.test.ts +0 -12
  483. package/src/functions/public/getTextRecord.test.ts +0 -20
  484. package/src/functions/public/getWrapperData.test.ts +0 -79
  485. package/src/functions/public/getWrapperName.test.ts +0 -19
  486. package/src/functions/subgraph/client.test.ts +0 -170
  487. package/src/functions/subgraph/getDecodedName.test.ts +0 -31
  488. package/src/functions/subgraph/getNameHistory.test.ts +0 -39
  489. package/src/functions/subgraph/getNamesForAddress.test.ts +0 -244
  490. package/src/functions/subgraph/getSubgraphRecords.test.ts +0 -74
  491. package/src/functions/subgraph/getSubgraphRegistrant.test.ts +0 -34
  492. package/src/functions/subgraph/getSubnames.test.ts +0 -202
  493. package/src/functions/wallet/commitName.test.ts +0 -58
  494. package/src/functions/wallet/createSubname.test.ts +0 -73
  495. package/src/functions/wallet/deleteSubname.test.ts +0 -150
  496. package/src/functions/wallet/registerName.test.ts +0 -81
  497. package/src/functions/wallet/renewNames.test.ts +0 -92
  498. package/src/functions/wallet/setAbiRecord.test.ts +0 -156
  499. package/src/functions/wallet/setAddressRecord.test.ts +0 -121
  500. package/src/functions/wallet/setChildFuses.test.ts +0 -97
  501. package/src/functions/wallet/setContentHashRecord.test.ts +0 -69
  502. package/src/functions/wallet/setFuses.test.ts +0 -287
  503. package/src/functions/wallet/setPrimaryName.test.ts +0 -71
  504. package/src/functions/wallet/setRecords.test.ts +0 -127
  505. package/src/functions/wallet/setResolver.test.ts +0 -114
  506. package/src/functions/wallet/setTextRecord.test.ts +0 -67
  507. package/src/functions/wallet/transferName.test.ts +0 -201
  508. package/src/functions/wallet/unwrapName.test.ts +0 -93
  509. package/src/functions/wallet/wrapName.test.ts +0 -195
  510. package/src/utils/generateRecordCallArray.test.ts +0 -84
  511. package/src/utils/labels.test.ts +0 -163
  512. package/src/utils/makeLabelNodeAndParent.test.ts +0 -11
  513. package/src/utils/makeSafeSecondsDate.test.ts +0 -14
  514. package/src/utils/normalise.test.ts +0 -35
  515. package/src/utils/ownerFromContract.test.ts +0 -52
  516. package/src/utils/registerHelpers.test.ts +0 -159
  517. package/src/utils/validation.test.ts +0 -170
  518. package/src/utils/wrapper.test.ts +0 -46
@@ -1,9 +1,11 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
1
2
  import { gql } from 'graphql-request'
2
3
  import type { ClientWithEns } from '../../contracts/consts.js'
3
4
  import { InvalidOrderByError } from '../../errors/subgraph.js'
4
- import { GRACE_PERIOD_SECONDS } from '../../utils/consts.js'
5
+ import { EMPTY_ADDRESS, GRACE_PERIOD_SECONDS } from '../../utils/consts.js'
5
6
  import { namehash } from '../../utils/normalise.js'
6
7
  import { createSubgraphClient } from './client.js'
8
+ import type { DomainFilter } from './filters.js'
7
9
  import {
8
10
  domainDetailsWithoutParentFragment,
9
11
  registrationDetailsFragment,
@@ -21,6 +23,8 @@ export type GetSubnamesParameters = {
21
23
  searchString?: string
22
24
  /** Allows expired names to be included (default: false) */
23
25
  allowExpired?: boolean
26
+ /** Allows deleted names to be included (default: false) */
27
+ allowDeleted?: boolean
24
28
  /** Parameter to order names by (default: name) */
25
29
  orderBy?: GetSubnamesOrderBy
26
30
  /** Direction to order names in (default: asc) */
@@ -39,6 +43,71 @@ type SubgraphResult = {
39
43
  }
40
44
  }
41
45
 
46
+ const getOrderByFilter = ({
47
+ name,
48
+ orderBy,
49
+ orderDirection,
50
+ previousPage,
51
+ }: Required<
52
+ Pick<
53
+ GetSubnamesParameters,
54
+ 'name' | 'orderBy' | 'orderDirection' | 'previousPage'
55
+ >
56
+ >): DomainFilter => {
57
+ const lastDomain = previousPage[previousPage.length - 1]
58
+ const operator = orderDirection === 'asc' ? 'gt' : 'lt'
59
+
60
+ switch (orderBy) {
61
+ case 'expiryDate': {
62
+ let lastExpiryDate = lastDomain.expiryDate?.value
63
+ ? lastDomain.expiryDate.value / 1000
64
+ : 0
65
+ if (name === 'eth' && lastExpiryDate) {
66
+ lastExpiryDate += GRACE_PERIOD_SECONDS
67
+ }
68
+
69
+ if (orderDirection === 'asc' && lastExpiryDate === 0) {
70
+ return {
71
+ and: [{ expiryDate: null }, { [`id_${operator}`]: lastDomain.id }],
72
+ }
73
+ }
74
+ if (orderDirection === 'desc' && lastExpiryDate !== 0) {
75
+ return {
76
+ [`expiryDate_${operator}`]: `${lastExpiryDate}`,
77
+ }
78
+ }
79
+ return {
80
+ or: [
81
+ {
82
+ [`expiryDate_${operator}`]: `${lastExpiryDate}`,
83
+ },
84
+ { expiryDate: null },
85
+ ],
86
+ }
87
+ }
88
+ case 'name': {
89
+ return {
90
+ [`name_${operator}`]: lastDomain.name ?? '',
91
+ }
92
+ }
93
+ case 'labelName': {
94
+ return {
95
+ [`labelName_${operator}`]: lastDomain.labelName ?? '',
96
+ }
97
+ }
98
+ case 'createdAt': {
99
+ return {
100
+ [`createdAt_${operator}`]: `${lastDomain.createdAt.value / 1000}`,
101
+ }
102
+ }
103
+ default:
104
+ throw new InvalidOrderByError({
105
+ orderBy: orderBy || '<no orderBy provided>',
106
+ supportedOrderBys: ['expiryDate', 'name', 'labelName', 'createdAt'],
107
+ })
108
+ }
109
+ }
110
+
42
111
  /**
43
112
  * Gets the subnames for a name from the subgraph.
44
113
  * @param client - {@link ClientWithEns}
@@ -48,7 +117,8 @@ type SubgraphResult = {
48
117
  * @example
49
118
  * import { createPublicClient, http } from 'viem'
50
119
  * import { mainnet } from 'viem/chains'
51
- * import { addEnsContracts, getSubnames } from '@ensdomains/ensjs'
120
+ * import { addEnsContracts } from '@ensdomains/ensjs'
121
+ * import { getSubnames } from '@ensdomains/ensjs/subgraph'
52
122
  *
53
123
  * const client = createPublicClient({
54
124
  * chain: addEnsContracts(mainnet),
@@ -62,6 +132,7 @@ const getSubnames = async (
62
132
  name,
63
133
  searchString,
64
134
  allowExpired = false,
135
+ allowDeleted = false,
65
136
  orderBy = 'name',
66
137
  orderDirection = 'asc',
67
138
  pageSize = 100,
@@ -70,119 +141,68 @@ const getSubnames = async (
70
141
  ): Promise<GetSubnamesReturnType> => {
71
142
  const subgraphClient = createSubgraphClient({ client })
72
143
 
73
- const whereFilters: string[] = []
74
-
75
- let orderByFilter = ''
76
- let orderByStringVar = ''
77
-
78
- if (previousPage && previousPage.length > 0) {
79
- const lastDomain = previousPage[previousPage.length - 1]
80
- const operator = orderDirection === 'asc' ? 'gt' : 'lt'
81
- switch (orderBy) {
82
- case 'expiryDate': {
83
- let lastExpiryDate = lastDomain.expiryDate?.value
84
- ? lastDomain.expiryDate.value / 1000
85
- : 0
86
- if (name === 'eth' && lastExpiryDate) {
87
- lastExpiryDate += GRACE_PERIOD_SECONDS
88
- }
89
- if (orderDirection === 'asc' && lastExpiryDate === 0) {
90
- orderByFilter = `
91
- {
92
- and: [
93
- { expiryDate: null }
94
- { id_${operator}: "${lastDomain.id}" }
95
- ]
96
- }
97
- `
98
- } else if (orderDirection === 'desc' && lastExpiryDate !== 0) {
99
- orderByFilter = `
100
- {
101
- expiryDate_${operator}: ${lastExpiryDate}
102
- }
103
- `
104
- } else {
105
- orderByFilter = `
106
- {
107
- or: [
108
- {
109
- expiryDate_${operator}: ${lastExpiryDate}
110
- }
111
- { expiryDate: null }
112
- ]
113
- }
114
- `
115
- }
116
- break
117
- }
118
- case 'name': {
119
- orderByFilter = `
120
- {
121
- name_${operator}: $orderByStringVar
122
- }
123
- `
124
- orderByStringVar = lastDomain.name ?? ''
125
- break
126
- }
127
- case 'labelName': {
128
- orderByFilter = `
129
- {
130
- labelName_${operator}: $orderByStringVar
131
- }
132
- `
133
- orderByStringVar = lastDomain.labelName ?? ''
134
- break
135
- }
136
- case 'createdAt': {
137
- orderByFilter = `
138
- {
139
- createdAt_${operator}: ${lastDomain.createdAt.value / 1000}
140
- }
141
- `
142
- break
143
- }
144
- default:
145
- throw new InvalidOrderByError({
146
- orderBy,
147
- supportedOrderBys: ['expiryDate', 'name', 'labelName', 'createdAt'],
148
- })
149
- }
150
- whereFilters.push(orderByFilter)
144
+ const whereFilters: DomainFilter[] = []
145
+
146
+ if (previousPage?.length) {
147
+ whereFilters.push(
148
+ getOrderByFilter({
149
+ name,
150
+ orderBy,
151
+ orderDirection,
152
+ previousPage,
153
+ }),
154
+ )
151
155
  }
152
156
 
153
157
  if (!allowExpired) {
154
158
  // Exclude domains that are expired
155
159
  // if expiryDate is null, there is no expiry on the domain (registration or wrapped)
156
- whereFilters.push(`
157
- {
158
- or: [
159
- { expiryDate_gt: $expiryDate }
160
- { expiryDate: null }
161
- ]
162
- }
163
- `)
160
+ whereFilters.push({
161
+ or: [
162
+ { expiryDate_gt: `${Math.floor(Date.now() / 1000)}` },
163
+ { expiryDate: null },
164
+ ],
165
+ })
166
+ }
167
+
168
+ if (!allowDeleted) {
169
+ // exclude "deleted" domains
170
+ // when owner/resolver/registrant = null
171
+ whereFilters.push({
172
+ or: [
173
+ {
174
+ owner_not: EMPTY_ADDRESS,
175
+ },
176
+ {
177
+ resolver_not: null,
178
+ },
179
+ ...(name.toLowerCase() === 'eth'
180
+ ? [
181
+ {
182
+ registrant_not: EMPTY_ADDRESS,
183
+ },
184
+ ]
185
+ : []),
186
+ ],
187
+ })
164
188
  }
165
189
 
166
190
  if (searchString) {
167
191
  // using labelName_contains instead of name_contains because name_contains
168
192
  // includes the parent name
169
- whereFilters.push(`
170
- {
171
- labelName_contains: $searchString
172
- }
173
- `)
193
+ whereFilters.push({
194
+ labelName_contains: searchString,
195
+ })
174
196
  }
175
197
 
176
- let whereFilter = ''
198
+ let whereFilter: DomainFilter = {}
177
199
 
178
200
  if (whereFilters.length > 1) {
179
- whereFilter = `
180
- and: [
181
- ${whereFilters.join('\n')}
182
- ]
183
- `
201
+ whereFilter = {
202
+ and: whereFilters,
203
+ }
184
204
  } else if (whereFilters.length === 1) {
185
- whereFilter = whereFilters[0].replace(/{(.*)}/gs, '$1')
205
+ ;[whereFilter] = whereFilters
186
206
  }
187
207
 
188
208
  const query = gql`
@@ -190,24 +210,15 @@ const getSubnames = async (
190
210
  $id: String!
191
211
  $orderBy: Domain_orderBy
192
212
  $orderDirection: OrderDirection
213
+ $whereFilter: Domain_filter
193
214
  $first: Int
194
- $expiryDate: Int
195
- $searchString: String
196
- $orderByStringVar: String
197
215
  ) {
198
216
  domain(id: $id) {
199
217
  subdomains(
200
218
  orderBy: $orderBy
201
219
  orderDirection: $orderDirection
202
220
  first: $first
203
- ${
204
- whereFilter &&
205
- `
206
- where: {
207
- ${whereFilter}
208
- }
209
- `
210
- }
221
+ where: $whereFilter
211
222
  ) {
212
223
  ...DomainDetailsWithoutParent
213
224
  registration {
@@ -229,9 +240,7 @@ const getSubnames = async (
229
240
  orderBy,
230
241
  orderDirection,
231
242
  first: pageSize,
232
- expiryDate: Math.floor(Date.now() / 1000),
233
- searchString,
234
- orderByStringVar,
243
+ whereFilter,
235
244
  }
236
245
 
237
246
  const result = await subgraphClient.request<SubgraphResult, typeof queryVars>(
@@ -0,0 +1,13 @@
1
+ import type { Hex } from 'viem'
2
+
3
+ export type InputMaybe<T> = T | null
4
+ /** All built-in and custom scalars, mapped to their actual values */
5
+ export type Scalars = {
6
+ ID: string
7
+ String: string
8
+ Boolean: boolean
9
+ Int: number
10
+ Float: number
11
+ Bytes: Hex
12
+ BigInt: string
13
+ }
@@ -1,7 +1,7 @@
1
1
  import { getAddress, type Address, type Hex } from 'viem'
2
2
  import type { DateWithValue } from '../../types.js'
3
3
  import { truncateFormat } from '../../utils/format.js'
4
- import { decodeFuses, type AllCurrentFuses } from '../../utils/fuses.js'
4
+ import { decodeFuses, type DecodedFuses } from '../../utils/fuses.js'
5
5
  import { decryptName } from '../../utils/labels.js'
6
6
  import type { SubgraphDomain } from './fragments.js'
7
7
 
@@ -27,7 +27,7 @@ export type Name = {
27
27
  /** Expiry date of name */
28
28
  expiryDate: DateWithValue<number> | null
29
29
  /** Fuse values for name */
30
- fuses: AllCurrentFuses | null
30
+ fuses: DecodedFuses | null
31
31
  /** Owner address */
32
32
  owner: Address
33
33
  /** Registrant address */
@@ -0,0 +1,97 @@
1
+ import type {
2
+ Account,
3
+ Address,
4
+ Hash,
5
+ SendTransactionParameters,
6
+ Transport,
7
+ } from 'viem'
8
+ import type { ChainWithEns, WalletWithEns } from '../../contracts/consts.js'
9
+ import type {
10
+ Prettify,
11
+ SimpleTransactionRequest,
12
+ WriteTransactionParameters,
13
+ } from '../../types.js'
14
+ import { encodeClearRecords } from '../../utils/encoders/encodeClearRecords.js'
15
+ import { namehash } from '../../utils/normalise.js'
16
+
17
+ export type ClearRecordsDataParameters = {
18
+ /** The name to clear records for */
19
+ name: string
20
+ /** The resolver address to use */
21
+ resolverAddress: Address
22
+ }
23
+
24
+ export type ClearRecordsDataReturnType = SimpleTransactionRequest
25
+
26
+ export type ClearRecordsParameters<
27
+ TChain extends ChainWithEns,
28
+ TAccount extends Account | undefined,
29
+ TChainOverride extends ChainWithEns | undefined,
30
+ > = Prettify<
31
+ ClearRecordsDataParameters &
32
+ WriteTransactionParameters<TChain, TAccount, TChainOverride>
33
+ >
34
+
35
+ export type ClearRecordsReturnType = Hash
36
+
37
+ export const makeFunctionData = <
38
+ TChain extends ChainWithEns,
39
+ TAccount extends Account | undefined,
40
+ >(
41
+ _wallet: WalletWithEns<Transport, TChain, TAccount>,
42
+ { name, resolverAddress }: ClearRecordsDataParameters,
43
+ ): ClearRecordsDataReturnType => {
44
+ return {
45
+ to: resolverAddress,
46
+ data: encodeClearRecords(namehash(name)),
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Clears the records for a name on a resolver.
52
+ * @param wallet - {@link WalletWithEns}
53
+ * @param parameters - {@link ClearRecordsParameters}
54
+ * @returns Transaction hash. {@link ClearRecordsReturnType}
55
+ *
56
+ * @example
57
+ * import { createWalletClient, custom } from 'viem'
58
+ * import { mainnet } from 'viem/chains'
59
+ * import { addEnsContracts } from '@ensdomains/ensjs'
60
+ * import { clearRecords } from '@ensdomains/ensjs/wallet'
61
+ *
62
+ * const wallet = createWalletClient({
63
+ * chain: addEnsContracts(mainnet),
64
+ * transport: custom(window.ethereum),
65
+ * })
66
+ * const hash = await clearRecords(wallet, {
67
+ * name: 'ens.eth',
68
+ * resolverAddress: '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41',
69
+ * })
70
+ * // 0x...
71
+ */
72
+ async function clearRecords<
73
+ TChain extends ChainWithEns,
74
+ TAccount extends Account | undefined,
75
+ TChainOverride extends ChainWithEns | undefined = ChainWithEns,
76
+ >(
77
+ wallet: WalletWithEns<Transport, TChain, TAccount>,
78
+ {
79
+ name,
80
+ resolverAddress,
81
+ ...txArgs
82
+ }: ClearRecordsParameters<TChain, TAccount, TChainOverride>,
83
+ ): Promise<ClearRecordsReturnType> {
84
+ const data = makeFunctionData(wallet, {
85
+ name,
86
+ resolverAddress,
87
+ })
88
+ const writeArgs = {
89
+ ...data,
90
+ ...txArgs,
91
+ } as SendTransactionParameters<TChain, TAccount, TChainOverride>
92
+ return wallet.sendTransaction(writeArgs)
93
+ }
94
+
95
+ clearRecords.makeFunctionData = makeFunctionData
96
+
97
+ export default clearRecords
@@ -74,7 +74,9 @@ export const makeFunctionData = <
74
74
  * @example
75
75
  * import { createWalletClient, custom } from 'viem'
76
76
  * import { mainnet } from 'viem/chains'
77
- * import { addEnsContracts, commitName, randomSecret } from '@ensdomains/ensjs'
77
+ * import { addEnsContracts } from '@ensdomains/ensjs'
78
+ * import { commitName } from '@ensdomains/ensjs/wallet'
79
+ * import { randomSecret } from '@ensdomains/ensjs/utils'
78
80
  *
79
81
  * const wallet = createWalletClient({
80
82
  * chain: addEnsContracts(mainnet),
@@ -20,7 +20,7 @@ import type {
20
20
  SimpleTransactionRequest,
21
21
  WriteTransactionParameters,
22
22
  } from '../../types.js'
23
- import { encodeFuses, type CombinedFuseInput } from '../../utils/fuses.js'
23
+ import { encodeFuses, type EncodeFusesInputObject } from '../../utils/fuses.js'
24
24
  import { getNameType } from '../../utils/getNameType.js'
25
25
  import { makeLabelNodeAndParent } from '../../utils/makeLabelNodeAndParent.js'
26
26
  import {
@@ -41,7 +41,7 @@ type BaseCreateSubnameDataParameters = {
41
41
  /** Expiry to set (only on NameWrapper) */
42
42
  expiry?: AnyDate
43
43
  /** Fuses to set (only on NameWrapper) */
44
- fuses?: CombinedFuseInput
44
+ fuses?: EncodeFusesInputObject
45
45
  }
46
46
 
47
47
  type RegistryCreateSubnameDataParameters = {
@@ -53,7 +53,7 @@ type RegistryCreateSubnameDataParameters = {
53
53
  type NameWrapperCreateSubnameDataParameters = {
54
54
  contract: 'nameWrapper'
55
55
  expiry?: AnyDate
56
- fuses?: CombinedFuseInput
56
+ fuses?: EncodeFusesInputObject
57
57
  }
58
58
 
59
59
  export type CreateSubnameDataParameters = BaseCreateSubnameDataParameters &
@@ -119,7 +119,7 @@ export const makeFunctionData = <
119
119
  }
120
120
  case 'nameWrapper': {
121
121
  wrappedLabelLengthCheck(label)
122
- const generatedFuses = fuses ? encodeFuses(fuses) : 0
122
+ const generatedFuses = fuses ? encodeFuses({ input: fuses }) : 0
123
123
  const generatedExpiry = expiry ? expiryToBigInt(expiry) : MAX_EXPIRY
124
124
  return {
125
125
  to: getChainContractAddress({
@@ -158,7 +158,8 @@ export const makeFunctionData = <
158
158
  * @example
159
159
  * import { createWalletClient, custom } from 'viem'
160
160
  * import { mainnet } from 'viem/chains'
161
- * import { addEnsContracts, createSubname } from '@ensdomains/ensjs'
161
+ * import { addEnsContracts } from '@ensdomains/ensjs'
162
+ * import { createSubname } from '@ensdomains/ensjs/wallet'
162
163
  *
163
164
  * const wallet = createWalletClient({
164
165
  * chain: addEnsContracts(mainnet),
@@ -148,7 +148,8 @@ export const makeFunctionData = <
148
148
  * @example
149
149
  * import { createWalletClient, custom } from 'viem'
150
150
  * import { mainnet } from 'viem/chains'
151
- * import { addEnsContracts, deleteSubname } from '@ensdomains/ensjs'
151
+ * import { addEnsContracts } from '@ensdomains/ensjs'
152
+ * import { deleteSubname } from '@ensdomains/ensjs/wallet'
152
153
  *
153
154
  * const wallet = createWalletClient({
154
155
  * chain: mainnetWithEns,
@@ -82,7 +82,10 @@ export const makeFunctionData = <
82
82
  * @example
83
83
  * import { createPublicClient, createWalletClient, http, custom } from 'viem'
84
84
  * import { mainnet } from 'viem/chains'
85
- * import { addEnsContracts, commitName, randomSecret, getPrice, registerName } from '@ensdomains/ensjs'
85
+ * import { addEnsContracts } from '@ensdomains/ensjs'
86
+ * import { getPrice } from '@ensdomains/ensjs/public'
87
+ * import { randomSecret } from '@ensdomains/ensjs/utils'
88
+ * import { commitName, registerName } from '@ensdomains/ensjs/wallet'
86
89
  *
87
90
  * const mainnetWithEns = addEnsContracts(mainnet)
88
91
  * const client = createPublicClient({
@@ -99,7 +99,9 @@ export const makeFunctionData = <
99
99
  * @example
100
100
  * import { createPublicClient, createWalletClient, http, custom } from 'viem'
101
101
  * import { mainnet } from 'viem/chains'
102
- * import { addEnsContracts, renewNames, getPrice } from '@ensdomains/ensjs'
102
+ * import { addEnsContracts } from '@ensdomains/ensjs'
103
+ * import { getPrice } from '@ensdomains/ensjs/public'
104
+ * import { renewNames } from '@ensdomains/ensjs/wallet'
103
105
  *
104
106
  * const mainnetWithEns = addEnsContracts(mainnet)
105
107
  * const client = createPublicClient({
@@ -67,7 +67,9 @@ export const makeFunctionData = <
67
67
  * import abi from './abi.json'
68
68
  * import { createWalletClient, custom } from 'viem'
69
69
  * import { mainnet } from 'viem/chains'
70
- * import { addEnsContracts, encodeAbi, setAbiRecord } from '@ensdomains/ensjs'
70
+ * import { addEnsContracts } from '@ensdomains/ensjs'
71
+ * import { encodeAbi } from '@ensdomains/ensjs/utils'
72
+ * import { setAbiRecord } from '@ensdomains/ensjs/wallet'
71
73
  *
72
74
  * const wallet = createWalletClient({
73
75
  * chain: addEnsContracts(mainnet),
@@ -60,7 +60,8 @@ export const makeFunctionData = <
60
60
  * @example
61
61
  * import { createWalletClient, custom } from 'viem'
62
62
  * import { mainnet } from 'viem/chains'
63
- * import { addEnsContracts, setAddressRecord } from '@ensdomains/ensjs'
63
+ * import { addEnsContracts } from '@ensdomains/ensjs'
64
+ * import { setAddressRecord } from '@ensdomains/ensjs/wallet'
64
65
  *
65
66
  * const wallet = createWalletClient({
66
67
  * chain: addEnsContracts(mainnet),
@@ -14,14 +14,14 @@ import type {
14
14
  SimpleTransactionRequest,
15
15
  WriteTransactionParameters,
16
16
  } from '../../types.js'
17
- import { encodeFuses, type CombinedFuseInput } from '../../utils/fuses.js'
17
+ import { encodeFuses, type EncodeFusesInputObject } from '../../utils/fuses.js'
18
18
  import { namehash } from '../../utils/normalise.js'
19
19
 
20
20
  export type SetChildFusesDataParameters = {
21
21
  /** Name to set child fuses for */
22
22
  name: string
23
23
  /** Fuse object or number value to set to */
24
- fuses: Partial<CombinedFuseInput> | number
24
+ fuses: EncodeFusesInputObject
25
25
  /** Expiry to set for fuses */
26
26
  expiry?: number | bigint
27
27
  }
@@ -46,7 +46,7 @@ export const makeFunctionData = <
46
46
  wallet: WalletWithEns<Transport, TChain, TAccount>,
47
47
  { name, fuses, expiry }: SetChildFusesDataParameters,
48
48
  ): SetChildFusesDataReturnType => {
49
- const encodedFuses = encodeFuses(fuses)
49
+ const encodedFuses = encodeFuses({ input: fuses })
50
50
  const labels = name.split('.')
51
51
  const labelHash = labelhash(labels.shift()!)
52
52
  const parentNode = namehash(labels.join('.'))
@@ -69,7 +69,8 @@ export const makeFunctionData = <
69
69
  * @example
70
70
  * import { createWalletClient, custom } from 'viem'
71
71
  * import { mainnet } from 'viem/chains'
72
- * import { addEnsContracts, setChildFuses } from '@ensdomains/ensjs'
72
+ * import { addEnsContracts } from '@ensdomains/ensjs'
73
+ * import { setChildFuses } from '@ensdomains/ensjs/wallet'
73
74
  *
74
75
  * const wallet = createWalletClient({
75
76
  * chain: addEnsContracts(mainnet),
@@ -58,7 +58,8 @@ export const makeFunctionData = <
58
58
  * @example
59
59
  * import { createWalletClient, custom } from 'viem'
60
60
  * import { mainnet } from 'viem/chains'
61
- * import { addEnsContracts, setContentHashRecord } from '@ensdomains/ensjs'
61
+ * import { addEnsContracts } from '@ensdomains/ensjs'
62
+ * import { setContentHashRecord } from '@ensdomains/ensjs/wallet'
62
63
  *
63
64
  * const wallet = createWalletClient({
64
65
  * chain: addEnsContracts(mainnet),
@@ -13,14 +13,17 @@ import type {
13
13
  SimpleTransactionRequest,
14
14
  WriteTransactionParameters,
15
15
  } from '../../types.js'
16
- import { encodeFuses, type CombinedFuseInput } from '../../utils/fuses.js'
16
+ import {
17
+ encodeFuses,
18
+ type EncodeChildFusesInputObject,
19
+ } from '../../utils/fuses.js'
17
20
  import { namehash } from '../../utils/normalise.js'
18
21
 
19
22
  export type SetFusesDataParameters = {
20
23
  /** Name to set fuses for */
21
24
  name: string
22
25
  /** Fuse object to set to */
23
- fuses: Prettify<CombinedFuseInput['child']>
26
+ fuses: EncodeChildFusesInputObject
24
27
  }
25
28
 
26
29
  export type SetFusesDataReturnType = SimpleTransactionRequest
@@ -43,7 +46,7 @@ export const makeFunctionData = <
43
46
  wallet: WalletWithEns<Transport, TChain, TAccount>,
44
47
  { name, fuses }: SetFusesDataParameters,
45
48
  ): SetFusesDataReturnType => {
46
- const encodedFuses = encodeFuses(fuses, 'child')
49
+ const encodedFuses = encodeFuses({ restriction: 'child', input: fuses })
47
50
  return {
48
51
  to: getChainContractAddress({ client: wallet, contract: 'ensNameWrapper' }),
49
52
  data: encodeFunctionData({
@@ -63,7 +66,8 @@ export const makeFunctionData = <
63
66
  * @example
64
67
  * import { createWalletClient, custom } from 'viem'
65
68
  * import { mainnet } from 'viem/chains'
66
- * import { addEnsContracts, setFuses } from '@ensdomains/ensjs'
69
+ * import { addEnsContracts } from '@ensdomains/ensjs'
70
+ * import { setFuses } from '@ensdomains/ensjs/wallet'
67
71
  *
68
72
  * const wallet = createWalletClient({
69
73
  * chain: addEnsContracts(mainnet),
@@ -111,7 +111,8 @@ export const makeFunctionData = <
111
111
  * @example
112
112
  * import { createWalletClient, custom } from 'viem'
113
113
  * import { mainnet } from 'viem/chains'
114
- * import { addEnsContracts, setPrimaryName } from '@ensdomains/ensjs'
114
+ * import { addEnsContracts } from '@ensdomains/ensjs'
115
+ * import { setPrimaryName } from '@ensdomains/ensjs/wallet'
115
116
  *
116
117
  * const wallet = createWalletClient({
117
118
  * chain: addEnsContracts(mainnet),
@@ -76,7 +76,8 @@ export const makeFunctionData = <
76
76
  * @example
77
77
  * import { createWalletClient, custom } from 'viem'
78
78
  * import { mainnet } from 'viem/chains'
79
- * import { addEnsContracts, setRecords } from '@ensdomains/ensjs'
79
+ * import { addEnsContracts } from '@ensdomains/ensjs'
80
+ * import { setRecords } from '@ensdomains/ensjs/wallet'
80
81
  *
81
82
  * const wallet = createWalletClient({
82
83
  * chain: addEnsContracts(mainnet),
@@ -86,7 +86,8 @@ export const makeFunctionData = <
86
86
  * @example
87
87
  * import { createWalletClient, custom } from 'viem'
88
88
  * import { mainnet } from 'viem/chains'
89
- * import { addEnsContracts, setResolver } from '@ensdomains/ensjs'
89
+ * import { addEnsContracts } from '@ensdomains/ensjs'
90
+ * import { setResolver } from '@ensdomains/ensjs/wallet'
90
91
  *
91
92
  * const wallet = createWalletClient({
92
93
  * chain: addEnsContracts(mainnet),