@ensdomains/ensjs 3.0.0-alpha.4 → 3.0.0-alpha.41

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 (762) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +13 -1
  3. package/dist/cjs/GqlManager.js +109 -36
  4. package/dist/cjs/contracts/baseRegistrar.js +24 -3
  5. package/dist/cjs/contracts/bulkRenewal.js +25 -0
  6. package/dist/cjs/contracts/dnsRegistrar.js +25 -0
  7. package/dist/cjs/contracts/ethRegistrarController.js +24 -3
  8. package/dist/cjs/contracts/factories.js +16 -0
  9. package/dist/cjs/contracts/getContractAddress.js +82 -43
  10. package/dist/cjs/contracts/index.js +56 -32
  11. package/dist/cjs/contracts/multicall.js +24 -21
  12. package/dist/cjs/contracts/nameWrapper.js +24 -3
  13. package/dist/cjs/contracts/publicResolver.js +24 -3
  14. package/dist/cjs/contracts/registry.js +24 -3
  15. package/dist/cjs/contracts/reverseRegistrar.js +24 -3
  16. package/dist/cjs/contracts/types.js +15 -1
  17. package/dist/cjs/contracts/universalResolver.js +24 -3
  18. package/dist/cjs/functions/batch.js +42 -15
  19. package/dist/cjs/functions/batchWrappers.js +130 -67
  20. package/dist/cjs/functions/burnFuses.js +28 -15
  21. package/dist/cjs/functions/commitName.js +49 -0
  22. package/dist/cjs/functions/createSubname.js +80 -38
  23. package/dist/cjs/functions/deleteSubname.js +59 -4
  24. package/dist/cjs/functions/getAvailable.js +55 -0
  25. package/dist/cjs/functions/getDNSOwner.js +78 -72
  26. package/dist/cjs/functions/getExpiry.js +110 -41
  27. package/dist/cjs/functions/getHistory.js +166 -195
  28. package/dist/cjs/functions/getName.js +51 -28
  29. package/dist/cjs/functions/getNames.js +211 -102
  30. package/dist/cjs/functions/getOwner.js +178 -123
  31. package/dist/cjs/functions/getPrice.js +119 -43
  32. package/dist/cjs/functions/getProfile.js +449 -253
  33. package/dist/cjs/functions/getRecords.js +29 -9
  34. package/dist/cjs/functions/getResolver.js +41 -19
  35. package/dist/cjs/functions/getSpecificRecord.js +270 -260
  36. package/dist/cjs/functions/getSubnames.js +75 -118
  37. package/dist/cjs/functions/getWrapperData.js +58 -0
  38. package/dist/cjs/functions/importDNSSECName.js +65 -0
  39. package/dist/cjs/functions/initialGetters.js +48 -37
  40. package/dist/cjs/functions/registerName.js +44 -0
  41. package/dist/cjs/functions/renewNames.js +62 -0
  42. package/dist/cjs/functions/setName.js +41 -15
  43. package/dist/cjs/functions/setRecord.js +56 -0
  44. package/dist/cjs/functions/setRecords.js +50 -20
  45. package/dist/cjs/functions/setResolver.js +43 -23
  46. package/dist/cjs/functions/supportsTLD.js +48 -0
  47. package/dist/cjs/functions/transferController.js +42 -0
  48. package/dist/cjs/functions/transferName.js +61 -30
  49. package/dist/cjs/functions/transferSubname.js +60 -24
  50. package/dist/cjs/functions/types.js +16 -0
  51. package/dist/cjs/functions/unwrapName.js +49 -25
  52. package/dist/cjs/functions/wrapName.js +123 -57
  53. package/dist/cjs/generated/BaseRegistrarImplementation.js +15 -1
  54. package/dist/cjs/generated/BulkRenewal.js +16 -0
  55. package/dist/cjs/generated/DNSRegistrar.js +15 -1
  56. package/dist/cjs/generated/DNSSECImpl.js +15 -1
  57. package/dist/cjs/generated/DefaultReverseResolver.js +15 -1
  58. package/dist/cjs/generated/ENSRegistry.js +15 -1
  59. package/dist/cjs/generated/ETHRegistrarController.js +15 -1
  60. package/dist/cjs/generated/Multicall.js +15 -1
  61. package/dist/cjs/generated/NameWrapper.js +15 -1
  62. package/dist/cjs/generated/P256SHA256Algorithm.js +15 -1
  63. package/dist/cjs/generated/PublicResolver.js +15 -1
  64. package/dist/cjs/generated/RSASHA1Algorithm.js +15 -1
  65. package/dist/cjs/generated/RSASHA256Algorithm.js +15 -1
  66. package/dist/cjs/generated/ReverseRegistrar.js +15 -1
  67. package/dist/cjs/generated/Root.js +15 -1
  68. package/dist/cjs/generated/SHA1Digest.js +15 -1
  69. package/dist/cjs/generated/SHA1NSEC3Digest.js +15 -1
  70. package/dist/cjs/generated/SHA256Digest.js +15 -1
  71. package/dist/cjs/generated/StaticMetadataService.js +15 -1
  72. package/dist/cjs/generated/TLDPublicSuffixList.js +15 -1
  73. package/dist/cjs/generated/UniversalResolver.js +15 -1
  74. package/dist/cjs/generated/common.js +15 -1
  75. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +785 -764
  76. package/dist/cjs/generated/factories/BulkRenewal__factory.js +121 -0
  77. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +282 -288
  78. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +486 -492
  79. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +103 -82
  80. package/dist/cjs/generated/factories/ENSRegistry__factory.js +448 -431
  81. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +672 -504
  82. package/dist/cjs/generated/factories/Multicall__factory.js +458 -441
  83. package/dist/cjs/generated/factories/NameWrapper__factory.js +1379 -1194
  84. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +61 -67
  85. package/dist/cjs/generated/factories/PublicResolver__factory.js +957 -885
  86. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +61 -67
  87. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +61 -67
  88. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +363 -333
  89. package/dist/cjs/generated/factories/Root__factory.js +254 -237
  90. package/dist/cjs/generated/factories/SHA1Digest__factory.js +56 -62
  91. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +61 -67
  92. package/dist/cjs/generated/factories/SHA256Digest__factory.js +56 -62
  93. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +65 -44
  94. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +51 -57
  95. package/dist/cjs/generated/factories/UniversalResolver__factory.js +493 -199
  96. package/dist/cjs/generated/factories/index.js +63 -17
  97. package/dist/cjs/generated/index.js +70 -37
  98. package/dist/cjs/index.js +317 -211
  99. package/dist/cjs/static.js +85 -0
  100. package/dist/cjs/utils/ccip.js +129 -0
  101. package/dist/cjs/utils/consts.js +24 -0
  102. package/dist/cjs/utils/contentHash.js +145 -142
  103. package/dist/cjs/utils/createReverseNode.js +23 -2
  104. package/dist/cjs/utils/format.js +27 -8
  105. package/dist/cjs/utils/fuses.js +123 -13
  106. package/dist/cjs/utils/generateFuseInput.js +37 -16
  107. package/dist/cjs/utils/hexEncodedName.js +29 -7
  108. package/dist/cjs/utils/labels.js +99 -83
  109. package/dist/cjs/utils/makeHashIndexes.js +27 -6
  110. package/dist/cjs/utils/normalise.js +51 -22
  111. package/dist/cjs/utils/recordHelpers.js +141 -37
  112. package/dist/cjs/utils/registerHelpers.js +118 -46
  113. package/dist/cjs/utils/singleCall.js +23 -6
  114. package/dist/cjs/utils/validation.js +76 -63
  115. package/dist/cjs/utils/wrapper.js +51 -0
  116. package/dist/cjs/utils/writeTx.js +25 -0
  117. package/dist/esm/GqlManager.mjs +88 -0
  118. package/dist/esm/contracts/baseRegistrar.mjs +6 -0
  119. package/dist/esm/contracts/bulkRenewal.mjs +6 -0
  120. package/dist/esm/contracts/dnsRegistrar.mjs +6 -0
  121. package/dist/esm/contracts/ethRegistrarController.mjs +6 -0
  122. package/dist/esm/contracts/factories.mjs +0 -0
  123. package/dist/esm/contracts/getContractAddress.mjs +66 -0
  124. package/dist/esm/contracts/index.mjs +44 -0
  125. package/dist/esm/contracts/multicall.mjs +6 -0
  126. package/dist/esm/contracts/nameWrapper.mjs +6 -0
  127. package/dist/esm/contracts/publicResolver.mjs +6 -0
  128. package/dist/esm/contracts/registry.mjs +6 -0
  129. package/dist/esm/contracts/reverseRegistrar.mjs +6 -0
  130. package/dist/esm/contracts/types.mjs +0 -0
  131. package/dist/esm/contracts/universalResolver.mjs +6 -0
  132. package/dist/esm/functions/batch.mjs +29 -0
  133. package/dist/esm/functions/batchWrappers.mjs +109 -0
  134. package/dist/esm/functions/burnFuses.mjs +12 -0
  135. package/dist/esm/functions/commitName.mjs +30 -0
  136. package/dist/esm/functions/createSubname.mjs +61 -0
  137. package/dist/esm/functions/deleteSubname.mjs +42 -0
  138. package/dist/esm/functions/getAvailable.mjs +36 -0
  139. package/dist/esm/functions/getDNSOwner.mjs +60 -0
  140. package/dist/esm/functions/getExpiry.mjs +95 -0
  141. package/dist/esm/functions/getHistory.mjs +231 -0
  142. package/dist/esm/functions/getName.mjs +38 -0
  143. package/dist/esm/functions/getNames.mjs +312 -0
  144. package/dist/esm/functions/getOwner.mjs +175 -0
  145. package/dist/esm/functions/getPrice.mjs +107 -0
  146. package/dist/esm/functions/getProfile.mjs +479 -0
  147. package/dist/esm/functions/getRecords.mjs +12 -0
  148. package/dist/esm/functions/getResolver.mjs +27 -0
  149. package/dist/esm/functions/getSpecificRecord.mjs +253 -0
  150. package/dist/esm/functions/getSubnames.mjs +92 -0
  151. package/dist/esm/functions/getWrapperData.mjs +39 -0
  152. package/dist/esm/functions/importDNSSECName.mjs +40 -0
  153. package/dist/esm/functions/initialGetters.mjs +25 -0
  154. package/dist/esm/functions/registerName.mjs +27 -0
  155. package/dist/esm/functions/renewNames.mjs +43 -0
  156. package/dist/esm/functions/setName.mjs +23 -0
  157. package/dist/esm/functions/setRecord.mjs +36 -0
  158. package/dist/esm/functions/setRecords.mjs +32 -0
  159. package/dist/esm/functions/setResolver.mjs +29 -0
  160. package/dist/esm/functions/supportsTLD.mjs +29 -0
  161. package/dist/esm/functions/transferController.mjs +23 -0
  162. package/dist/esm/functions/transferName.mjs +46 -0
  163. package/dist/esm/functions/transferSubname.mjs +45 -0
  164. package/dist/esm/functions/types.mjs +0 -0
  165. package/dist/esm/functions/unwrapName.mjs +33 -0
  166. package/dist/esm/functions/wrapName.mjs +105 -0
  167. package/dist/esm/generated/BaseRegistrarImplementation.mjs +0 -0
  168. package/dist/esm/generated/BulkRenewal.mjs +0 -0
  169. package/dist/esm/generated/DNSRegistrar.mjs +0 -0
  170. package/dist/esm/generated/DNSSECImpl.mjs +0 -0
  171. package/dist/esm/generated/DefaultReverseResolver.mjs +0 -0
  172. package/dist/esm/generated/ENSRegistry.mjs +0 -0
  173. package/dist/esm/generated/ETHRegistrarController.mjs +0 -0
  174. package/dist/esm/generated/Multicall.mjs +0 -0
  175. package/dist/esm/generated/NameWrapper.mjs +0 -0
  176. package/dist/esm/generated/P256SHA256Algorithm.mjs +0 -0
  177. package/dist/esm/generated/PublicResolver.mjs +0 -0
  178. package/dist/esm/generated/RSASHA1Algorithm.mjs +0 -0
  179. package/dist/esm/generated/RSASHA256Algorithm.mjs +0 -0
  180. package/dist/esm/generated/ReverseRegistrar.mjs +0 -0
  181. package/dist/esm/generated/Root.mjs +0 -0
  182. package/dist/esm/generated/SHA1Digest.mjs +0 -0
  183. package/dist/esm/generated/SHA1NSEC3Digest.mjs +0 -0
  184. package/dist/esm/generated/SHA256Digest.mjs +0 -0
  185. package/dist/esm/generated/StaticMetadataService.mjs +0 -0
  186. package/dist/esm/generated/TLDPublicSuffixList.mjs +0 -0
  187. package/dist/esm/generated/UniversalResolver.mjs +0 -0
  188. package/dist/esm/generated/common.mjs +0 -0
  189. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +779 -0
  190. package/dist/esm/generated/factories/BulkRenewal__factory.mjs +109 -0
  191. package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +278 -0
  192. package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +483 -0
  193. package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +96 -0
  194. package/dist/esm/generated/factories/ENSRegistry__factory.mjs +444 -0
  195. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +667 -0
  196. package/dist/esm/generated/factories/Multicall__factory.mjs +462 -0
  197. package/dist/esm/generated/factories/NameWrapper__factory.mjs +1373 -0
  198. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +53 -0
  199. package/dist/esm/generated/factories/PublicResolver__factory.mjs +952 -0
  200. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +53 -0
  201. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +53 -0
  202. package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +358 -0
  203. package/dist/esm/generated/factories/Root__factory.mjs +248 -0
  204. package/dist/esm/generated/factories/SHA1Digest__factory.mjs +48 -0
  205. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +53 -0
  206. package/dist/esm/generated/factories/SHA256Digest__factory.mjs +48 -0
  207. package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +58 -0
  208. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +43 -0
  209. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +486 -0
  210. package/dist/esm/generated/factories/index.mjs +45 -0
  211. package/dist/esm/generated/index.mjs +47 -0
  212. package/dist/esm/index.mjs +309 -0
  213. package/dist/esm/static.mjs +62 -0
  214. package/dist/esm/utils/ccip.mjs +114 -0
  215. package/dist/esm/utils/consts.mjs +5 -0
  216. package/dist/esm/utils/contentHash.mjs +142 -0
  217. package/dist/esm/utils/createReverseNode.mjs +5 -0
  218. package/dist/esm/utils/format.mjs +9 -0
  219. package/dist/esm/utils/fuses.mjs +115 -0
  220. package/dist/esm/utils/generateFuseInput.mjs +15 -0
  221. package/dist/esm/utils/hexEncodedName.mjs +6 -0
  222. package/dist/esm/utils/labels.mjs +109 -0
  223. package/dist/esm/utils/makeHashIndexes.mjs +10 -0
  224. package/dist/esm/utils/normalise.mjs +32 -0
  225. package/dist/esm/utils/recordHelpers.mjs +123 -0
  226. package/dist/esm/utils/registerHelpers.mjs +98 -0
  227. package/dist/esm/utils/singleCall.mjs +5 -0
  228. package/dist/esm/utils/validation.mjs +67 -0
  229. package/dist/esm/utils/wrapper.mjs +32 -0
  230. package/dist/esm/utils/writeTx.mjs +6 -0
  231. package/dist/types/GqlManager.d.ts +13 -0
  232. package/dist/types/contracts/baseRegistrar.d.ts +3 -0
  233. package/dist/types/contracts/bulkRenewal.d.ts +3 -0
  234. package/dist/types/contracts/dnsRegistrar.d.ts +3 -0
  235. package/dist/types/contracts/ethRegistrarController.d.ts +3 -0
  236. package/dist/types/contracts/factories.d.ts +45 -0
  237. package/dist/{cjs → types}/contracts/getContractAddress.d.ts +0 -0
  238. package/dist/types/contracts/index.d.ts +38 -0
  239. package/dist/types/contracts/multicall.d.ts +3 -0
  240. package/dist/types/contracts/nameWrapper.d.ts +3 -0
  241. package/dist/types/contracts/publicResolver.d.ts +3 -0
  242. package/dist/types/contracts/registry.d.ts +3 -0
  243. package/dist/types/contracts/reverseRegistrar.d.ts +3 -0
  244. package/dist/types/contracts/types.d.ts +2 -0
  245. package/dist/types/contracts/universalResolver.d.ts +3 -0
  246. package/dist/{cjs → types}/functions/batch.d.ts +0 -0
  247. package/dist/types/functions/batchWrappers.d.ts +86 -0
  248. package/dist/types/functions/burnFuses.d.ts +3 -0
  249. package/dist/types/functions/commitName.d.ts +26 -0
  250. package/dist/types/functions/createSubname.d.ts +16 -0
  251. package/dist/types/functions/deleteSubname.d.ts +6 -0
  252. package/dist/{esm/functions/getResolver.d.ts → types/functions/getAvailable.d.ts} +1 -1
  253. package/dist/{cjs → types}/functions/getDNSOwner.d.ts +0 -0
  254. package/dist/types/functions/getExpiry.d.ts +19 -0
  255. package/dist/types/functions/getHistory.d.ts +28 -0
  256. package/dist/{cjs → types}/functions/getName.d.ts +2 -2
  257. package/dist/{esm → types}/functions/getNames.d.ts +13 -3
  258. package/dist/{cjs → types}/functions/getOwner.d.ts +1 -1
  259. package/dist/{esm → types}/functions/getPrice.d.ts +3 -3
  260. package/dist/{esm → types}/functions/getProfile.d.ts +11 -1
  261. package/dist/{cjs → types}/functions/getRecords.d.ts +4 -2
  262. package/dist/{cjs → types}/functions/getResolver.d.ts +0 -0
  263. package/dist/{esm → types}/functions/getSpecificRecord.d.ts +28 -6
  264. package/dist/{esm → types}/functions/getSubnames.d.ts +2 -2
  265. package/dist/types/functions/getWrapperData.d.ts +15 -0
  266. package/dist/types/functions/importDNSSECName.d.ts +7 -0
  267. package/dist/{cjs → types}/functions/initialGetters.d.ts +1 -0
  268. package/dist/types/functions/registerName.d.ts +8 -0
  269. package/dist/types/functions/renewNames.d.ts +13 -0
  270. package/dist/types/functions/setName.d.ts +5 -0
  271. package/dist/types/functions/setRecord.d.ts +22 -0
  272. package/dist/types/functions/setRecords.d.ts +6 -0
  273. package/dist/types/functions/setResolver.d.ts +5 -0
  274. package/dist/types/functions/supportsTLD.d.ts +2 -0
  275. package/dist/types/functions/transferController.d.ts +5 -0
  276. package/dist/types/functions/transferName.d.ts +6 -0
  277. package/dist/types/functions/transferSubname.d.ts +14 -0
  278. package/dist/types/functions/types.d.ts +79 -0
  279. package/dist/types/functions/unwrapName.d.ts +5 -0
  280. package/dist/types/functions/wrapName.d.ts +9 -0
  281. package/dist/types/generated/BaseRegistrarImplementation.d.ts +512 -0
  282. package/dist/types/generated/BulkRenewal.d.ts +80 -0
  283. package/dist/types/generated/DNSRegistrar.d.ts +228 -0
  284. package/dist/types/generated/DNSSECImpl.d.ts +406 -0
  285. package/dist/types/generated/DefaultReverseResolver.d.ts +70 -0
  286. package/dist/types/generated/ENSRegistry.d.ts +278 -0
  287. package/dist/types/generated/ETHRegistrarController.d.ts +366 -0
  288. package/dist/{esm → types}/generated/Multicall.d.ts +113 -109
  289. package/dist/types/generated/NameWrapper.d.ts +814 -0
  290. package/dist/{esm → types}/generated/P256SHA256Algorithm.d.ts +22 -14
  291. package/dist/types/generated/PublicResolver.d.ts +598 -0
  292. package/dist/types/generated/RSASHA1Algorithm.d.ts +50 -0
  293. package/dist/types/generated/RSASHA256Algorithm.d.ts +50 -0
  294. package/dist/types/generated/ReverseRegistrar.d.ts +283 -0
  295. package/dist/types/generated/Root.d.ts +177 -0
  296. package/dist/{cjs → types}/generated/SHA1Digest.d.ts +18 -14
  297. package/dist/{esm → types}/generated/SHA1NSEC3Digest.d.ts +22 -14
  298. package/dist/{esm → types}/generated/SHA256Digest.d.ts +18 -14
  299. package/dist/types/generated/StaticMetadataService.d.ts +46 -0
  300. package/dist/types/generated/TLDPublicSuffixList.d.ts +46 -0
  301. package/dist/types/generated/UniversalResolver.d.ts +188 -0
  302. package/dist/{esm → types}/generated/common.d.ts +4 -3
  303. package/dist/{cjs → types}/generated/factories/BaseRegistrarImplementation__factory.d.ts +3 -3
  304. package/dist/{cjs/generated/factories/StaticMetadataService__factory.d.ts → types/generated/factories/BulkRenewal__factory.d.ts} +6 -6
  305. package/dist/{cjs/generated/factories/ETHRegistrarController__factory.d.ts → types/generated/factories/DNSRegistrar__factory.d.ts} +17 -16
  306. package/dist/{esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts → types/generated/factories/DNSSECImpl__factory.d.ts} +11 -11
  307. package/dist/{esm → types}/generated/factories/DefaultReverseResolver__factory.d.ts +3 -3
  308. package/dist/{esm → types}/generated/factories/ENSRegistry__factory.d.ts +3 -3
  309. package/dist/{esm → types}/generated/factories/ETHRegistrarController__factory.d.ts +15 -4
  310. package/dist/{esm → types}/generated/factories/Multicall__factory.d.ts +3 -3
  311. package/dist/{esm → types}/generated/factories/NameWrapper__factory.d.ts +3 -3
  312. package/dist/types/generated/factories/P256SHA256Algorithm__factory.d.ts +22 -0
  313. package/dist/{esm → types}/generated/factories/PublicResolver__factory.d.ts +3 -3
  314. package/dist/types/generated/factories/RSASHA1Algorithm__factory.d.ts +22 -0
  315. package/dist/types/generated/factories/RSASHA256Algorithm__factory.d.ts +22 -0
  316. package/dist/{esm → types}/generated/factories/ReverseRegistrar__factory.d.ts +3 -3
  317. package/dist/{cjs → types}/generated/factories/Root__factory.d.ts +3 -3
  318. package/dist/types/generated/factories/SHA1Digest__factory.d.ts +22 -0
  319. package/dist/types/generated/factories/SHA1NSEC3Digest__factory.d.ts +22 -0
  320. package/dist/types/generated/factories/SHA256Digest__factory.d.ts +22 -0
  321. package/dist/{esm → types}/generated/factories/StaticMetadataService__factory.d.ts +3 -3
  322. package/dist/types/generated/factories/TLDPublicSuffixList__factory.d.ts +22 -0
  323. package/dist/{cjs → types}/generated/factories/UniversalResolver__factory.d.ts +3 -3
  324. package/dist/types/generated/factories/index.d.ts +21 -0
  325. package/dist/types/generated/index.d.ts +43 -0
  326. package/dist/types/index.d.ts +553 -0
  327. package/dist/types/static.d.ts +26 -0
  328. package/dist/types/utils/ccip.d.ts +3 -0
  329. package/dist/types/utils/consts.d.ts +1 -0
  330. package/dist/{cjs → types}/utils/contentHash.d.ts +0 -0
  331. package/dist/{cjs → types}/utils/createReverseNode.d.ts +0 -0
  332. package/dist/{cjs → types}/utils/format.d.ts +0 -0
  333. package/dist/types/utils/fuses.d.ts +61 -0
  334. package/dist/{cjs → types}/utils/generateFuseInput.d.ts +1 -1
  335. package/dist/{cjs → types}/utils/hexEncodedName.d.ts +0 -0
  336. package/dist/{cjs → types}/utils/labels.d.ts +0 -0
  337. package/dist/{cjs → types}/utils/makeHashIndexes.d.ts +0 -0
  338. package/dist/types/utils/normalise.d.ts +2 -0
  339. package/dist/types/utils/recordHelpers.d.ts +29 -0
  340. package/dist/types/utils/registerHelpers.d.ts +59 -0
  341. package/dist/{esm → types}/utils/singleCall.d.ts +2 -2
  342. package/dist/{cjs → types}/utils/validation.d.ts +0 -0
  343. package/dist/types/utils/wrapper.d.ts +6 -0
  344. package/dist/types/utils/writeTx.d.ts +21 -0
  345. package/package.json +106 -39
  346. package/src/@types/@ensdomains/ens-contracts.d.ts +1 -1
  347. package/src/@types/dns-packet/index.d.ts +113 -113
  348. package/src/@types/pako.d.ts +188 -0
  349. package/src/ABIs/Multicall.json +452 -0
  350. package/src/GqlManager.test.ts +173 -0
  351. package/src/GqlManager.ts +105 -9
  352. package/src/contracts/baseRegistrar.ts +2 -2
  353. package/src/contracts/bulkRenewal.ts +6 -0
  354. package/src/contracts/dnsRegistrar.ts +5 -0
  355. package/src/contracts/ethRegistrarController.ts +2 -2
  356. package/src/contracts/factories.ts +48 -0
  357. package/src/contracts/getContractAddress.ts +28 -5
  358. package/src/contracts/index.ts +72 -48
  359. package/src/contracts/multicall.ts +2 -21
  360. package/src/contracts/nameWrapper.ts +2 -2
  361. package/src/contracts/publicResolver.ts +2 -2
  362. package/src/contracts/registry.ts +2 -2
  363. package/src/contracts/reverseRegistrar.ts +2 -2
  364. package/src/contracts/types.ts +3 -1
  365. package/src/contracts/universalResolver.ts +2 -2
  366. package/src/functions/batch.test.ts +10 -10
  367. package/src/functions/batch.ts +3 -3
  368. package/src/functions/batchWrappers.test.ts +13 -13
  369. package/src/functions/batchWrappers.ts +42 -11
  370. package/src/functions/burnFuses.test.ts +127 -23
  371. package/src/functions/burnFuses.ts +6 -13
  372. package/src/functions/commitName.test.ts +61 -0
  373. package/src/functions/commitName.ts +39 -0
  374. package/src/functions/createSubname.test.ts +11 -19
  375. package/src/functions/createSubname.ts +24 -17
  376. package/src/functions/deleteSubname.test.ts +36 -38
  377. package/src/functions/deleteSubname.ts +47 -13
  378. package/src/functions/getAvailable.test.ts +21 -0
  379. package/src/functions/getAvailable.ts +37 -0
  380. package/src/functions/getDNSOwner.test.ts +9 -19
  381. package/src/functions/getDNSOwner.ts +11 -9
  382. package/src/functions/getExpiry.test.ts +28 -10
  383. package/src/functions/getExpiry.ts +89 -11
  384. package/src/functions/getHistory.test.ts +17 -80
  385. package/src/functions/getHistory.ts +107 -176
  386. package/src/functions/getName.test.ts +10 -10
  387. package/src/functions/getName.ts +4 -4
  388. package/src/functions/getNames.test.ts +153 -89
  389. package/src/functions/getNames.ts +140 -36
  390. package/src/functions/getOwner.test.ts +3 -54
  391. package/src/functions/getOwner.ts +66 -29
  392. package/src/functions/getPrice.test.ts +55 -0
  393. package/src/functions/getPrice.ts +66 -13
  394. package/src/functions/getProfile-ccip.test.ts +29 -0
  395. package/src/functions/getProfile.test.ts +128 -29
  396. package/src/functions/getProfile.ts +296 -158
  397. package/src/functions/getRecords.ts +2 -1
  398. package/src/functions/getResolver.test.ts +5 -9
  399. package/src/functions/getResolver.ts +2 -6
  400. package/src/functions/getSpecificRecord.test.ts +185 -20
  401. package/src/functions/getSpecificRecord.ts +114 -149
  402. package/src/functions/getSubnames.test.ts +651 -7
  403. package/src/functions/getSubnames.ts +45 -103
  404. package/src/functions/getWrapperData.test.ts +98 -0
  405. package/src/functions/getWrapperData.ts +42 -0
  406. package/src/functions/importDNSSECName.ts +54 -0
  407. package/src/functions/initialGetters.ts +1 -0
  408. package/src/functions/makeCommitment.test.ts +6 -6
  409. package/src/functions/registerName.test.ts +59 -0
  410. package/src/functions/registerName.ts +38 -0
  411. package/src/functions/renewNames.test.ts +64 -0
  412. package/src/functions/renewNames.ts +60 -0
  413. package/src/functions/setName.test.ts +22 -18
  414. package/src/functions/setName.ts +15 -17
  415. package/src/functions/setRecord.test.ts +249 -0
  416. package/src/functions/setRecord.ts +64 -0
  417. package/src/functions/setRecords.test.ts +24 -18
  418. package/src/functions/setRecords.ts +19 -13
  419. package/src/functions/setResolver.test.ts +17 -25
  420. package/src/functions/setResolver.ts +15 -20
  421. package/src/functions/supportsTLD.test.ts +45 -0
  422. package/src/functions/supportsTLD.ts +38 -0
  423. package/src/functions/transferController.ts +29 -0
  424. package/src/functions/transferName.test.ts +24 -40
  425. package/src/functions/transferName.ts +27 -26
  426. package/src/functions/transferSubname.test.ts +19 -37
  427. package/src/functions/transferSubname.ts +41 -16
  428. package/src/functions/types.ts +98 -0
  429. package/src/functions/unwrapName.test.ts +19 -34
  430. package/src/functions/unwrapName.ts +26 -22
  431. package/src/functions/wrapName.test.ts +123 -37
  432. package/src/functions/wrapName.ts +80 -62
  433. package/src/generated/BaseRegistrarImplementation.ts +846 -773
  434. package/src/generated/BulkRenewal.ts +196 -0
  435. package/src/generated/DNSRegistrar.ts +276 -262
  436. package/src/generated/DNSSECImpl.ts +436 -412
  437. package/src/generated/DefaultReverseResolver.ts +95 -79
  438. package/src/generated/ENSRegistry.ts +491 -422
  439. package/src/generated/ETHRegistrarController.ts +649 -491
  440. package/src/generated/Multicall.ts +345 -336
  441. package/src/generated/NameWrapper.ts +1594 -1220
  442. package/src/generated/P256SHA256Algorithm.ts +70 -65
  443. package/src/generated/PublicResolver.ts +1105 -941
  444. package/src/generated/RSASHA1Algorithm.ts +70 -65
  445. package/src/generated/RSASHA256Algorithm.ts +70 -65
  446. package/src/generated/ReverseRegistrar.ts +428 -362
  447. package/src/generated/Root.ts +295 -241
  448. package/src/generated/SHA1Digest.ts +61 -60
  449. package/src/generated/SHA1NSEC3Digest.ts +70 -66
  450. package/src/generated/SHA256Digest.ts +61 -60
  451. package/src/generated/StaticMetadataService.ts +61 -46
  452. package/src/generated/TLDPublicSuffixList.ts +59 -55
  453. package/src/generated/UniversalResolver.ts +554 -188
  454. package/src/generated/common.ts +16 -14
  455. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +340 -338
  456. package/src/generated/factories/BulkRenewal__factory.ts +110 -0
  457. package/src/generated/factories/DNSRegistrar__factory.ts +134 -184
  458. package/src/generated/factories/DNSSECImpl__factory.ts +233 -276
  459. package/src/generated/factories/DefaultReverseResolver__factory.ts +40 -38
  460. package/src/generated/factories/ENSRegistry__factory.ts +199 -197
  461. package/src/generated/factories/ETHRegistrarController__factory.ts +400 -251
  462. package/src/generated/factories/Multicall__factory.ts +226 -224
  463. package/src/generated/factories/NameWrapper__factory.ts +788 -618
  464. package/src/generated/factories/P256SHA256Algorithm__factory.ts +27 -61
  465. package/src/generated/factories/PublicResolver__factory.ts +490 -436
  466. package/src/generated/factories/RSASHA1Algorithm__factory.ts +27 -61
  467. package/src/generated/factories/RSASHA256Algorithm__factory.ts +27 -61
  468. package/src/generated/factories/ReverseRegistrar__factory.ts +175 -160
  469. package/src/generated/factories/Root__factory.ts +103 -101
  470. package/src/generated/factories/SHA1Digest__factory.ts +24 -58
  471. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +27 -61
  472. package/src/generated/factories/SHA256Digest__factory.ts +24 -58
  473. package/src/generated/factories/StaticMetadataService__factory.ts +25 -23
  474. package/src/generated/factories/TLDPublicSuffixList__factory.ts +21 -55
  475. package/src/generated/factories/UniversalResolver__factory.ts +381 -102
  476. package/src/generated/factories/index.ts +15 -0
  477. package/src/generated/index.ts +31 -1
  478. package/src/index.ts +297 -164
  479. package/src/static.ts +94 -0
  480. package/src/utils/ccip.ts +149 -0
  481. package/src/utils/consts.ts +1 -0
  482. package/src/utils/contentHash.ts +29 -27
  483. package/src/utils/createReverseNode.ts +1 -1
  484. package/src/utils/fuses.ts +141 -4
  485. package/src/utils/generateFuseInput.ts +7 -12
  486. package/src/utils/labels.ts +7 -5
  487. package/src/utils/normalise.ts +14 -6
  488. package/src/utils/recordHelpers.ts +121 -20
  489. package/src/utils/registerHelpers.ts +125 -55
  490. package/src/utils/singleCall.ts +3 -3
  491. package/src/utils/validation.ts +9 -10
  492. package/src/utils/wrapper.ts +36 -0
  493. package/src/utils/writeTx.ts +16 -0
  494. package/dist/cjs/GqlManager.d.ts +0 -6
  495. package/dist/cjs/contracts/baseRegistrar.d.ts +0 -3
  496. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  497. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
  498. package/dist/cjs/contracts/ethRegistrarController.d.ts +0 -3
  499. package/dist/cjs/contracts/index.d.ts +0 -16
  500. package/dist/cjs/contracts/multicall.d.ts +0 -3
  501. package/dist/cjs/contracts/nameWrapper.d.ts +0 -3
  502. package/dist/cjs/contracts/publicResolver.d.ts +0 -3
  503. package/dist/cjs/contracts/registry.d.ts +0 -3
  504. package/dist/cjs/contracts/reverseRegistrar.d.ts +0 -3
  505. package/dist/cjs/contracts/types.d.ts +0 -2
  506. package/dist/cjs/contracts/universalResolver.d.ts +0 -3
  507. package/dist/cjs/functions/batchWrappers.d.ts +0 -29
  508. package/dist/cjs/functions/burnFuses.d.ts +0 -3
  509. package/dist/cjs/functions/createSubname.d.ts +0 -19
  510. package/dist/cjs/functions/deleteSubname.d.ts +0 -4
  511. package/dist/cjs/functions/getExpiry.d.ts +0 -12
  512. package/dist/cjs/functions/getFuses.d.ts +0 -17
  513. package/dist/cjs/functions/getFuses.js +0 -62
  514. package/dist/cjs/functions/getHistory.d.ts +0 -54
  515. package/dist/cjs/functions/getNames.d.ts +0 -40
  516. package/dist/cjs/functions/getPrice.d.ts +0 -13
  517. package/dist/cjs/functions/getProfile.d.ts +0 -30
  518. package/dist/cjs/functions/getSpecificRecord.d.ts +0 -73
  519. package/dist/cjs/functions/getSubnames.d.ts +0 -26
  520. package/dist/cjs/functions/setName.d.ts +0 -4
  521. package/dist/cjs/functions/setRecords.d.ts +0 -3
  522. package/dist/cjs/functions/setResolver.d.ts +0 -4
  523. package/dist/cjs/functions/transferName.d.ts +0 -5
  524. package/dist/cjs/functions/transferSubname.d.ts +0 -5
  525. package/dist/cjs/functions/unwrapName.d.ts +0 -4
  526. package/dist/cjs/functions/wrapName.d.ts +0 -6
  527. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +0 -487
  528. package/dist/cjs/generated/DNSRegistrar.d.ts +0 -220
  529. package/dist/cjs/generated/DNSSECImpl.d.ts +0 -402
  530. package/dist/cjs/generated/DefaultReverseResolver.d.ts +0 -66
  531. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  532. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
  533. package/dist/cjs/generated/ENSRegistry.d.ts +0 -259
  534. package/dist/cjs/generated/ETHRegistrarController.d.ts +0 -319
  535. package/dist/cjs/generated/Multicall.d.ts +0 -292
  536. package/dist/cjs/generated/NameWrapper.d.ts +0 -675
  537. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +0 -72
  538. package/dist/cjs/generated/PublicResolver.d.ts +0 -542
  539. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +0 -42
  540. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +0 -42
  541. package/dist/cjs/generated/ReverseRegistrar.d.ts +0 -259
  542. package/dist/cjs/generated/Root.d.ts +0 -173
  543. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +0 -72
  544. package/dist/cjs/generated/SHA256Digest.d.ts +0 -67
  545. package/dist/cjs/generated/StaticMetadataService.d.ts +0 -42
  546. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +0 -42
  547. package/dist/cjs/generated/UniversalResolver.d.ts +0 -82
  548. package/dist/cjs/generated/common.d.ts +0 -21
  549. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  550. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  551. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.d.ts +0 -36
  552. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  553. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
  554. package/dist/cjs/generated/factories/ENSRegistry__factory.d.ts +0 -52
  555. package/dist/cjs/generated/factories/Multicall__factory.d.ts +0 -42
  556. package/dist/cjs/generated/factories/NameWrapper__factory.d.ts +0 -57
  557. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  558. package/dist/cjs/generated/factories/PublicResolver__factory.d.ts +0 -46
  559. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  560. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  561. package/dist/cjs/generated/factories/ReverseRegistrar__factory.d.ts +0 -46
  562. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +0 -34
  563. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  564. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +0 -34
  565. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  566. package/dist/cjs/generated/factories/index.d.ts +0 -6
  567. package/dist/cjs/generated/index.d.ts +0 -13
  568. package/dist/cjs/index.d.ts +0 -471
  569. package/dist/cjs/utils/fuses.d.ts +0 -20
  570. package/dist/cjs/utils/normalise.d.ts +0 -2
  571. package/dist/cjs/utils/recordHelpers.d.ts +0 -13
  572. package/dist/cjs/utils/registerHelpers.d.ts +0 -26
  573. package/dist/cjs/utils/singleCall.d.ts +0 -9
  574. package/dist/esm/GqlManager.d.ts +0 -6
  575. package/dist/esm/GqlManager.js +0 -18
  576. package/dist/esm/contracts/baseRegistrar.d.ts +0 -3
  577. package/dist/esm/contracts/baseRegistrar.js +0 -2
  578. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  579. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
  580. package/dist/esm/contracts/ethRegistrarController.d.ts +0 -3
  581. package/dist/esm/contracts/ethRegistrarController.js +0 -2
  582. package/dist/esm/contracts/getContractAddress.d.ts +0 -3
  583. package/dist/esm/contracts/getContractAddress.js +0 -42
  584. package/dist/esm/contracts/index.d.ts +0 -16
  585. package/dist/esm/contracts/index.js +0 -29
  586. package/dist/esm/contracts/multicall.d.ts +0 -3
  587. package/dist/esm/contracts/multicall.js +0 -20
  588. package/dist/esm/contracts/nameWrapper.d.ts +0 -3
  589. package/dist/esm/contracts/nameWrapper.js +0 -2
  590. package/dist/esm/contracts/publicResolver.d.ts +0 -3
  591. package/dist/esm/contracts/publicResolver.js +0 -2
  592. package/dist/esm/contracts/registry.d.ts +0 -3
  593. package/dist/esm/contracts/registry.js +0 -2
  594. package/dist/esm/contracts/reverseRegistrar.d.ts +0 -3
  595. package/dist/esm/contracts/reverseRegistrar.js +0 -2
  596. package/dist/esm/contracts/types.d.ts +0 -2
  597. package/dist/esm/contracts/types.js +0 -1
  598. package/dist/esm/contracts/universalResolver.d.ts +0 -3
  599. package/dist/esm/contracts/universalResolver.js +0 -2
  600. package/dist/esm/functions/batch.d.ts +0 -9
  601. package/dist/esm/functions/batch.js +0 -19
  602. package/dist/esm/functions/batchWrappers.d.ts +0 -29
  603. package/dist/esm/functions/batchWrappers.js +0 -68
  604. package/dist/esm/functions/burnFuses.d.ts +0 -3
  605. package/dist/esm/functions/burnFuses.js +0 -12
  606. package/dist/esm/functions/createSubname.d.ts +0 -19
  607. package/dist/esm/functions/createSubname.js +0 -38
  608. package/dist/esm/functions/deleteSubname.d.ts +0 -4
  609. package/dist/esm/functions/deleteSubname.js +0 -3
  610. package/dist/esm/functions/getDNSOwner.d.ts +0 -7
  611. package/dist/esm/functions/getDNSOwner.js +0 -51
  612. package/dist/esm/functions/getExpiry.d.ts +0 -12
  613. package/dist/esm/functions/getExpiry.js +0 -43
  614. package/dist/esm/functions/getFuses.d.ts +0 -17
  615. package/dist/esm/functions/getFuses.js +0 -60
  616. package/dist/esm/functions/getHistory.d.ts +0 -54
  617. package/dist/esm/functions/getHistory.js +0 -273
  618. package/dist/esm/functions/getName.d.ts +0 -19
  619. package/dist/esm/functions/getName.js +0 -32
  620. package/dist/esm/functions/getNames.js +0 -220
  621. package/dist/esm/functions/getOwner.d.ts +0 -14
  622. package/dist/esm/functions/getOwner.js +0 -138
  623. package/dist/esm/functions/getPrice.js +0 -48
  624. package/dist/esm/functions/getProfile.js +0 -299
  625. package/dist/esm/functions/getRecords.d.ts +0 -32
  626. package/dist/esm/functions/getRecords.js +0 -8
  627. package/dist/esm/functions/getResolver.js +0 -22
  628. package/dist/esm/functions/getSpecificRecord.js +0 -265
  629. package/dist/esm/functions/getSubnames.js +0 -152
  630. package/dist/esm/functions/initialGetters.d.ts +0 -11
  631. package/dist/esm/functions/initialGetters.js +0 -11
  632. package/dist/esm/functions/setName.d.ts +0 -4
  633. package/dist/esm/functions/setName.js +0 -14
  634. package/dist/esm/functions/setRecords.d.ts +0 -3
  635. package/dist/esm/functions/setRecords.js +0 -19
  636. package/dist/esm/functions/setResolver.d.ts +0 -4
  637. package/dist/esm/functions/setResolver.js +0 -25
  638. package/dist/esm/functions/transferName.d.ts +0 -5
  639. package/dist/esm/functions/transferName.js +0 -31
  640. package/dist/esm/functions/transferSubname.d.ts +0 -5
  641. package/dist/esm/functions/transferSubname.js +0 -25
  642. package/dist/esm/functions/unwrapName.d.ts +0 -4
  643. package/dist/esm/functions/unwrapName.js +0 -25
  644. package/dist/esm/functions/wrapName.d.ts +0 -6
  645. package/dist/esm/functions/wrapName.js +0 -58
  646. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +0 -487
  647. package/dist/esm/generated/BaseRegistrarImplementation.js +0 -1
  648. package/dist/esm/generated/DNSRegistrar.d.ts +0 -220
  649. package/dist/esm/generated/DNSRegistrar.js +0 -1
  650. package/dist/esm/generated/DNSSECImpl.d.ts +0 -402
  651. package/dist/esm/generated/DNSSECImpl.js +0 -1
  652. package/dist/esm/generated/DefaultReverseResolver.d.ts +0 -66
  653. package/dist/esm/generated/DefaultReverseResolver.js +0 -1
  654. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  655. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
  656. package/dist/esm/generated/ENSRegistry.d.ts +0 -259
  657. package/dist/esm/generated/ENSRegistry.js +0 -1
  658. package/dist/esm/generated/ETHRegistrarController.d.ts +0 -319
  659. package/dist/esm/generated/ETHRegistrarController.js +0 -1
  660. package/dist/esm/generated/Multicall.js +0 -1
  661. package/dist/esm/generated/NameWrapper.d.ts +0 -675
  662. package/dist/esm/generated/NameWrapper.js +0 -1
  663. package/dist/esm/generated/P256SHA256Algorithm.js +0 -1
  664. package/dist/esm/generated/PublicResolver.d.ts +0 -542
  665. package/dist/esm/generated/PublicResolver.js +0 -1
  666. package/dist/esm/generated/RSASHA1Algorithm.d.ts +0 -42
  667. package/dist/esm/generated/RSASHA1Algorithm.js +0 -1
  668. package/dist/esm/generated/RSASHA256Algorithm.d.ts +0 -42
  669. package/dist/esm/generated/RSASHA256Algorithm.js +0 -1
  670. package/dist/esm/generated/ReverseRegistrar.d.ts +0 -259
  671. package/dist/esm/generated/ReverseRegistrar.js +0 -1
  672. package/dist/esm/generated/Root.d.ts +0 -173
  673. package/dist/esm/generated/Root.js +0 -1
  674. package/dist/esm/generated/SHA1Digest.d.ts +0 -67
  675. package/dist/esm/generated/SHA1Digest.js +0 -1
  676. package/dist/esm/generated/SHA1NSEC3Digest.js +0 -1
  677. package/dist/esm/generated/SHA256Digest.js +0 -1
  678. package/dist/esm/generated/StaticMetadataService.d.ts +0 -42
  679. package/dist/esm/generated/StaticMetadataService.js +0 -1
  680. package/dist/esm/generated/TLDPublicSuffixList.d.ts +0 -42
  681. package/dist/esm/generated/TLDPublicSuffixList.js +0 -1
  682. package/dist/esm/generated/UniversalResolver.d.ts +0 -82
  683. package/dist/esm/generated/UniversalResolver.js +0 -1
  684. package/dist/esm/generated/common.js +0 -1
  685. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +0 -52
  686. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +0 -766
  687. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  688. package/dist/esm/generated/factories/DNSRegistrar__factory.js +0 -292
  689. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  690. package/dist/esm/generated/factories/DNSSECImpl__factory.js +0 -497
  691. package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +0 -83
  692. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
  693. package/dist/esm/generated/factories/ENSRegistry__factory.js +0 -435
  694. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +0 -507
  695. package/dist/esm/generated/factories/Multicall__factory.js +0 -453
  696. package/dist/esm/generated/factories/NameWrapper__factory.js +0 -1196
  697. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  698. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +0 -67
  699. package/dist/esm/generated/factories/PublicResolver__factory.js +0 -888
  700. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  701. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +0 -67
  702. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  703. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +0 -67
  704. package/dist/esm/generated/factories/ReverseRegistrar__factory.js +0 -336
  705. package/dist/esm/generated/factories/Root__factory.d.ts +0 -52
  706. package/dist/esm/generated/factories/Root__factory.js +0 -239
  707. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +0 -34
  708. package/dist/esm/generated/factories/SHA1Digest__factory.js +0 -62
  709. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  710. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +0 -67
  711. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +0 -34
  712. package/dist/esm/generated/factories/SHA256Digest__factory.js +0 -62
  713. package/dist/esm/generated/factories/StaticMetadataService__factory.js +0 -45
  714. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  715. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +0 -57
  716. package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +0 -42
  717. package/dist/esm/generated/factories/UniversalResolver__factory.js +0 -200
  718. package/dist/esm/generated/factories/index.d.ts +0 -6
  719. package/dist/esm/generated/factories/index.js +0 -9
  720. package/dist/esm/generated/index.d.ts +0 -13
  721. package/dist/esm/generated/index.js +0 -7
  722. package/dist/esm/index.d.ts +0 -471
  723. package/dist/esm/index.js +0 -190
  724. package/dist/esm/utils/contentHash.d.ts +0 -28
  725. package/dist/esm/utils/contentHash.js +0 -153
  726. package/dist/esm/utils/createReverseNode.d.ts +0 -2
  727. package/dist/esm/utils/createReverseNode.js +0 -1
  728. package/dist/esm/utils/format.d.ts +0 -3
  729. package/dist/esm/utils/format.js +0 -3
  730. package/dist/esm/utils/fuses.d.ts +0 -20
  731. package/dist/esm/utils/fuses.js +0 -21
  732. package/dist/esm/utils/generateFuseInput.d.ts +0 -3
  733. package/dist/esm/utils/generateFuseInput.js +0 -14
  734. package/dist/esm/utils/hexEncodedName.d.ts +0 -1
  735. package/dist/esm/utils/hexEncodedName.js +0 -2
  736. package/dist/esm/utils/labels.d.ts +0 -14
  737. package/dist/esm/utils/labels.js +0 -95
  738. package/dist/esm/utils/makeHashIndexes.d.ts +0 -2
  739. package/dist/esm/utils/makeHashIndexes.js +0 -3
  740. package/dist/esm/utils/normalise.d.ts +0 -2
  741. package/dist/esm/utils/normalise.js +0 -20
  742. package/dist/esm/utils/recordHelpers.d.ts +0 -13
  743. package/dist/esm/utils/recordHelpers.js +0 -39
  744. package/dist/esm/utils/registerHelpers.d.ts +0 -26
  745. package/dist/esm/utils/registerHelpers.js +0 -43
  746. package/dist/esm/utils/singleCall.js +0 -5
  747. package/dist/esm/utils/validation.d.ts +0 -8
  748. package/dist/esm/utils/validation.js +0 -67
  749. package/src/@types/FuseOptions.d.ts +0 -9
  750. package/src/ABIs/ETHRegistrarController.json +0 -494
  751. package/src/ABIs/NameWrapper.json +0 -1183
  752. package/src/ABIs/PublicResolver.json +0 -875
  753. package/src/ABIs/ReverseRegistrar.json +0 -323
  754. package/src/ABIs/StaticMetadataService.json +0 -32
  755. package/src/ABIs/UniversalResolver.json +0 -187
  756. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
  757. package/src/functions/getFuses.test.ts +0 -103
  758. package/src/functions/getFuses.ts +0 -76
  759. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
  760. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
  761. package/src/tests/setup.ts +0 -53
  762. package/src/tests/withProvider.test.ts +0 -28
