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

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 (534) hide show
  1. package/contracts/OldestResolver.json +170 -0
  2. package/contracts/UniversalResolverv2.json +628 -0
  3. package/dist/cjs/clients/decorators/subgraph.js.map +1 -1
  4. package/dist/cjs/clients/decorators/wallet.js +2 -0
  5. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  6. package/dist/cjs/clients/public.js.map +1 -1
  7. package/dist/cjs/clients/subgraph.js.map +1 -1
  8. package/dist/cjs/contracts/consts.js +53 -2
  9. package/dist/cjs/contracts/consts.js.map +1 -1
  10. package/dist/cjs/contracts/universalResolver.js +46 -1
  11. package/dist/cjs/contracts/universalResolver.js.map +1 -1
  12. package/dist/cjs/dns.js +3 -3
  13. package/dist/cjs/dns.js.map +1 -1
  14. package/dist/cjs/errors/subgraph.js.map +1 -1
  15. package/dist/cjs/errors/utils.js +27 -18
  16. package/dist/cjs/errors/utils.js.map +1 -1
  17. package/dist/cjs/errors/version.js +1 -1
  18. package/dist/cjs/errors/version.js.map +1 -1
  19. package/dist/cjs/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +3 -3
  20. package/dist/cjs/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
  21. package/dist/cjs/functions/dns/importDnsName.js +7 -7
  22. package/dist/cjs/functions/dns/importDnsName.js.map +1 -1
  23. package/dist/cjs/functions/public/_getAbi.js +2 -2
  24. package/dist/cjs/functions/public/_getAbi.js.map +1 -1
  25. package/dist/cjs/functions/public/_getAddr.js +9 -19
  26. package/dist/cjs/functions/public/_getAddr.js.map +1 -1
  27. package/dist/cjs/functions/public/_getContentHash.js +1 -1
  28. package/dist/cjs/functions/public/batch.js.map +1 -1
  29. package/dist/cjs/functions/public/getAbiRecord.js.map +1 -1
  30. package/dist/cjs/functions/public/getAddressRecord.js.map +1 -1
  31. package/dist/cjs/functions/public/getAvailable.js.map +1 -1
  32. package/dist/cjs/functions/public/getContentHashRecord.js.map +1 -1
  33. package/dist/cjs/functions/public/getExpiry.js.map +1 -1
  34. package/dist/cjs/functions/public/getName.js.map +1 -1
  35. package/dist/cjs/functions/public/getOwner.js.map +1 -1
  36. package/dist/cjs/functions/public/getPrice.js.map +1 -1
  37. package/dist/cjs/functions/public/getRecords.js +56 -42
  38. package/dist/cjs/functions/public/getRecords.js.map +1 -1
  39. package/dist/cjs/functions/public/getResolver.js.map +1 -1
  40. package/dist/cjs/functions/public/getSupportedInterfaces.js +1 -1
  41. package/dist/cjs/functions/public/getSupportedInterfaces.js.map +1 -1
  42. package/dist/cjs/functions/public/getTextRecord.js.map +1 -1
  43. package/dist/cjs/functions/public/getWrapperData.js.map +1 -1
  44. package/dist/cjs/functions/public/getWrapperName.js.map +1 -1
  45. package/dist/cjs/functions/public/multicallWrapper.js.map +1 -1
  46. package/dist/cjs/functions/public/universalWrapper.js.map +1 -1
  47. package/dist/cjs/functions/subgraph/client.js.map +1 -1
  48. package/dist/cjs/functions/subgraph/filters.js +3 -0
  49. package/dist/cjs/functions/subgraph/filters.js.map +1 -0
  50. package/dist/cjs/functions/subgraph/getDecodedName.js.map +1 -1
  51. package/dist/cjs/functions/subgraph/getNameHistory.js +4 -3
  52. package/dist/cjs/functions/subgraph/getNameHistory.js.map +1 -1
  53. package/dist/cjs/functions/subgraph/getNamesForAddress.js +155 -190
  54. package/dist/cjs/functions/subgraph/getNamesForAddress.js.map +1 -1
  55. package/dist/cjs/functions/subgraph/getSubgraphRecords.js +34 -26
  56. package/dist/cjs/functions/subgraph/getSubgraphRecords.js.map +1 -1
  57. package/dist/cjs/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
  58. package/dist/cjs/functions/subgraph/getSubnames.js +95 -108
  59. package/dist/cjs/functions/subgraph/getSubnames.js.map +1 -1
  60. package/dist/cjs/functions/subgraph/types.js +3 -0
  61. package/dist/cjs/functions/subgraph/types.js.map +1 -0
  62. package/dist/cjs/functions/subgraph/utils.js.map +1 -1
  63. package/dist/cjs/functions/wallet/clearRecords.js +26 -0
  64. package/dist/cjs/functions/wallet/clearRecords.js.map +1 -0
  65. package/dist/cjs/functions/wallet/commitName.js.map +1 -1
  66. package/dist/cjs/functions/wallet/createSubname.js +1 -1
  67. package/dist/cjs/functions/wallet/createSubname.js.map +1 -1
  68. package/dist/cjs/functions/wallet/deleteSubname.js.map +1 -1
  69. package/dist/cjs/functions/wallet/registerName.js.map +1 -1
  70. package/dist/cjs/functions/wallet/renewNames.js.map +1 -1
  71. package/dist/cjs/functions/wallet/setAbiRecord.js.map +1 -1
  72. package/dist/cjs/functions/wallet/setAddressRecord.js.map +1 -1
  73. package/dist/cjs/functions/wallet/setChildFuses.js +1 -1
  74. package/dist/cjs/functions/wallet/setChildFuses.js.map +1 -1
  75. package/dist/cjs/functions/wallet/setContentHashRecord.js.map +1 -1
  76. package/dist/cjs/functions/wallet/setFuses.js +1 -1
  77. package/dist/cjs/functions/wallet/setFuses.js.map +1 -1
  78. package/dist/cjs/functions/wallet/setPrimaryName.js.map +1 -1
  79. package/dist/cjs/functions/wallet/setRecords.js.map +1 -1
  80. package/dist/cjs/functions/wallet/setResolver.js.map +1 -1
  81. package/dist/cjs/functions/wallet/setTextRecord.js.map +1 -1
  82. package/dist/cjs/functions/wallet/transferName.js.map +1 -1
  83. package/dist/cjs/functions/wallet/unwrapName.js.map +1 -1
  84. package/dist/cjs/functions/wallet/wrapName.js +3 -1
  85. package/dist/cjs/functions/wallet/wrapName.js.map +1 -1
  86. package/dist/cjs/index.js +1 -2
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/subgraph.js +4 -1
  89. package/dist/cjs/subgraph.js.map +1 -1
  90. package/dist/cjs/utils/contentHash.js +60 -131
  91. package/dist/cjs/utils/contentHash.js.map +1 -1
  92. package/dist/cjs/utils/encoders/encodeAbi.js +33 -3
  93. package/dist/cjs/utils/encoders/encodeAbi.js.map +1 -1
  94. package/dist/cjs/utils/encoders/encodeClearRecords.js +12 -0
  95. package/dist/cjs/utils/encoders/encodeClearRecords.js.map +1 -0
  96. package/dist/cjs/utils/encoders/encodeSetAddr.js +5 -16
  97. package/dist/cjs/utils/encoders/encodeSetAddr.js.map +1 -1
  98. package/dist/cjs/utils/encoders/encodeSetContentHash.js +1 -4
  99. package/dist/cjs/utils/encoders/encodeSetContentHash.js.map +1 -1
  100. package/dist/cjs/utils/format.js +1 -5
  101. package/dist/cjs/utils/format.js.map +1 -1
  102. package/dist/cjs/utils/fuses.js +184 -200
  103. package/dist/cjs/utils/fuses.js.map +1 -1
  104. package/dist/cjs/utils/generateRecordCallArray.js +6 -10
  105. package/dist/cjs/utils/generateRecordCallArray.js.map +1 -1
  106. package/dist/cjs/utils/getRevertErrorData.js +4 -1
  107. package/dist/cjs/utils/getRevertErrorData.js.map +1 -1
  108. package/dist/cjs/utils/index.js +31 -7
  109. package/dist/cjs/utils/index.js.map +1 -1
  110. package/dist/cjs/utils/normaliseCoinId.js +35 -0
  111. package/dist/cjs/utils/normaliseCoinId.js.map +1 -0
  112. package/dist/cjs/utils/registerHelpers.js +3 -1
  113. package/dist/cjs/utils/registerHelpers.js.map +1 -1
  114. package/dist/cjs/wallet.js +3 -1
  115. package/dist/cjs/wallet.js.map +1 -1
  116. package/dist/esm/clients/decorators/subgraph.js.map +1 -1
  117. package/dist/esm/clients/decorators/wallet.js +2 -0
  118. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  119. package/dist/esm/clients/public.js.map +1 -1
  120. package/dist/esm/clients/subgraph.js.map +1 -1
  121. package/dist/esm/contracts/consts.js +53 -2
  122. package/dist/esm/contracts/consts.js.map +1 -1
  123. package/dist/esm/contracts/universalResolver.js +46 -1
  124. package/dist/esm/contracts/universalResolver.js.map +1 -1
  125. package/dist/esm/dns.js +1 -1
  126. package/dist/esm/dns.js.map +1 -1
  127. package/dist/esm/errors/subgraph.js.map +1 -1
  128. package/dist/esm/errors/utils.js +24 -16
  129. package/dist/esm/errors/utils.js.map +1 -1
  130. package/dist/esm/errors/version.js +1 -1
  131. package/dist/esm/errors/version.js.map +1 -1
  132. package/dist/esm/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +10 -10
  133. package/dist/esm/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
  134. package/dist/esm/functions/dns/getDnsOwner.js +1 -1
  135. package/dist/esm/functions/dns/importDnsName.js +13 -12
  136. package/dist/esm/functions/dns/importDnsName.js.map +1 -1
  137. package/dist/esm/functions/public/_getAbi.js +2 -2
  138. package/dist/esm/functions/public/_getAbi.js.map +1 -1
  139. package/dist/esm/functions/public/_getAddr.js +10 -20
  140. package/dist/esm/functions/public/_getAddr.js.map +1 -1
  141. package/dist/esm/functions/public/_getContentHash.js +2 -2
  142. package/dist/esm/functions/public/batch.js +2 -1
  143. package/dist/esm/functions/public/batch.js.map +1 -1
  144. package/dist/esm/functions/public/getAbiRecord.js +2 -1
  145. package/dist/esm/functions/public/getAbiRecord.js.map +1 -1
  146. package/dist/esm/functions/public/getAddressRecord.js +2 -1
  147. package/dist/esm/functions/public/getAddressRecord.js.map +1 -1
  148. package/dist/esm/functions/public/getAvailable.js +2 -1
  149. package/dist/esm/functions/public/getAvailable.js.map +1 -1
  150. package/dist/esm/functions/public/getContentHashRecord.js +2 -1
  151. package/dist/esm/functions/public/getContentHashRecord.js.map +1 -1
  152. package/dist/esm/functions/public/getExpiry.js +2 -1
  153. package/dist/esm/functions/public/getExpiry.js.map +1 -1
  154. package/dist/esm/functions/public/getName.js +2 -1
  155. package/dist/esm/functions/public/getName.js.map +1 -1
  156. package/dist/esm/functions/public/getOwner.js +3 -2
  157. package/dist/esm/functions/public/getOwner.js.map +1 -1
  158. package/dist/esm/functions/public/getPrice.js +3 -2
  159. package/dist/esm/functions/public/getPrice.js.map +1 -1
  160. package/dist/esm/functions/public/getRecords.js +59 -48
  161. package/dist/esm/functions/public/getRecords.js.map +1 -1
  162. package/dist/esm/functions/public/getResolver.js +2 -1
  163. package/dist/esm/functions/public/getResolver.js.map +1 -1
  164. package/dist/esm/functions/public/getSupportedInterfaces.js +24 -2
  165. package/dist/esm/functions/public/getSupportedInterfaces.js.map +1 -1
  166. package/dist/esm/functions/public/getTextRecord.js +2 -1
  167. package/dist/esm/functions/public/getTextRecord.js.map +1 -1
  168. package/dist/esm/functions/public/getWrapperData.js +2 -1
  169. package/dist/esm/functions/public/getWrapperData.js.map +1 -1
  170. package/dist/esm/functions/public/getWrapperName.js +2 -1
  171. package/dist/esm/functions/public/getWrapperName.js.map +1 -1
  172. package/dist/esm/functions/public/multicallWrapper.js.map +1 -1
  173. package/dist/esm/functions/public/universalWrapper.js.map +1 -1
  174. package/dist/esm/functions/subgraph/client.js.map +1 -1
  175. package/dist/esm/functions/subgraph/filters.js +2 -0
  176. package/dist/esm/functions/subgraph/filters.js.map +1 -0
  177. package/dist/esm/functions/subgraph/getDecodedName.js +2 -1
  178. package/dist/esm/functions/subgraph/getDecodedName.js.map +1 -1
  179. package/dist/esm/functions/subgraph/getNameHistory.js +8 -6
  180. package/dist/esm/functions/subgraph/getNameHistory.js.map +1 -1
  181. package/dist/esm/functions/subgraph/getNamesForAddress.js +163 -192
  182. package/dist/esm/functions/subgraph/getNamesForAddress.js.map +1 -1
  183. package/dist/esm/functions/subgraph/getSubgraphRecords.js +36 -27
  184. package/dist/esm/functions/subgraph/getSubgraphRecords.js.map +1 -1
  185. package/dist/esm/functions/subgraph/getSubgraphRegistrant.js +2 -1
  186. package/dist/esm/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
  187. package/dist/esm/functions/subgraph/getSubnames.js +103 -112
  188. package/dist/esm/functions/subgraph/getSubnames.js.map +1 -1
  189. package/dist/esm/functions/subgraph/types.js +2 -0
  190. package/dist/esm/functions/subgraph/types.js.map +1 -0
  191. package/dist/esm/functions/subgraph/utils.js.map +1 -1
  192. package/dist/esm/functions/wallet/clearRecords.js +44 -0
  193. package/dist/esm/functions/wallet/clearRecords.js.map +1 -0
  194. package/dist/esm/functions/wallet/commitName.js +3 -1
  195. package/dist/esm/functions/wallet/commitName.js.map +1 -1
  196. package/dist/esm/functions/wallet/createSubname.js +3 -2
  197. package/dist/esm/functions/wallet/createSubname.js.map +1 -1
  198. package/dist/esm/functions/wallet/deleteSubname.js +2 -1
  199. package/dist/esm/functions/wallet/deleteSubname.js.map +1 -1
  200. package/dist/esm/functions/wallet/registerName.js +4 -1
  201. package/dist/esm/functions/wallet/registerName.js.map +1 -1
  202. package/dist/esm/functions/wallet/renewNames.js +3 -1
  203. package/dist/esm/functions/wallet/renewNames.js.map +1 -1
  204. package/dist/esm/functions/wallet/setAbiRecord.js +3 -1
  205. package/dist/esm/functions/wallet/setAbiRecord.js.map +1 -1
  206. package/dist/esm/functions/wallet/setAddressRecord.js +2 -1
  207. package/dist/esm/functions/wallet/setAddressRecord.js.map +1 -1
  208. package/dist/esm/functions/wallet/setChildFuses.js +3 -2
  209. package/dist/esm/functions/wallet/setChildFuses.js.map +1 -1
  210. package/dist/esm/functions/wallet/setContentHashRecord.js +2 -1
  211. package/dist/esm/functions/wallet/setContentHashRecord.js.map +1 -1
  212. package/dist/esm/functions/wallet/setFuses.js +4 -3
  213. package/dist/esm/functions/wallet/setFuses.js.map +1 -1
  214. package/dist/esm/functions/wallet/setPrimaryName.js +2 -1
  215. package/dist/esm/functions/wallet/setPrimaryName.js.map +1 -1
  216. package/dist/esm/functions/wallet/setRecords.js +2 -1
  217. package/dist/esm/functions/wallet/setRecords.js.map +1 -1
  218. package/dist/esm/functions/wallet/setResolver.js +2 -1
  219. package/dist/esm/functions/wallet/setResolver.js.map +1 -1
  220. package/dist/esm/functions/wallet/setTextRecord.js +2 -1
  221. package/dist/esm/functions/wallet/setTextRecord.js.map +1 -1
  222. package/dist/esm/functions/wallet/transferName.js +2 -1
  223. package/dist/esm/functions/wallet/transferName.js.map +1 -1
  224. package/dist/esm/functions/wallet/unwrapName.js +2 -1
  225. package/dist/esm/functions/wallet/unwrapName.js.map +1 -1
  226. package/dist/esm/functions/wallet/wrapName.js +6 -3
  227. package/dist/esm/functions/wallet/wrapName.js.map +1 -1
  228. package/dist/esm/index.js +1 -1
  229. package/dist/esm/index.js.map +1 -1
  230. package/dist/esm/subgraph.js +1 -0
  231. package/dist/esm/subgraph.js.map +1 -1
  232. package/dist/esm/utils/contentHash.js +56 -128
  233. package/dist/esm/utils/contentHash.js.map +1 -1
  234. package/dist/esm/utils/encoders/encodeAbi.js +30 -2
  235. package/dist/esm/utils/encoders/encodeAbi.js.map +1 -1
  236. package/dist/esm/utils/encoders/encodeClearRecords.js +8 -0
  237. package/dist/esm/utils/encoders/encodeClearRecords.js.map +1 -0
  238. package/dist/esm/utils/encoders/encodeSetAddr.js +5 -16
  239. package/dist/esm/utils/encoders/encodeSetAddr.js.map +1 -1
  240. package/dist/esm/utils/encoders/encodeSetContentHash.js +2 -5
  241. package/dist/esm/utils/encoders/encodeSetContentHash.js.map +1 -1
  242. package/dist/esm/utils/format.js +0 -2
  243. package/dist/esm/utils/format.js.map +1 -1
  244. package/dist/esm/utils/fuses.js +183 -201
  245. package/dist/esm/utils/fuses.js.map +1 -1
  246. package/dist/esm/utils/generateRecordCallArray.js +7 -10
  247. package/dist/esm/utils/generateRecordCallArray.js.map +1 -1
  248. package/dist/esm/utils/getRevertErrorData.js +4 -1
  249. package/dist/esm/utils/getRevertErrorData.js.map +1 -1
  250. package/dist/esm/utils/index.js +5 -3
  251. package/dist/esm/utils/index.js.map +1 -1
  252. package/dist/esm/utils/normaliseCoinId.js +30 -0
  253. package/dist/esm/utils/normaliseCoinId.js.map +1 -0
  254. package/dist/esm/utils/registerHelpers.js +4 -2
  255. package/dist/esm/utils/registerHelpers.js.map +1 -1
  256. package/dist/esm/wallet.js +1 -0
  257. package/dist/esm/wallet.js.map +1 -1
  258. package/dist/types/clients/decorators/public.d.ts +1 -519
  259. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  260. package/dist/types/clients/decorators/subgraph.d.ts +2 -520
  261. package/dist/types/clients/decorators/subgraph.d.ts.map +1 -1
  262. package/dist/types/clients/decorators/wallet.d.ts +66 -47
  263. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  264. package/dist/types/clients/public.d.ts +24 -265
  265. package/dist/types/clients/public.d.ts.map +1 -1
  266. package/dist/types/clients/subgraph.d.ts +19 -260
  267. package/dist/types/clients/subgraph.d.ts.map +1 -1
  268. package/dist/types/clients/wallet.d.ts +60 -92
  269. package/dist/types/clients/wallet.d.ts.map +1 -1
  270. package/dist/types/contracts/consts.d.ts +52 -3
  271. package/dist/types/contracts/consts.d.ts.map +1 -1
  272. package/dist/types/contracts/universalResolver.d.ts +133 -1
  273. package/dist/types/contracts/universalResolver.d.ts.map +1 -1
  274. package/dist/types/dns.d.ts +2 -2
  275. package/dist/types/dns.d.ts.map +1 -1
  276. package/dist/types/errors/subgraph.d.ts +4 -4
  277. package/dist/types/errors/subgraph.d.ts.map +1 -1
  278. package/dist/types/errors/utils.d.ts +16 -13
  279. package/dist/types/errors/utils.d.ts.map +1 -1
  280. package/dist/types/errors/version.d.ts +1 -1
  281. package/dist/types/errors/version.d.ts.map +1 -1
  282. package/dist/types/functions/dns/getDnsImportData.d.ts +39 -0
  283. package/dist/types/functions/dns/{prepareDnsImport.d.ts.map → getDnsImportData.d.ts.map} +1 -1
  284. package/dist/types/functions/dns/getDnsOwner.d.ts +1 -1
  285. package/dist/types/functions/dns/importDnsName.d.ts +88 -102
  286. package/dist/types/functions/dns/importDnsName.d.ts.map +1 -1
  287. package/dist/types/functions/public/_getAddr.d.ts.map +1 -1
  288. package/dist/types/functions/public/batch.d.ts +2 -1
  289. package/dist/types/functions/public/batch.d.ts.map +1 -1
  290. package/dist/types/functions/public/getAbiRecord.d.ts +2 -1
  291. package/dist/types/functions/public/getAbiRecord.d.ts.map +1 -1
  292. package/dist/types/functions/public/getAddressRecord.d.ts +2 -1
  293. package/dist/types/functions/public/getAddressRecord.d.ts.map +1 -1
  294. package/dist/types/functions/public/getAvailable.d.ts +2 -1
  295. package/dist/types/functions/public/getAvailable.d.ts.map +1 -1
  296. package/dist/types/functions/public/getContentHashRecord.d.ts +2 -1
  297. package/dist/types/functions/public/getContentHashRecord.d.ts.map +1 -1
  298. package/dist/types/functions/public/getExpiry.d.ts +2 -1
  299. package/dist/types/functions/public/getExpiry.d.ts.map +1 -1
  300. package/dist/types/functions/public/getName.d.ts +2 -1
  301. package/dist/types/functions/public/getName.d.ts.map +1 -1
  302. package/dist/types/functions/public/getOwner.d.ts +19 -9
  303. package/dist/types/functions/public/getOwner.d.ts.map +1 -1
  304. package/dist/types/functions/public/getPrice.d.ts +3 -2
  305. package/dist/types/functions/public/getPrice.d.ts.map +1 -1
  306. package/dist/types/functions/public/getRecords.d.ts +3 -2
  307. package/dist/types/functions/public/getRecords.d.ts.map +1 -1
  308. package/dist/types/functions/public/getResolver.d.ts +2 -1
  309. package/dist/types/functions/public/getResolver.d.ts.map +1 -1
  310. package/dist/types/functions/public/getSupportedInterfaces.d.ts +41 -4
  311. package/dist/types/functions/public/getSupportedInterfaces.d.ts.map +1 -1
  312. package/dist/types/functions/public/getTextRecord.d.ts +2 -1
  313. package/dist/types/functions/public/getTextRecord.d.ts.map +1 -1
  314. package/dist/types/functions/public/getWrapperData.d.ts +4 -3
  315. package/dist/types/functions/public/getWrapperData.d.ts.map +1 -1
  316. package/dist/types/functions/public/getWrapperName.d.ts +2 -1
  317. package/dist/types/functions/public/getWrapperName.d.ts.map +1 -1
  318. package/dist/types/functions/subgraph/client.d.ts +2 -2
  319. package/dist/types/functions/subgraph/client.d.ts.map +1 -1
  320. package/dist/types/functions/subgraph/filters.d.ts +693 -0
  321. package/dist/types/functions/subgraph/filters.d.ts.map +1 -0
  322. package/dist/types/functions/subgraph/getDecodedName.d.ts +2 -1
  323. package/dist/types/functions/subgraph/getDecodedName.d.ts.map +1 -1
  324. package/dist/types/functions/subgraph/getNameHistory.d.ts +2 -1
  325. package/dist/types/functions/subgraph/getNameHistory.d.ts.map +1 -1
  326. package/dist/types/functions/subgraph/getNamesForAddress.d.ts +7 -2
  327. package/dist/types/functions/subgraph/getNamesForAddress.d.ts.map +1 -1
  328. package/dist/types/functions/subgraph/getSubgraphRecords.d.ts +2 -1
  329. package/dist/types/functions/subgraph/getSubgraphRecords.d.ts.map +1 -1
  330. package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts +2 -1
  331. package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts.map +1 -1
  332. package/dist/types/functions/subgraph/getSubnames.d.ts +5 -2
  333. package/dist/types/functions/subgraph/getSubnames.d.ts.map +1 -1
  334. package/dist/types/functions/subgraph/types.d.ts +13 -0
  335. package/dist/types/functions/subgraph/types.d.ts.map +1 -0
  336. package/dist/types/functions/subgraph/utils.d.ts +2 -2
  337. package/dist/types/functions/subgraph/utils.d.ts.map +1 -1
  338. package/dist/types/functions/wallet/clearRecords.d.ts +555 -0
  339. package/dist/types/functions/wallet/clearRecords.d.ts.map +1 -0
  340. package/dist/types/functions/wallet/commitName.d.ts +80 -93
  341. package/dist/types/functions/wallet/commitName.d.ts.map +1 -1
  342. package/dist/types/functions/wallet/createSubname.d.ts +82 -96
  343. package/dist/types/functions/wallet/createSubname.d.ts.map +1 -1
  344. package/dist/types/functions/wallet/deleteSubname.d.ts +79 -93
  345. package/dist/types/functions/wallet/deleteSubname.d.ts.map +1 -1
  346. package/dist/types/functions/wallet/registerName.d.ts +80 -89
  347. package/dist/types/functions/wallet/registerName.d.ts.map +1 -1
  348. package/dist/types/functions/wallet/renewNames.d.ts +79 -89
  349. package/dist/types/functions/wallet/renewNames.d.ts.map +1 -1
  350. package/dist/types/functions/wallet/setAbiRecord.d.ts +80 -93
  351. package/dist/types/functions/wallet/setAbiRecord.d.ts.map +1 -1
  352. package/dist/types/functions/wallet/setAddressRecord.d.ts +79 -93
  353. package/dist/types/functions/wallet/setAddressRecord.d.ts.map +1 -1
  354. package/dist/types/functions/wallet/setChildFuses.d.ts +81 -95
  355. package/dist/types/functions/wallet/setChildFuses.d.ts.map +1 -1
  356. package/dist/types/functions/wallet/setContentHashRecord.d.ts +79 -93
  357. package/dist/types/functions/wallet/setContentHashRecord.d.ts.map +1 -1
  358. package/dist/types/functions/wallet/setFuses.d.ts +81 -95
  359. package/dist/types/functions/wallet/setFuses.d.ts.map +1 -1
  360. package/dist/types/functions/wallet/setPrimaryName.d.ts +79 -93
  361. package/dist/types/functions/wallet/setPrimaryName.d.ts.map +1 -1
  362. package/dist/types/functions/wallet/setRecords.d.ts +79 -93
  363. package/dist/types/functions/wallet/setRecords.d.ts.map +1 -1
  364. package/dist/types/functions/wallet/setResolver.d.ts +79 -93
  365. package/dist/types/functions/wallet/setResolver.d.ts.map +1 -1
  366. package/dist/types/functions/wallet/setTextRecord.d.ts +79 -93
  367. package/dist/types/functions/wallet/setTextRecord.d.ts.map +1 -1
  368. package/dist/types/functions/wallet/transferName.d.ts +80 -94
  369. package/dist/types/functions/wallet/transferName.d.ts.map +1 -1
  370. package/dist/types/functions/wallet/unwrapName.d.ts +79 -93
  371. package/dist/types/functions/wallet/unwrapName.d.ts.map +1 -1
  372. package/dist/types/functions/wallet/wrapName.d.ts +81 -95
  373. package/dist/types/functions/wallet/wrapName.d.ts.map +1 -1
  374. package/dist/types/index.d.ts +1 -1
  375. package/dist/types/index.d.ts.map +1 -1
  376. package/dist/types/subgraph.d.ts +1 -0
  377. package/dist/types/subgraph.d.ts.map +1 -1
  378. package/dist/types/types.d.ts +3 -1
  379. package/dist/types/types.d.ts.map +1 -1
  380. package/dist/types/utils/contentHash.d.ts +10 -11
  381. package/dist/types/utils/contentHash.d.ts.map +1 -1
  382. package/dist/types/utils/encoders/encodeAbi.d.ts +8 -5
  383. package/dist/types/utils/encoders/encodeAbi.d.ts.map +1 -1
  384. package/dist/types/utils/encoders/encodeClearRecords.d.ts +3 -0
  385. package/dist/types/utils/encoders/encodeClearRecords.d.ts.map +1 -0
  386. package/dist/types/utils/encoders/encodeSetAddr.d.ts.map +1 -1
  387. package/dist/types/utils/encoders/encodeSetContentHash.d.ts.map +1 -1
  388. package/dist/types/utils/format.d.ts +0 -2
  389. package/dist/types/utils/format.d.ts.map +1 -1
  390. package/dist/types/utils/fuses.d.ts +164 -125
  391. package/dist/types/utils/fuses.d.ts.map +1 -1
  392. package/dist/types/utils/generateRecordCallArray.d.ts +5 -5
  393. package/dist/types/utils/generateRecordCallArray.d.ts.map +1 -1
  394. package/dist/types/utils/getRevertErrorData.d.ts.map +1 -1
  395. package/dist/types/utils/index.d.ts +5 -3
  396. package/dist/types/utils/index.d.ts.map +1 -1
  397. package/dist/types/utils/normaliseCoinId.d.ts +10 -0
  398. package/dist/types/utils/normaliseCoinId.d.ts.map +1 -0
  399. package/dist/types/utils/registerHelpers.d.ts +2 -2
  400. package/dist/types/utils/registerHelpers.d.ts.map +1 -1
  401. package/dist/types/wallet.d.ts +18 -17
  402. package/dist/types/wallet.d.ts.map +1 -1
  403. package/package.json +9 -9
  404. package/src/clients/decorators/subgraph.ts +1 -0
  405. package/src/clients/decorators/wallet.ts +41 -3
  406. package/src/clients/public.ts +3 -2
  407. package/src/clients/subgraph.ts +3 -2
  408. package/src/clients/wallet.ts +1 -1
  409. package/src/contracts/consts.ts +58 -13
  410. package/src/contracts/universalResolver.ts +46 -1
  411. package/src/dns.ts +7 -5
  412. package/src/errors/subgraph.ts +4 -4
  413. package/src/errors/utils.ts +29 -18
  414. package/src/errors/version.ts +1 -1
  415. package/src/functions/dns/{prepareDnsImport.ts → getDnsImportData.ts} +13 -13
  416. package/src/functions/dns/getDnsOwner.ts +1 -1
  417. package/src/functions/dns/importDnsName.ts +21 -15
  418. package/src/functions/public/_getAbi.ts +2 -2
  419. package/src/functions/public/_getAddr.ts +16 -23
  420. package/src/functions/public/_getContentHash.ts +2 -2
  421. package/src/functions/public/batch.ts +2 -1
  422. package/src/functions/public/getAbiRecord.ts +2 -1
  423. package/src/functions/public/getAddressRecord.ts +2 -1
  424. package/src/functions/public/getAvailable.ts +2 -1
  425. package/src/functions/public/getContentHashRecord.ts +2 -1
  426. package/src/functions/public/getExpiry.ts +2 -1
  427. package/src/functions/public/getName.ts +3 -2
  428. package/src/functions/public/getOwner.ts +54 -33
  429. package/src/functions/public/getPrice.ts +3 -2
  430. package/src/functions/public/getRecords.ts +130 -114
  431. package/src/functions/public/getResolver.ts +3 -2
  432. package/src/functions/public/getSupportedInterfaces.ts +70 -10
  433. package/src/functions/public/getTextRecord.ts +2 -1
  434. package/src/functions/public/getWrapperData.ts +5 -4
  435. package/src/functions/public/getWrapperName.ts +3 -2
  436. package/src/functions/public/multicallWrapper.ts +1 -1
  437. package/src/functions/public/universalWrapper.ts +1 -1
  438. package/src/functions/subgraph/client.ts +2 -2
  439. package/src/functions/subgraph/filters.ts +702 -0
  440. package/src/functions/subgraph/getDecodedName.ts +2 -1
  441. package/src/functions/subgraph/getNameHistory.ts +8 -6
  442. package/src/functions/subgraph/getNamesForAddress.ts +199 -195
  443. package/src/functions/subgraph/getSubgraphRecords.ts +65 -33
  444. package/src/functions/subgraph/getSubgraphRegistrant.ts +2 -1
  445. package/src/functions/subgraph/getSubnames.ts +123 -114
  446. package/src/functions/subgraph/types.ts +13 -0
  447. package/src/functions/subgraph/utils.ts +2 -2
  448. package/src/functions/wallet/clearRecords.ts +97 -0
  449. package/src/functions/wallet/commitName.ts +3 -1
  450. package/src/functions/wallet/createSubname.ts +6 -5
  451. package/src/functions/wallet/deleteSubname.ts +2 -1
  452. package/src/functions/wallet/registerName.ts +4 -1
  453. package/src/functions/wallet/renewNames.ts +3 -1
  454. package/src/functions/wallet/setAbiRecord.ts +3 -1
  455. package/src/functions/wallet/setAddressRecord.ts +2 -1
  456. package/src/functions/wallet/setChildFuses.ts +5 -4
  457. package/src/functions/wallet/setContentHashRecord.ts +2 -1
  458. package/src/functions/wallet/setFuses.ts +8 -4
  459. package/src/functions/wallet/setPrimaryName.ts +2 -1
  460. package/src/functions/wallet/setRecords.ts +2 -1
  461. package/src/functions/wallet/setResolver.ts +2 -1
  462. package/src/functions/wallet/setTextRecord.ts +2 -1
  463. package/src/functions/wallet/transferName.ts +3 -2
  464. package/src/functions/wallet/unwrapName.ts +2 -1
  465. package/src/functions/wallet/wrapName.ts +10 -4
  466. package/src/index.ts +0 -1
  467. package/src/subgraph.ts +5 -0
  468. package/src/types.ts +6 -3
  469. package/src/utils/contentHash.ts +65 -113
  470. package/src/utils/encoders/encodeAbi.ts +37 -8
  471. package/src/utils/encoders/encodeClearRecords.ts +9 -0
  472. package/src/utils/encoders/encodeSetAddr.ts +5 -16
  473. package/src/utils/encoders/encodeSetContentHash.ts +2 -4
  474. package/src/utils/format.ts +0 -6
  475. package/src/utils/fuses.ts +312 -308
  476. package/src/utils/generateRecordCallArray.ts +10 -14
  477. package/src/utils/getRevertErrorData.ts +3 -1
  478. package/src/utils/index.ts +37 -5
  479. package/src/utils/normaliseCoinId.ts +36 -0
  480. package/src/utils/registerHelpers.ts +5 -3
  481. package/src/wallet.ts +41 -0
  482. package/dist/types/functions/dns/prepareDnsImport.d.ts +0 -39
  483. package/src/@types/@ensdomains/content-hash.d.ts +0 -1
  484. package/src/functions/dns/getDnsOwner.test.ts +0 -195
  485. package/src/functions/dns/importDnsName.test.ts +0 -117
  486. package/src/functions/dns/prepareDnsImport.test.ts +0 -115
  487. package/src/functions/public/batch.test.ts +0 -67
  488. package/src/functions/public/ccip.test.ts +0 -78
  489. package/src/functions/public/getAbiRecord.test.ts +0 -174
  490. package/src/functions/public/getAddressRecord.test.ts +0 -83
  491. package/src/functions/public/getAvailable.test.ts +0 -17
  492. package/src/functions/public/getContentHashRecord.test.ts +0 -28
  493. package/src/functions/public/getExpiry.test.ts +0 -48
  494. package/src/functions/public/getName.test.ts +0 -66
  495. package/src/functions/public/getOwner.test.ts +0 -87
  496. package/src/functions/public/getPrice.test.ts +0 -45
  497. package/src/functions/public/getRecords.test.ts +0 -49
  498. package/src/functions/public/getResolver.test.ts +0 -12
  499. package/src/functions/public/getTextRecord.test.ts +0 -20
  500. package/src/functions/public/getWrapperData.test.ts +0 -79
  501. package/src/functions/public/getWrapperName.test.ts +0 -19
  502. package/src/functions/subgraph/client.test.ts +0 -170
  503. package/src/functions/subgraph/getDecodedName.test.ts +0 -31
  504. package/src/functions/subgraph/getNameHistory.test.ts +0 -39
  505. package/src/functions/subgraph/getNamesForAddress.test.ts +0 -244
  506. package/src/functions/subgraph/getSubgraphRecords.test.ts +0 -74
  507. package/src/functions/subgraph/getSubgraphRegistrant.test.ts +0 -34
  508. package/src/functions/subgraph/getSubnames.test.ts +0 -202
  509. package/src/functions/wallet/commitName.test.ts +0 -58
  510. package/src/functions/wallet/createSubname.test.ts +0 -73
  511. package/src/functions/wallet/deleteSubname.test.ts +0 -150
  512. package/src/functions/wallet/registerName.test.ts +0 -81
  513. package/src/functions/wallet/renewNames.test.ts +0 -92
  514. package/src/functions/wallet/setAbiRecord.test.ts +0 -156
  515. package/src/functions/wallet/setAddressRecord.test.ts +0 -121
  516. package/src/functions/wallet/setChildFuses.test.ts +0 -97
  517. package/src/functions/wallet/setContentHashRecord.test.ts +0 -69
  518. package/src/functions/wallet/setFuses.test.ts +0 -287
  519. package/src/functions/wallet/setPrimaryName.test.ts +0 -71
  520. package/src/functions/wallet/setRecords.test.ts +0 -127
  521. package/src/functions/wallet/setResolver.test.ts +0 -114
  522. package/src/functions/wallet/setTextRecord.test.ts +0 -67
  523. package/src/functions/wallet/transferName.test.ts +0 -201
  524. package/src/functions/wallet/unwrapName.test.ts +0 -93
  525. package/src/functions/wallet/wrapName.test.ts +0 -195
  526. package/src/utils/generateRecordCallArray.test.ts +0 -84
  527. package/src/utils/labels.test.ts +0 -163
  528. package/src/utils/makeLabelNodeAndParent.test.ts +0 -11
  529. package/src/utils/makeSafeSecondsDate.test.ts +0 -14
  530. package/src/utils/normalise.test.ts +0 -35
  531. package/src/utils/ownerFromContract.test.ts +0 -52
  532. package/src/utils/registerHelpers.test.ts +0 -159
  533. package/src/utils/validation.test.ts +0 -170
  534. package/src/utils/wrapper.test.ts +0 -46
