@ensdomains/ensjs 3.0.0-alpha.5 → 3.0.0-alpha.51

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