@@ -1,8 +1,10 @@
1
1
  import { formatsByName } from '@ensdomains/address-encoder'
2
- import { ethers } from 'ethers'
2
+ import { defaultAbiCoder } from '@ethersproject/abi/lib/abi-coder'
3
+ import { hexStripZeros, isBytesLike } from '@ethersproject/bytes'
3
4
  import { ENSArgs } from '..'
4
5
  import { decodeContenthash, DecodedContentHash } from '../utils/contentHash'
5
6
  import { hexEncodeName } from '../utils/hexEncodedName'
7
+ import { namehash } from '../utils/normalise'
6
8
  import { parseInputType } from '../utils/validation'
7
9
 
8
10
  type InternalProfileOptions = {
@@ -17,6 +19,12 @@ type ProfileResponse = {
17
19
  coinTypes?: string[]
18
20
  }
19
21
 
22
+ type FallbackRecords = {
23
+ contentHash?: boolean
24
+ texts?: string[]
25
+ coinTypes?: string[]
26
+ }
27
+
20
28
  type DataItem = {
21
29
  key: string | number
22
30
  type: 'addr' | 'text' | 'contentHash'
@@ -37,63 +45,70 @@ type ResolvedProfile = {
37
45
  coinTypes?: DataItem[]
38
46
  }
39
47
  resolverAddress?: string
48
+ isInvalidResolverAddress?: boolean
40
49
  reverseResolverAddress?: string
41
50
  }
42
51
 
52
+ type CallObj = {
53
+ key: string
54
+ data: {
55
+ to: string
56
+ data: string
57
+ }
58
+ type: 'addr' | 'text' | 'contentHash'
59
+ }
60
+
43
61
  const makeMulticallData = async (
44
62
  {
45
63
  _getAddr,
46
64
  _getContentHash,
47
65
  _getText,
48
- resolverMulticallWrapper,
49
- }: ENSArgs<
50
- '_getText' | '_getAddr' | '_getContentHash' | 'resolverMulticallWrapper'
51
- >,
66
+ }: ENSArgs<'_getText' | '_getAddr' | '_getContentHash'>,
52
67
  name: string,
53
68
  options: InternalProfileOptions,
54
69
  ) => {
55
- let calls: any[] = []
56
- options.texts &&
57
- (calls = [
70
+ let calls: (CallObj | null)[] = []
71
+ if (options.texts)
72
+ calls = [
58
73
  ...calls,
59
74
  ...(await Promise.all(
60
75
  options.texts.map(async (x) => ({
61
76
  key: x,
62
77
  data: await _getText.raw(name, x),
63
- type: 'text',
78
+ type: 'text' as const,
64
79
  })),
65
80
  )),
66
- ])
67
- options.coinTypes &&
68
- (calls = [
81
+ ]
82
+
83
+ if (options.coinTypes)
84
+ calls = [
69
85
  ...calls,
70
86
  ...(await Promise.all(
71
87
  options.coinTypes.map(async (x) => ({
72
88
  key: x,
73
89
  data: await _getAddr.raw(name, x, true),
74
- type: 'addr',
90
+ type: 'addr' as const,
75
91
  })),
76
92
  )),
77
- ])
93
+ ]
94
+
78
95
  if (typeof options.contentHash === 'boolean' && options.contentHash) {
79
96
  calls.push({
80
97
  key: 'contentHash',
81
98
  data: await _getContentHash.raw(name),
82
- type: 'contenthash',
99
+ type: 'contentHash' as const,
83
100
  })
84
101
  }
85
102
 
86
- if (!calls.find((x) => x.key === '60')) {
103
+ if (!calls.find((x) => x!.key === '60')) {
87
104
  calls.push({
88
105
  key: '60',
89
106
  data: await _getAddr.raw(name, '60', true),
90
- type: 'addr',
107
+ type: 'addr' as const,
91
108
  })
92
109
  }
93
110
 
94
- const prRawData = await resolverMulticallWrapper.raw(calls.map((x) => x.data))
95
-
96
- return { data: prRawData.data, calls }
111
+ return { data: calls.map((x) => x!.data.data), calls }
97
112
  }
98
113
 
99
114
  const fetchWithoutResolverMulticall = async (
@@ -113,74 +128,11 @@ const fetchWithoutResolverMulticall = async (
113
128
  data: call.data.data,
114
129
  }))