@@ -1,5 +1,10 @@
1
- import { formatsByCoinType, formatsByName } from '@ensdomains/address-encoder'
2
- import { decodeFunctionResult, encodeFunctionData, trim, type Hex } from 'viem'
1
+ import {
2
+ decodeFunctionResult,
3
+ encodeFunctionData,
4
+ hexToBytes,
5
+ trim,
6
+ type Hex,
7
+ } from 'viem'
3
8
  import { namehash } from '../../utils/normalise.js'
4
9
 
5
10
  import type { ClientWithEns } from '../../contracts/consts.js'
@@ -7,7 +12,6 @@ import {
7
12
  publicResolverMultiAddrSnippet,
8
13
  publicResolverSingleAddrSnippet,
9
14
  } from '../../contracts/publicResolver.js'
10
- import { CoinFormatterNotFoundError } from '../../errors/public.js'
11
15
  import type {
12
16
  DecodedAddr,
13
17
  Prettify,
@@ -15,6 +19,7 @@ import type {
15
19
  } from '../../types.js'
16
20
  import { EMPTY_ADDRESS } from '../../utils/consts.js'
17
21
  import { generateFunction } from '../../utils/generateFunction.js'
22
+ import { getCoderFromCoin } from '../../utils/normaliseCoinId.js'
18
23
 
19
24
  export type InternalGetAddrParameters = {
20
25
  /** Name to get the address record for */
@@ -31,7 +36,8 @@ const encode = (
31
36
  _client: ClientWithEns,
32
37
  { name, coin = 60, bypassFormat }: InternalGetAddrParameters,
33
38
  ): SimpleTransactionRequest => {
34
- if (coin === 60 || coin === '60') {
39
+ const coder = getCoderFromCoin(coin)
40
+ if (coder.coinType === 60) {
35
41
  return {
36
42
  to: EMPTY_ADDRESS,
37
43
  data: encodeFunctionData({
@@ -52,19 +58,13 @@ const encode = (
52
58
  }),
53
59
  }
54
60
  }
55
- const formatter =
56
- typeof coin === 'string' && Number.isNaN(parseInt(coin))
57
- ? formatsByName[coin]
58
- : formatsByCoinType[typeof coin === 'number' ? coin : parseInt(coin)]
59
-
60
- if (!formatter) throw new CoinFormatterNotFoundError({ coinType: coin })
61
61
 
62
62
  return {
63
63
  to: EMPTY_ADDRESS,
64
64
  data: encodeFunctionData({
65
65
  abi: publicResolverMultiAddrSnippet,
66
66
  functionName: 'addr',
67
- args: [namehash(name), BigInt(formatter.coinType)],
67
+ args: [namehash(name), BigInt(coder.coinType)],
68
68
  }),
69
69
  }
70
70
  }
@@ -72,21 +72,14 @@ const encode = (
72
72
  const decode = async (
73
73
  _client: ClientWithEns,
74
74
  data: Hex,
75
- { coin }: InternalGetAddrParameters,
75
+ { coin = 60 }: InternalGetAddrParameters,
76
76
  ): Promise<InternalGetAddrReturnType> => {
77
77
  if (data === '0x') return null
78
- if (!coin) {
79
- coin = 60
80
- }
81
-
82
- const formatter =
83
- typeof coin === 'string' && Number.isNaN(parseInt(coin))
84
- ? formatsByName[coin]
85
- : formatsByCoinType[typeof coin === 'number' ? coin : parseInt(coin)]
86
78
 
79
+ const coder = getCoderFromCoin(coin)
87
80
  let response: Hex
88
81
 
89
- if (coin === 60 || coin === '60') {
82
+ if (coder.coinType === 60) {
90
83
  response = decodeFunctionResult({
91
84
  abi: publicResolverSingleAddrSnippet,
92
85
  functionName: 'addr',
@@ -107,13 +100,13 @@ const decode = async (
107
100
  return null
108
101
  }
109
102
 
110
- const decodedAddr = formatter.encoder(Buffer.from(response.slice(2), 'hex'))
103
+ const decodedAddr = coder.encode(hexToBytes(response))
111
104
 
112
105
  if (!decodedAddr) {
113
106
  return null
114
107
  }
115
108
 
116
- return { id: formatter.coinType, name: formatter.name, value: decodedAddr }
109
+ return { id: coder.coinType, name: coder.name, value: decodedAddr }
117
110
  }
118
111
 
119
112
  const _getAddr = generateFunction({ encode, decode })
@@ -4,7 +4,7 @@ import { publicResolverContenthashSnippet } from '../../contracts/publicResolver
4
4
  import type { Prettify, SimpleTransactionRequest } from '../../types.js'
5
5
  import { EMPTY_ADDRESS } from '../../utils/consts.js'
6
6
  import {
7
- decodeContenthash,
7
+ decodeContentHash,
8
8
  type DecodedContentHash,
9
9
  } from '../../utils/contentHash.js'
10
10
  import { generateFunction } from '../../utils/generateFunction.js'
@@ -44,7 +44,7 @@ const decode = async (
44
44
  data,
45
45
  })
46
46
 
47
- return decodeContenthash(response)
47
+ return decodeContentHash(response)
48
48
  }
49
49
 
50
50
  const _getContentHash = generateFunction({ encode, decode })
@@ -75,7 +75,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
75
75
  * @example
76
76
  * import { createPublicClient, http } from 'viem'
77
77
  * import { mainnet } from 'viem/chains'
78
- * import { addEnsContracts, batch, getTextRecord, getAddressRecord } from '@ensdomains/ensjs'
78
+ * import { addEnsContracts } from '@ensdomains/ensjs'
79
+ * import { batch, getTextRecord, getAddressRecord } from '@ensdomains/ensjs/public'
79
80
  *
80
81
  * const client = createPublicClient({
81
82
  * chain: addEnsContracts(mainnet),
@@ -47,7 +47,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
47
47
  * @example
48
48
  * import { createPublicClient, http } from 'viem'
49
49
  * import { mainnet } from 'viem/chains'
50
- * import { addEnsContracts, getAbiRecord } from '@ensdomains/ensjs'
50
+ * import { addEnsContracts } from '@ensdomains/ensjs'
51
+ * import { getAbiRecord } from '@ensdomains/ensjs/public'
51
52
  *
52
53
  * const client = createPublicClient({
53
54
  * chain: addEnsContracts(mainnet),
@@ -48,7 +48,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
48
48
  * @example
49
49
  * import { createPublicClient, http } from 'viem'
50
50
  * import { mainnet } from 'viem/chains'
51
- * import { addEnsContracts, getAddressRecord } from '@ensdomains/ensjs'
51
+ * import { addEnsContracts } from '@ensdomains/ensjs'
52
+ * import { getAddressRecord } from '@ensdomains/ensjs/public'
52
53
  *
53
54
  * const client = createPublicClient({
54
55
  * chain: addEnsContracts(mainnet),
@@ -73,7 +73,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
73
73
  * @example
74
74
  * import { createPublicClient, http } from 'viem'
75
75
  * import { mainnet } from 'viem/chains'
76
- * import { addEnsContracts, getAvailable } from '@ensdomains/ensjs'
76
+ * import { addEnsContracts } from '@ensdomains/ensjs'
77
+ * import { getAvailable } from '@ensdomains/ensjs/public'
77
78
  *
78
79
  * const client = createPublicClient({
79
80
  * chain: addEnsContracts(mainnet),
@@ -49,7 +49,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
49
49
  * @example
50
50
  * import { createPublicClient, http } from 'viem'
51
51
  * import { mainnet } from 'viem/chains'
52
- * import { addEnsContracts, getContentHashRecord } from '@ensdomains/ensjs'
52
+ * import { addEnsContracts } from '@ensdomains/ensjs'
53
+ * import { getContentHashRecord } from '@ensdomains/ensjs/public'
53
54
  *
54
55
  * const client = createPublicClient({
55
56
  * chain: addEnsContracts(mainnet),
@@ -181,7 +181,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
181
181
  * @example
182
182
  * import { createPublicClient, http } from 'viem'
183
183
  * import { mainnet } from 'viem/chains'
184
- * import { addEnsContracts, getExpiry } from '@ensdomains/ensjs'
184
+ * import { addEnsContracts } from '@ensdomains/ensjs'
185
+ * import { getExpiry } from '@ensdomains/ensjs/public'
185
186
  *
186
187
  * const client = createPublicClient({
187
188
  * chain: addEnsContracts(mainnet),
@@ -83,7 +83,7 @@ const decode = async (
83
83
  functionName: 'reverse',
84
84
  args: passthrough.args,
85
85
  address: passthrough.address,
86
- })
86
+ }) as BaseError
87
87
  }
88
88
  const result = decodeFunctionResult({
89
89
  abi: universalResolverReverseSnippet,
@@ -110,7 +110,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
110
110
  * @example
111
111
  * import { createPublicClient, http } from 'viem'
112
112
  * import { mainnet } from 'viem/chains'
113
- * import { addEnsContracts, getName } from '@ensdomains/ensjs'
113
+ * import { addEnsContracts } from '@ensdomains/ensjs'
114
+ * import { getName } from '@ensdomains/ensjs/public'
114
115
  *
115
116
  * const client = createPublicClient({
116
117
  * chain: addEnsContracts(mainnet),
@@ -3,10 +3,7 @@ import type { ClientWithEns } from '../../contracts/consts.js'
3
3
  import { getChainContractAddress } from '../../contracts/getChainContractAddress.js'
4
4
  import type { SimpleTransactionRequest } from '../../types.js'
5
5
  import { EMPTY_ADDRESS } from '../../utils/consts.js'
6
- import {
7
- generateFunction,
8
- type GeneratedFunction,
9
- } from '../../utils/generateFunction.js'
6
+ import { generateFunction } from '../../utils/generateFunction.js'
10
7
  import { namehash as makeNamehash } from '../../utils/normalise.js'
11
8
  import {
12
9
  ownerFromContract,
@@ -15,11 +12,13 @@ import {
15
12
  import { checkIsDotEth } from '../../utils/validation.js'
16
13
  import multicallWrapper from './multicallWrapper.js'
17
14
 
18
- export type GetOwnerParameters = {
15
+ export type GetOwnerParameters<
16
+ TContract extends OwnerContract | undefined = undefined,
17
+ > = {
19
18
  /** Name to get owner for */
20
19
  name: string
21
20
  /** Optional specific contract to get ownership value from */
22
- contract?: OwnerContract
21
+ contract?: TContract
23
22
  }
24
23
 
25
24
  type BaseGetOwnerReturnType = {
@@ -55,19 +54,22 @@ type UnwrappedOwnership = {
55
54
  ownershipLevel: 'registry'
56
55
  }
57
56
 
58
- export type GetOwnerReturnType =
57
+ export type GetOwnerReturnType<
58
+ TContract extends OwnerContract | undefined = undefined,
59
+ > =
59
60
  | (BaseGetOwnerReturnType &
60
- (
61
- | RegistrarOnlyOwnership
62
- | WrappedOwnership
63
- | UnwrappedEth2ldOwnership
64
- | UnwrappedOwnership
65
- ))
61
+ (TContract extends 'registrar'
62
+ ? RegistrarOnlyOwnership
63
+ : TContract extends 'nameWrapper'
64
+ ? WrappedOwnership
65
+ : TContract extends 'registry'
66
+ ? UnwrappedOwnership
67
+ : WrappedOwnership | UnwrappedEth2ldOwnership | UnwrappedOwnership))
66
68
  | null
67
69
 
68
- const encode = (
70
+ const encode = <TContract extends OwnerContract | undefined = undefined>(
69
71
  client: ClientWithEns,
70
- { name, contract }: GetOwnerParameters,
72
+ { name, contract }: GetOwnerParameters<TContract>,
71
73
  ): SimpleTransactionRequest => {
72
74
  const namehash = makeNamehash(name)
73
75
  const labels = name.split('.')
@@ -102,13 +104,13 @@ const encode = (
102
104
  }
103
105
 
104
106
  const addressDecode = (data: Hex) =>
105
- decodeAbiParameters([{ type: 'address' }], data)[0]
107
+ decodeAbiParameters([{ type: 'address' }], data)[0] as Address
106
108
 
107
- const decode = async (
109
+ const decode = async <TContract extends OwnerContract | undefined = undefined>(
108
110
  client: ClientWithEns,
109
111
  data: Hex | BaseError,
110
- { name, contract }: GetOwnerParameters,
111
- ): Promise<GetOwnerReturnType> => {
112
+ { name, contract }: GetOwnerParameters<TContract>,
113
+ ): Promise<GetOwnerReturnType<TContract>> => {
112
114
  if (typeof data === 'object') throw data
113
115
  const labels = name.split('.')
114
116
  if (contract || labels.length === 1) {
@@ -117,12 +119,12 @@ const decode = async (
117
119
  return {
118
120
  ownershipLevel: 'registrar',
119
121
  registrant: singleOwner,
120
- } as RegistrarOnlyOwnership
122
+ } as GetOwnerReturnType<TContract>
121
123
  }
122
124
  return {
123
125
  ownershipLevel: contract || 'registry',
124
126
  owner: singleOwner,
125
- } as UnwrappedOwnership | WrappedOwnership
127
+ } as GetOwnerReturnType<TContract>
126
128
  }
127
129
 
128
130
  const result = await multicallWrapper.decode(client, data, [])
@@ -150,7 +152,7 @@ const decode = async (
150
152
  return {
151
153
  owner: nameWrapperOwner,
152
154
  ownershipLevel: 'nameWrapper',
153
- } as WrappedOwnership
155
+ } as GetOwnerReturnType<TContract>
154
156
  }
155
157
  // if there is a registrar owner, then it's not a subdomain but we have also passed the namewrapper clause
156
158
  // this means that it's an unwrapped second-level name
@@ -161,7 +163,7 @@ const decode = async (
161
163
  registrant: registrarOwner!,
162
164
  owner: registryOwner!,
163
165
  ownershipLevel: 'registrar',
164
- } as UnwrappedEth2ldOwnership
166
+ } as GetOwnerReturnType<TContract>
165
167
  }
166
168
  if (registryOwner !== EMPTY_ADDRESS) {
167
169
  // if there is no registrar owner, but the label length is two, then the domain is an expired 2LD .eth
@@ -171,7 +173,7 @@ const decode = async (
171
173
  registrant: null,
172
174
  owner: registryOwner,
173
175
  ownershipLevel: 'registrar',
174
- } as UnwrappedEth2ldOwnership
176
+ } as GetOwnerReturnType<TContract>
175
177
  }
176
178
  // this means that the subname is wrapped
177
179
  if (
@@ -182,13 +184,13 @@ const decode = async (
182
184
  return {
183
185
  owner: nameWrapperOwner,
184
186
  ownershipLevel: 'nameWrapper',
185
- } as WrappedOwnership
187
+ } as GetOwnerReturnType<TContract>
186
188
  }
187
189
  // unwrapped subnames do not have NFTs associated, so do not have a registrant
188
190
  return {
189
191
  owner: registryOwner,
190
192
  ownershipLevel: 'registry',
191
- } as UnwrappedOwnership
193
+ } as GetOwnerReturnType<TContract>
192
194
  }
193
195
  // .eth names with no registrar owner are either unregistered or expired
194
196
  return null
@@ -206,7 +208,7 @@ const decode = async (
206
208
  return {
207
209
  owner: nameWrapperOwner,
208
210
  ownershipLevel: 'nameWrapper',
209
- } as WrappedOwnership
211
+ } as GetOwnerReturnType<TContract>
210
212
  }
211
213
 
212
214
  // for unwrapped non .eth names, the owner is the registry owner
@@ -214,14 +216,30 @@ const decode = async (
214
216
  return {
215
217
  owner: registryOwner,
216
218
  ownershipLevel: 'registry',
217
- } as UnwrappedOwnership
219
+ } as GetOwnerReturnType<TContract>
218
220
  }
219
221
 
220
222
  // for anything else, return
221
223
  return null
222
224
  }
223
225
 
224
- type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
226
+ type EncoderFunction = typeof encode
227
+ type DecoderFunction = typeof decode
228
+
229
+ type BatchableFunctionObject = {
230
+ encode: EncoderFunction
231
+ decode: DecoderFunction
232
+ batch: <
233
+ TContract extends OwnerContract | undefined = undefined,
234
+ TParams extends GetOwnerParameters<TContract> = GetOwnerParameters<TContract>,
235
+ >(
236
+ args: TParams,
237
+ ) => {
238
+ args: [TParams]
239
+ encode: EncoderFunction
240
+ decode: typeof decode<TContract>
241
+ }
242
+ }
225
243
 
226
244
  /**
227
245
  * Gets the owner(s) of a name.
@@ -232,7 +250,8 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
232
250
  * @example
233
251
  * import { createPublicClient, http } from 'viem'
234
252
  * import { mainnet } from 'viem/chains'
235
- * import { addEnsContracts, getOwner } from '@ensdomains/ensjs'
253
+ * import { addEnsContracts } from '@ensdomains/ensjs'
254
+ * import { getOwner } from '@ensdomains/ensjs/public'
236
255
  *
237
256
  * const client = createPublicClient({
238
257
  * chain: addEnsContracts(mainnet),
@@ -241,10 +260,12 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
241
260
  * const result = await getOwner(client, { name: 'ens.eth' })
242
261
  * // { owner: '0xb6E040C9ECAaE172a89bD561c5F73e1C48d28cd9', registrant: '0xb6E040C9ECAaE172a89bD561c5F73e1C48d28cd9', ownershipLevel: 'registrar }
243
262
  */
244
- const getOwner = generateFunction({ encode, decode }) as ((
263
+ const getOwner = generateFunction({ encode, decode }) as (<
264
+ TContract extends OwnerContract | undefined = undefined,
265
+ >(
245
266
  client: ClientWithEns,
246
- { name, contract }: GetOwnerParameters,
247
- ) => Promise<GetOwnerReturnType>) &
267
+ { name, contract }: GetOwnerParameters<TContract>,
268
+ ) => Promise<GetOwnerReturnType<TContract>>) &
248
269
  BatchableFunctionObject
249
270
 
250
271
  export default getOwner
@@ -129,13 +129,14 @@ type BatchableFunctionObject = GeneratedFunction<typeof encode, typeof decode>
129
129
  * @example
130
130
  * import { createPublicClient, http } from 'viem'
131
131
  * import { mainnet } from 'viem/chains'
132
- * import { addEnsContracts, getPrice } from '@ensdomains/ensjs'
132
+ * import { addEnsContracts } from '@ensdomains/ensjs'
133
+ * import { getPrice } from '@ensdomains/ensjs/public'
133
134
  *
134
135
  * const client = createPublicClient({
135
136
  * chain: addEnsContracts(mainnet),
136
137
  * transport: http(),
137
138
  * })
138
- * const result = await getPrice(client, { nameOrNames: 'ens.eth' })
139
+ * const result = await getPrice(client, { nameOrNames: 'ens.eth', duration: 31536000 })
139
140
  * // { base: 352828971668930335n, premium: 0n }
140
141
  */
141
142
  const getPrice = generateFunction({ encode, decode }) as ((