115
130
 
116
- return (await multicallWrapper(callsWithResolver)).map(
117
- (x: [boolean, string]) => x[1],
118
- )
119
- }
120
-
121
- const getDataForName = async (
122
- {
123
- contracts,
124
- _getAddr,
125
- _getContentHash,
126
- _getText,
127
- resolverMulticallWrapper,
128
- multicallWrapper,
129
- }: ENSArgs<
130
- | 'contracts'
131
- | '_getText'
132
- | '_getAddr'
133
- | '_getContentHash'
134
- | 'resolverMulticallWrapper'
135
- | 'multicallWrapper'
136
- >,
137
- name: string,
138
- options: InternalProfileOptions,
139
- fallbackResolver: string,
140
- ) => {
141
- const universalResolver = await contracts?.getUniversalResolver()
131
+ const results = await multicallWrapper(callsWithResolver)
142
132
 
143
- const { data, calls } = await makeMulticallData(
144
- { _getAddr, _getContentHash, _getText, resolverMulticallWrapper },
145
- name,
146
- options,
147
- )
133
+ if (!results || !results.length) return []
148
134
 
149
- let resolvedData: any
150
- let useFallbackResolver = false
151
- try {
152
- resolvedData = await universalResolver?.resolve(hexEncodeName(name), data)
153
- } catch {
154
- useFallbackResolver = true
155
- }
156
-
157
- let resolverAddress: string
158
- let recordData: any
159
-
160
- if (useFallbackResolver) {
161
- resolverAddress = fallbackResolver
162
- recordData = await fetchWithoutResolverMulticall(
163
- { multicallWrapper },
164
- calls,
165
- resolverAddress,
166
- )
167
- } else {
168
- resolverAddress = resolvedData['1']
169
- ;[recordData] = await resolverMulticallWrapper.decode(resolvedData['0'])
170
- }
171
-
172
- const matchAddress = recordData[calls.findIndex((x) => x.key === '60')]
173
-
174
- return {
175
- address: matchAddress && (await _getAddr.decode(matchAddress)),
176
- records: await formatRecords(
177
- { _getAddr, _getContentHash, _getText },
178
- recordData,
179
- calls,
180
- options,
181
- ),
182
- resolverAddress,
183
- }
135
+ return results.map((x: [boolean, string]) => x[1])
184
136
  }
185
137
 
186
138
  const formatRecords = async (
@@ -193,7 +145,7 @@ const formatRecords = async (
193
145
  calls: any[],
194
146
  options: InternalProfileOptions,
195
147
  ) => {
196
- let returnedRecords: DataItem[] = (
148
+ const returnedRecords: DataItem[] = (
197
149
  await Promise.all(
198
150
  data.map(async (item: string, i: number) => {
199
151
  let decodedFromAbi: any
@@ -201,12 +153,9 @@ const formatRecords = async (
201
153
  key: calls[i].key,
202
154
  type: calls[i].type,
203
155
  }
204
- if (itemRet.type === 'contenthash') {
205
- decodedFromAbi = ethers.utils.defaultAbiCoder.decode(
206
- ['bytes'],
207
- item,
208
- )[0]
209
- if (ethers.utils.hexStripZeros(decodedFromAbi) === '0x') {
156
+ if (itemRet.type === 'contentHash') {
157
+ ;[decodedFromAbi] = defaultAbiCoder.decode(['bytes'], item)
158
+ if (hexStripZeros(decodedFromAbi) === '0x') {
210
159
  return
211
160
  }
212
161
  }
@@ -233,15 +182,17 @@ const formatRecords = async (
233
182
  } catch {
234
183
  return
235
184
  }
236
- case 'contenthash':
185
+ case 'contentHash':
237
186
  try {
238
187
  itemRet = {
239
188
  ...itemRet,
240
189
  value: await _getContentHash.decode(item),
241
190
  }
191
+ break
242
192
  } catch {
243
193
  return
244
194
  }
195
+ // no default
245
196
  }
246
197
  return itemRet
247
198
  }),
@@ -252,7 +203,7 @@ const formatRecords = async (
252
203
  })
253
204
  .filter((x) => x)
254
205
 
255
- let returnedResponse: {
206
+ const returnedResponse: {
256
207
  contentHash?: string | null | DecodedContentHash
257
208
  coinTypes?: DataItem[]
258
209
  texts?: DataItem[]
@@ -264,12 +215,12 @@ const formatRecords = async (
264
215
  ) {
265
216
  if (
266
217
  typeof options.contentHash === 'string' &&
267
- ethers.utils.hexStripZeros(options.contentHash) === '0x'
218
+ hexStripZeros(options.contentHash) === '0x'
268
219
  ) {
269
220
  returnedResponse.contentHash = null
270
221
  } else if (
271
- ethers.utils.isBytesLike((options.contentHash as any).decoded) &&
272
- ethers.utils.hexStripZeros((options.contentHash as any).decoded) === '0x'
222
+ isBytesLike((options.contentHash as any).decoded) &&
223
+ hexStripZeros((options.contentHash as any).decoded) === '0x'
273
224
  ) {
274
225
  returnedResponse.contentHash = null
275
226
  } else {
@@ -277,7 +228,7 @@ const formatRecords = async (
277
228
  }
278
229
  } else if (options.contentHash) {
279
230
  const foundRecord = returnedRecords.find(
280
- (item: any) => item.type === 'contenthash',
231
+ (item: any) => item.type === 'contentHash',
281
232
  )
282
233
  returnedResponse.contentHash = foundRecord ? foundRecord.value : null
283
234
  }
@@ -294,14 +245,121 @@ const formatRecords = async (
294
245
  return returnedResponse
295
246
  }
296
247
 
248
+ const getDataForName = async (
249
+ {
250
+ contracts,
251
+ _getAddr,
252
+ _getContentHash,
253
+ _getText,
254
+ multicallWrapper,
255
+ }: ENSArgs<
256
+ | 'contracts'
257
+ | '_getText'
258
+ | '_getAddr'
259
+ | '_getContentHash'
260
+ | 'resolverMulticallWrapper'
261
+ | 'multicallWrapper'
262
+ >,
263
+ name: string,
264
+ options: InternalProfileOptions,
265
+ specificResolver?: string,
266
+ ) => {
267
+ const universalResolver = await contracts?.getUniversalResolver()!
268
+
269
+ const { data, calls } = await makeMulticallData(
270
+ { _getAddr, _getContentHash, _getText },
271
+ name,
272
+ options,
273
+ )
274
+
275
+ let recordData: (string | null)[] | undefined
276
+ let resolverAddress: string | undefined = specificResolver
277
+
278
+ if (specificResolver) {
279
+ try {
280
+ const publicResolver = await contracts?.getPublicResolver(
281
+ undefined,
282
+ specificResolver,
283
+ )
284
+ recordData = await publicResolver?.callStatic.multicall(data)
285
+ } catch (e: any) {
286
+ console.error('getProfile error:', e)
287
+ recordData = await fetchWithoutResolverMulticall(
288
+ { multicallWrapper },
289
+ calls as CallObj[],
290
+ resolverAddress!,
291
+ )
292
+ }
293
+ } else {
294
+ try {
295
+ const resolvedData = await universalResolver['resolve(bytes,bytes[])'](
296
+ hexEncodeName(name),
297
+ data,
298
+ {
299
+ ccipReadEnabled: true,
300
+ },
301
+ )
302
+ recordData = [...resolvedData['0']]
303
+ resolverAddress = resolvedData['1']
304
+ for (let i = 0; i < recordData.length; i += 1) {
305
+ // error code for reverted call in batch
306
+ // this is expected when using offchain resolvers, so should be ignored
307
+ if (recordData[i]!.startsWith('0x0d1947a9')) {
308
+ calls[i] = null
309
+ recordData[i] = null
310
+ }
311
+ }
312
+ } catch {
313
+ const registryContract = await contracts?.getRegistry()
314
+ resolverAddress = await registryContract?.resolver(namehash(name))
315
+ return {
316
+ address: undefined,
317
+ records: {},
318
+ resolverAddress,
319
+ isInvalidResolverAddress: true,
320
+ }
321
+ }
322
+ }
323
+ if (
324
+ !resolverAddress ||
325
+ !recordData ||
326
+ hexStripZeros(resolverAddress) === '0x'
327
+ ) {
328
+ return {
329
+ address: undefined,
330
+ records: {},
331
+ resolverAddress: undefined,
332
+ }
333
+ }
334
+
335
+ const filteredCalls = calls.filter((x) => x) as CallObj[]
336
+ const filteredRecordData = recordData.filter((x) => x)
337
+
338
+ const matchAddress =
339
+ filteredRecordData[filteredCalls.findIndex((x) => x.key === '60')]
340
+
341
+ return {
342
+ address:
343
+ matchAddress && (await _getAddr.decode(matchAddress).catch(() => false)),
344
+ records: await formatRecords(
345
+ { _getAddr, _getContentHash, _getText },
346
+ filteredRecordData,
347
+ filteredCalls,
348
+ options,
349
+ ),
350
+ resolverAddress,
351
+ }
352
+ }
353
+
297
354
  const graphFetch = async (
298
355
  { gqlInstance }: ENSArgs<'gqlInstance'>,
299
356
  name: string,
300
357
  wantedRecords?: ProfileOptions,
358
+ resolverAddress?: string,
301
359
  ) => {
302
360
  const query = gqlInstance.gql`
303
- query getRecords($name: String!) {
304
- domains(where: { name: $name }) {
361
+ query getRecords($id: String!) {
362
+ domain(id: $id) {
305
363
  isMigrated
306
364
  createdAt
307
365
  resolver {
@@ -311,30 +369,56 @@ const graphFetch = async (
311
369
  addr {
312
370
  id
313
371
  }
314
- address
315
372
  }
316
373
  }
317
374
  }
318
375
  `
319
376
 
320
- const client = gqlInstance.client
377
+ const customResolverQuery = gqlInstance.gql`
378
+ query getRecordsWithCustomResolver($id: String!, $resolverId: String!) {
379
+ domain(id: $id) {
380
+ isMigrated
381
+ createdAt
382
+ }
383
+ resolver(id: $resolverId) {
384
+ texts
385
+ coinTypes
386
+ contentHash
387
+ addr {
388
+ id
389
+ }
390
+ }
391
+ }
392
+ `
393
+
394
+ const { client } = gqlInstance
321
395
 
322
- const { domains } = await client.request(query, { name })
396
+ const id = namehash(name)
323
397
 
324
- if (!domains || domains.length === 0) return
398
+ let domain: any
399
+ let resolverResponse: any
325
400
 
326
- const [{ resolver: resolverResponse, isMigrated, createdAt }] = domains
401
+ if (!resolverAddress) {
402
+ const response = await client.request(query, { id })
403
+ domain = response?.domain
404
+ resolverResponse = domain?.resolver
405
+ } else {
406
+ const resolverId = `${resolverAddress.toLowerCase()}-${id}`
407
+ const response = await client.request(customResolverQuery, {
408
+ id,
409
+ resolverId,
410
+ })
411
+ resolverResponse = response?.resolver
412
+ domain = response?.domain
413
+ }
327
414
 
328
- let returnedRecords: ProfileResponse = {}
415
+ if (!domain) return
329
416
 
330
- if (!resolverResponse) return { isMigrated, createdAt }
417
+ const { isMigrated, createdAt } = domain
331
418
 
332
- if (!wantedRecords)
333
- return {
334
- isMigrated,
335
- createdAt,
336
- graphResolverAddress: resolverResponse.address,
337
- }
419
+ const returnedRecords: ProfileResponse = {}
420
+
421
+ if (!resolverResponse || !wantedRecords) return { isMigrated, createdAt }
338
422
 
339
423
  Object.keys(wantedRecords).forEach((key: string) => {
340
424
  const data = wantedRecords[key as keyof ProfileOptions]
@@ -351,7 +435,6 @@ const graphFetch = async (
351
435
  ...returnedRecords,
352
436
  isMigrated,
353
437
  createdAt,
354
- graphResolverAddress: resolverResponse.address,
355
438
  }
356
439
  }
357
440
 
@@ -361,6 +444,11 @@ type ProfileOptions = {
361
444
  coinTypes?: boolean | string[]
362
445
  }
363
446
 
447
+ type InputProfileOptions = ProfileOptions & {
448
+ resolverAddress?: string
449
+ fallback?: FallbackRecords
450
+ }
451
+
364
452
  const getProfileFromName = async (
365
453
  {
366
454
  contracts,
@@ -380,41 +468,85 @@ const getProfileFromName = async (
380
468
  | 'multicallWrapper'
381
469
  >,
382
470
  name: string,
383
- options?: ProfileOptions,
384
- ) => {
385
- const usingOptions =
386
- !options || options?.texts === true || options?.coinTypes === true
387
- ? options || { contentHash: true, texts: true, coinTypes: true }
388
- : undefined
389
- const graphResult = await graphFetch({ gqlInstance }, name, usingOptions)
390
- if (!graphResult) return
391
- const {
392
- isMigrated,
393
- createdAt,
394
- graphResolverAddress,
395
- ...wantedRecords
396
- }: {
397
- isMigrated: boolean
398
- createdAt: string
399
- graphResolverAddress?: string
400
- } & InternalProfileOptions = graphResult
401
- if (!graphResolverAddress)
402
- return { isMigrated, createdAt, message: "Name doesn't have a resolver" }
403
- const result = await getDataForName(
404
- {
405
- contracts,
406
- _getAddr,
407
- _getContentHash,
408
- _getText,
409
- resolverMulticallWrapper,
410
- multicallWrapper,
411
- },
471
+ options?: InputProfileOptions,
472
+ ): Promise<ResolvedProfile | undefined> => {
473
+ const { resolverAddress, fallback, ..._options } = options || {}
474
+ const optsLength = Object.keys(_options).length
475
+ let usingOptions: InputProfileOptions | undefined
476
+ if (!optsLength || _options?.texts === true || _options?.coinTypes === true) {
477
+ if (optsLength) usingOptions = _options
478
+ else usingOptions = { contentHash: true, texts: true, coinTypes: true }
479
+ }
480
+
481
+ const graphResult = await graphFetch(
482
+ { gqlInstance },
412
483
  name,
413
- usingOptions ? wantedRecords : (options as InternalProfileOptions),
414
- graphResolverAddress,
484
+ usingOptions,
485
+ resolverAddress,
415
486
  )
416
- if (!result)
417
- return { isMigrated, createdAt, message: "Records fetch didn't complete" }
487
+ let isMigrated: boolean | null = null
488
+ let createdAt: string | null = null
489
+ let result: Awaited<ReturnType<typeof getDataForName>> | null = null
490
+ if (!graphResult) {
491
+ if (!fallback) return
492
+ result = await getDataForName(
493
+ {
494
+ contracts,
495
+ _getAddr,
496
+ _getContentHash,
497
+ _getText,
498
+ resolverMulticallWrapper,
499
+ multicallWrapper,
500
+ },
501
+ name,
502
+ fallback,
503
+ undefined,
504
+ )
505
+ } else {
506
+ const {
507
+ isMigrated: _isMigrated,
508
+ createdAt: _createdAt,
509
+ ...wantedRecords
510
+ }: {
511
+ isMigrated: boolean
512
+ createdAt: string
513
+ } & InternalProfileOptions = graphResult
514
+ isMigrated = _isMigrated
515
+ createdAt = _createdAt
516
+ let recordsWithFallback = usingOptions
517
+ ? wantedRecords
518
+ : (_options as InternalProfileOptions)
519
+ if (
520
+ (Object.keys(recordsWithFallback).length === 0 ||
521
+ (!recordsWithFallback.coinTypes &&
522
+ !recordsWithFallback.texts &&
523
+ Object.keys(recordsWithFallback.contentHash || {}).length === 0)) &&
524
+ fallback
525
+ ) {
526
+ recordsWithFallback = fallback
527
+ }
528
+ result = await getDataForName(
529
+ {
530
+ contracts,
531
+ _getAddr,
532
+ _getContentHash,
533
+ _getText,
534
+ resolverMulticallWrapper,
535
+ multicallWrapper,
536
+ },
537
+ name,
538
+ recordsWithFallback,
539
+ options?.resolverAddress!,
540
+ )
541
+ }
542
+ if (!result?.resolverAddress)
543
+ return {
544
+ isMigrated,
545
+ createdAt,
546
+ message: !result
547
+ ? "Records fetch didn't complete"
548
+ : "Name doesn't have a resolver",
549
+ }
418
550
  return { ...result, isMigrated, createdAt, message: undefined }
419
551
  }
420
552
 
@@ -439,7 +571,7 @@ const getProfileFromAddress = async (
439
571
  | 'multicallWrapper'
440
572
  >,
441
573
  address: string,
442
- options?: ProfileOptions,
574
+ options?: InputProfileOptions,
443
575
  ) => {
444
576
  let name
445
577
  try {
@@ -471,6 +603,13 @@ const getProfileFromAddress = async (
471
603
  }
472
604
  }
473
605
 
606
+ const mapCoinTypes = (coin: string) => {
607
+ if (!Number.isNaN(parseInt(coin))) {
608
+ return coin
609
+ }
610
+ return `${formatsByName[coin.toUpperCase()].coinType}`
611
+ }
612
+
474
613
  export default async function (
475
614
  {
476
615
  contracts,
@@ -492,16 +631,15 @@ export default async function (
492
631
  | 'multicallWrapper'
493
632
  >,
494
633
  nameOrAddress: string,
495
- options?: ProfileOptions,
634
+ options?: InputProfileOptions,
496
635
  ): Promise<ResolvedProfile | undefined> {
497
- if (options && options.coinTypes && typeof options.coinTypes !== 'boolean') {
498
- options.coinTypes = options.coinTypes.map((coin: string) => {
499
- if (!isNaN(parseInt(coin))) {
500
- return coin
501
- } else {
502
- return `${formatsByName[coin.toUpperCase()].coinType}`
503
- }
504
- })
636
+ if (options) {
637
+ if (options.coinTypes && typeof options.coinTypes !== 'boolean') {
638
+ options.coinTypes = options.coinTypes.map(mapCoinTypes)
639
+ }
640
+ if (options.fallback && options.fallback.coinTypes) {
641
+ options.fallback.coinTypes = options.fallback.coinTypes.map(mapCoinTypes)
642
+ }
505
643
  }
506
644
 
507
645
  const inputType = parseInputType(nameOrAddress)
@@ -5,6 +5,7 @@ type ProfileOptions = {
5
5
  contentHash?: boolean
6
6
  texts?: boolean | string[]
7
7
  coinTypes?: boolean | string[]
8
+ resolverAddress?: string
8
9
  }
9
10
 
10
11
  export default async function (
@@ -18,5 +19,5 @@ export default async function (
18
19
  throw new Error('Input must be an ENS name')
19
20
  }
20
21
 
21
- return await getProfile(name, options)
22
+ return getProfile(name, options)
22
23
  }
@@ -1,19 +1,15 @@
1
1
  import { ENS } from '..'
2
- import setup from '../tests/setup'
2
+ import setup, { deploymentAddresses } from '../tests/setup'
3
3
 
4
- let ENSInstance: ENS
4
+ let ensInstance: ENS
5
5
 
6
6
  beforeAll(async () => {
7
- ;({ ENSInstance } = await setup())
7
+ ;({ ensInstance } = await setup())
8
8
  })
9
9
 
10
10
  describe('getResolver', () => {
11
11
  it('should find the resolver for a name with a resolver', async () => {
12
- const result = await ENSInstance.getResolver('jefflau.eth')
13
- expect(result).toBe('0x42D63ae25990889E35F215bC95884039Ba354115')
14
- })
15
- it('should return .eth resolver for an unregistered name', async () => {
16
- const result = await ENSInstance.getResolver('test123123cool.eth')
17
- expect(result).toBe('0x3E8Dc215A6E404A7Ba811DE5Da3ff2A809AE94E2')
12
+ const result = await ensInstance.getResolver('with-profile.eth')
13
+ expect(result).toBe(deploymentAddresses.LegacyPublicResolver)
18
14
  })
19
15
  })
@@ -1,4 +1,4 @@
1
- import { ethers } from 'ethers'
1
+ import { hexStripZeros } from '@ethersproject/bytes'
2
2
  import { ENSArgs } from '..'
3
3
  import { hexEncodeName } from '../utils/hexEncodedName'
4
4
 
@@ -19,11 +19,7 @@ const decode = async ({ contracts }: ENSArgs<'contracts'>, data: string) => {
19
19
  data,
20
20
  )
21
21
 
22
- if (
23
- !response ||
24
- !response[0] ||
25
- ethers.utils.hexStripZeros(response[0]) === '0x'
26
- ) {
22
+ if (!response || !response[0] || hexStripZeros(response[0]) === '0x') {
27
23
  return
28
24
  }
29
25
  return response[0]