@ensdomains/ensjs 3.0.0-alpha.6 → 3.0.0-alpha.61

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 (777) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +13 -1
  3. package/dist/cjs/GqlManager.js +115 -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 +68 -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 +299 -104
  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 +452 -253
  33. package/dist/cjs/functions/getResolver.js +41 -19
  34. package/dist/cjs/functions/getSpecificRecord.js +270 -260
  35. package/dist/cjs/functions/getSubnames.js +99 -118
  36. package/dist/cjs/functions/getWrapperData.js +65 -0
  37. package/dist/cjs/functions/importDNSSECName.js +65 -0
  38. package/dist/cjs/functions/initialGetters.js +46 -37
  39. package/dist/cjs/functions/registerName.js +44 -0
  40. package/dist/cjs/functions/renewNames.js +55 -0
  41. package/dist/cjs/functions/setFuses.js +49 -0
  42. package/dist/cjs/functions/setName.js +41 -10
  43. package/dist/cjs/functions/setRecord.js +56 -0
  44. package/dist/cjs/functions/setRecords.js +50 -22
  45. package/dist/cjs/functions/setResolver.js +44 -18
  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 +62 -26
  49. package/dist/cjs/functions/transferSubname.js +56 -21
  50. package/dist/cjs/functions/types.js +16 -0
  51. package/dist/cjs/functions/unwrapName.js +50 -20
  52. package/dist/cjs/functions/wrapName.js +107 -52
  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 +623 -504
  82. package/dist/cjs/generated/factories/Multicall__factory.js +458 -441
  83. package/dist/cjs/generated/factories/NameWrapper__factory.js +1400 -1194
  84. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +61 -67
  85. package/dist/cjs/generated/factories/PublicResolver__factory.js +1040 -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 +558 -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 +314 -228
  99. package/dist/cjs/static.js +85 -0
  100. package/dist/cjs/utils/ccip.js +129 -0
  101. package/dist/cjs/utils/consts.js +30 -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 +294 -15
  106. package/dist/cjs/utils/hexEncodedName.js +31 -7
  107. package/dist/cjs/utils/labels.js +105 -83
  108. package/dist/cjs/utils/makeHashIndexes.js +27 -6
  109. package/dist/cjs/utils/normalise.js +59 -22
  110. package/dist/cjs/utils/recordHelpers.js +157 -37
  111. package/dist/cjs/utils/registerHelpers.js +104 -46
  112. package/dist/cjs/utils/registry.js +32 -0
  113. package/dist/cjs/utils/singleCall.js +31 -6
  114. package/dist/cjs/utils/subgraph-types.js +16 -0
  115. package/dist/cjs/utils/validation.js +77 -68
  116. package/dist/cjs/utils/wrapper.js +56 -0
  117. package/dist/cjs/utils/writeTx.js +24 -2
  118. package/dist/esm/GqlManager.mjs +94 -0
  119. package/dist/esm/contracts/baseRegistrar.mjs +6 -0
  120. package/dist/esm/contracts/bulkRenewal.mjs +6 -0
  121. package/dist/esm/contracts/dnsRegistrar.mjs +6 -0
  122. package/dist/esm/contracts/ethRegistrarController.mjs +6 -0
  123. package/dist/esm/contracts/factories.mjs +0 -0
  124. package/dist/esm/contracts/getContractAddress.mjs +52 -0
  125. package/dist/esm/contracts/index.mjs +44 -0
  126. package/dist/esm/contracts/multicall.mjs +6 -0
  127. package/dist/esm/contracts/nameWrapper.mjs +6 -0
  128. package/dist/esm/contracts/publicResolver.mjs +6 -0
  129. package/dist/esm/contracts/registry.mjs +6 -0
  130. package/dist/esm/contracts/reverseRegistrar.mjs +6 -0
  131. package/dist/esm/contracts/types.mjs +0 -0
  132. package/dist/esm/contracts/universalResolver.mjs +6 -0
  133. package/dist/esm/functions/batch.mjs +37 -0
  134. package/dist/esm/functions/batchWrappers.mjs +109 -0
  135. package/dist/esm/functions/commitName.mjs +29 -0
  136. package/dist/esm/functions/createSubname.mjs +61 -0
  137. package/dist/esm/functions/deleteSubname.mjs +52 -0
  138. package/dist/esm/functions/getAvailable.mjs +36 -0
  139. package/dist/esm/functions/getDNSOwner.mjs +60 -0
  140. package/dist/esm/functions/getDecryptedName.mjs +96 -0
  141. package/dist/esm/functions/getExpiry.mjs +96 -0
  142. package/dist/esm/functions/getHistory.mjs +245 -0
  143. package/dist/esm/functions/getName.mjs +38 -0
  144. package/dist/esm/functions/getNames.mjs +398 -0
  145. package/dist/esm/functions/getOwner.mjs +189 -0
  146. package/dist/esm/functions/getPrice.mjs +107 -0
  147. package/dist/esm/functions/getProfile.mjs +482 -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 +116 -0
  151. package/dist/esm/functions/getWrapperData.mjs +46 -0
  152. package/dist/esm/functions/importDNSSECName.mjs +40 -0
  153. package/dist/esm/functions/initialGetters.mjs +23 -0
  154. package/dist/esm/functions/registerName.mjs +27 -0
  155. package/dist/esm/functions/renewNames.mjs +36 -0
  156. package/dist/esm/functions/setFuses.mjs +30 -0
  157. package/dist/esm/functions/setName.mjs +23 -0
  158. package/dist/esm/functions/setRecord.mjs +36 -0
  159. package/dist/esm/functions/setRecords.mjs +32 -0
  160. package/dist/esm/functions/setResolver.mjs +29 -0
  161. package/dist/esm/functions/supportsTLD.mjs +29 -0
  162. package/dist/esm/functions/transferController.mjs +23 -0
  163. package/dist/esm/functions/transferName.mjs +46 -0
  164. package/dist/esm/functions/transferSubname.mjs +40 -0
  165. package/dist/esm/functions/types.mjs +0 -0
  166. package/dist/esm/functions/unwrapName.mjs +34 -0
  167. package/dist/esm/functions/wrapName.mjs +96 -0
  168. package/dist/esm/generated/BaseRegistrarImplementation.mjs +0 -0
  169. package/dist/esm/generated/BulkRenewal.mjs +0 -0
  170. package/dist/esm/generated/DNSRegistrar.mjs +0 -0
  171. package/dist/esm/generated/DNSSECImpl.mjs +0 -0
  172. package/dist/esm/generated/DefaultReverseResolver.mjs +0 -0
  173. package/dist/esm/generated/ENSRegistry.mjs +0 -0
  174. package/dist/esm/generated/ETHRegistrarController.mjs +0 -0
  175. package/dist/esm/generated/Multicall.mjs +0 -0
  176. package/dist/esm/generated/NameWrapper.mjs +0 -0
  177. package/dist/esm/generated/P256SHA256Algorithm.mjs +0 -0
  178. package/dist/esm/generated/PublicResolver.mjs +0 -0
  179. package/dist/esm/generated/RSASHA1Algorithm.mjs +0 -0
  180. package/dist/esm/generated/RSASHA256Algorithm.mjs +0 -0
  181. package/dist/esm/generated/ReverseRegistrar.mjs +0 -0
  182. package/dist/esm/generated/Root.mjs +0 -0
  183. package/dist/esm/generated/SHA1Digest.mjs +0 -0
  184. package/dist/esm/generated/SHA1NSEC3Digest.mjs +0 -0
  185. package/dist/esm/generated/SHA256Digest.mjs +0 -0
  186. package/dist/esm/generated/StaticMetadataService.mjs +0 -0
  187. package/dist/esm/generated/TLDPublicSuffixList.mjs +0 -0
  188. package/dist/esm/generated/UniversalResolver.mjs +0 -0
  189. package/dist/esm/generated/common.mjs +0 -0
  190. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +779 -0
  191. package/dist/esm/generated/factories/BulkRenewal__factory.mjs +109 -0
  192. package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +278 -0
  193. package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +483 -0
  194. package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +96 -0
  195. package/dist/esm/generated/factories/ENSRegistry__factory.mjs +444 -0
  196. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +618 -0
  197. package/dist/esm/generated/factories/Multicall__factory.mjs +462 -0
  198. package/dist/esm/generated/factories/NameWrapper__factory.mjs +1394 -0
  199. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +53 -0
  200. package/dist/esm/generated/factories/PublicResolver__factory.mjs +1035 -0
  201. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +53 -0
  202. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +53 -0
  203. package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +358 -0
  204. package/dist/esm/generated/factories/Root__factory.mjs +248 -0
  205. package/dist/esm/generated/factories/SHA1Digest__factory.mjs +48 -0
  206. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +53 -0
  207. package/dist/esm/generated/factories/SHA256Digest__factory.mjs +48 -0
  208. package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +58 -0
  209. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +43 -0
  210. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +551 -0
  211. package/dist/esm/generated/factories/index.mjs +45 -0
  212. package/dist/esm/generated/index.mjs +47 -0
  213. package/dist/esm/index.mjs +306 -0
  214. package/dist/esm/static.mjs +62 -0
  215. package/dist/esm/utils/ccip.mjs +114 -0
  216. package/dist/esm/utils/consts.mjs +11 -0
  217. package/dist/esm/utils/contentHash.mjs +142 -0
  218. package/dist/esm/utils/createReverseNode.mjs +5 -0
  219. package/dist/esm/utils/format.mjs +9 -0
  220. package/dist/esm/utils/fuses.mjs +284 -0
  221. package/dist/esm/utils/hexEncodedName.mjs +8 -0
  222. package/dist/esm/utils/labels.mjs +112 -0
  223. package/dist/esm/utils/makeHashIndexes.mjs +10 -0
  224. package/dist/esm/utils/normalise.mjs +55 -0
  225. package/dist/esm/utils/recordHelpers.mjs +139 -0
  226. package/dist/esm/utils/registerHelpers.mjs +90 -0
  227. package/dist/esm/utils/registry.mjs +13 -0
  228. package/dist/esm/utils/singleCall.mjs +13 -0
  229. package/dist/esm/utils/subgraph-types.mjs +0 -0
  230. package/dist/esm/utils/validation.mjs +62 -0
  231. package/dist/esm/utils/wrapper.mjs +37 -0
  232. package/dist/esm/utils/writeTx.mjs +6 -0
  233. package/dist/types/GqlManager.d.ts +13 -0
  234. package/dist/types/contracts/baseRegistrar.d.ts +3 -0
  235. package/dist/types/contracts/bulkRenewal.d.ts +3 -0
  236. package/dist/types/contracts/dnsRegistrar.d.ts +3 -0
  237. package/dist/types/contracts/ethRegistrarController.d.ts +3 -0
  238. package/dist/types/contracts/factories.d.ts +45 -0
  239. package/dist/types/contracts/index.d.ts +38 -0
  240. package/dist/types/contracts/multicall.d.ts +3 -0
  241. package/dist/types/contracts/nameWrapper.d.ts +3 -0
  242. package/dist/types/contracts/publicResolver.d.ts +3 -0
  243. package/dist/types/contracts/registry.d.ts +3 -0
  244. package/dist/types/contracts/reverseRegistrar.d.ts +3 -0
  245. package/dist/types/contracts/types.d.ts +2 -0
  246. package/dist/types/contracts/universalResolver.d.ts +3 -0
  247. package/dist/{cjs → types}/functions/batch.d.ts +8 -1
  248. package/dist/types/functions/batchWrappers.d.ts +86 -0
  249. package/dist/types/functions/commitName.d.ts +25 -0
  250. package/dist/types/functions/createSubname.d.ts +16 -0
  251. package/dist/types/functions/deleteSubname.d.ts +12 -0
  252. package/dist/{esm/functions/getResolver.d.ts → types/functions/getAvailable.d.ts} +1 -1
  253. package/dist/types/functions/getDecryptedName.d.ts +9 -0
  254. package/dist/types/functions/getExpiry.d.ts +19 -0
  255. package/dist/types/functions/getHistory.d.ts +44 -0
  256. package/dist/{cjs → types}/functions/getName.d.ts +2 -2
  257. package/dist/{esm → types}/functions/getNames.d.ts +21 -3
  258. package/dist/{cjs → types}/functions/getOwner.d.ts +2 -1
  259. package/dist/{esm → types}/functions/getPrice.d.ts +3 -3
  260. package/dist/{esm → types}/functions/getProfile.d.ts +12 -1
  261. package/dist/{esm → types}/functions/getSpecificRecord.d.ts +28 -6
  262. package/dist/{esm → types}/functions/getSubnames.d.ts +18 -6
  263. package/dist/types/functions/getWrapperData.d.ts +54 -0
  264. package/dist/types/functions/importDNSSECName.d.ts +7 -0
  265. package/dist/{cjs → types}/functions/initialGetters.d.ts +1 -1
  266. package/dist/types/functions/registerName.d.ts +8 -0
  267. package/dist/types/functions/renewNames.d.ts +12 -0
  268. package/dist/types/functions/setFuses.d.ts +7 -0
  269. package/dist/types/functions/setRecord.d.ts +22 -0
  270. package/dist/types/functions/supportsTLD.d.ts +2 -0
  271. package/dist/{esm/functions/setName.d.ts → types/functions/transferController.d.ts} +3 -3
  272. package/dist/{esm → types}/functions/transferName.d.ts +3 -3
  273. package/dist/{esm/functions/createSubname.d.ts → types/functions/transferSubname.d.ts} +3 -4
  274. package/dist/types/functions/types.d.ts +81 -0
  275. package/dist/types/functions/wrapName.d.ts +9 -0
  276. package/dist/types/generated/BaseRegistrarImplementation.d.ts +512 -0
  277. package/dist/types/generated/BulkRenewal.d.ts +80 -0
  278. package/dist/types/generated/DNSRegistrar.d.ts +228 -0
  279. package/dist/types/generated/DNSSECImpl.d.ts +406 -0
  280. package/dist/types/generated/DefaultReverseResolver.d.ts +70 -0
  281. package/dist/types/generated/ENSRegistry.d.ts +278 -0
  282. package/dist/types/generated/ETHRegistrarController.d.ts +343 -0
  283. package/dist/{esm → types}/generated/Multicall.d.ts +113 -109
  284. package/dist/types/generated/NameWrapper.d.ts +859 -0
  285. package/dist/{esm → types}/generated/P256SHA256Algorithm.d.ts +22 -14
  286. package/dist/types/generated/PublicResolver.d.ts +647 -0
  287. package/dist/types/generated/RSASHA1Algorithm.d.ts +50 -0
  288. package/dist/types/generated/RSASHA256Algorithm.d.ts +50 -0
  289. package/dist/types/generated/ReverseRegistrar.d.ts +283 -0
  290. package/dist/types/generated/Root.d.ts +177 -0
  291. package/dist/{cjs → types}/generated/SHA1Digest.d.ts +18 -14
  292. package/dist/{esm → types}/generated/SHA1NSEC3Digest.d.ts +22 -14
  293. package/dist/{esm → types}/generated/SHA256Digest.d.ts +18 -14
  294. package/dist/types/generated/StaticMetadataService.d.ts +46 -0
  295. package/dist/types/generated/TLDPublicSuffixList.d.ts +46 -0
  296. package/dist/types/generated/UniversalResolver.d.ts +235 -0
  297. package/dist/{esm → types}/generated/common.d.ts +4 -3
  298. package/dist/{cjs → types}/generated/factories/BaseRegistrarImplementation__factory.d.ts +3 -3
  299. package/dist/{cjs/generated/factories/StaticMetadataService__factory.d.ts → types/generated/factories/BulkRenewal__factory.d.ts} +6 -6
  300. package/dist/{cjs/generated/factories/ETHRegistrarController__factory.d.ts → types/generated/factories/DNSRegistrar__factory.d.ts} +17 -16
  301. package/dist/{esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts → types/generated/factories/DNSSECImpl__factory.d.ts} +11 -11
  302. package/dist/{esm → types}/generated/factories/DefaultReverseResolver__factory.d.ts +3 -3
  303. package/dist/{esm → types}/generated/factories/ENSRegistry__factory.d.ts +3 -3
  304. package/dist/{esm → types}/generated/factories/ETHRegistrarController__factory.d.ts +15 -4
  305. package/dist/{esm → types}/generated/factories/Multicall__factory.d.ts +3 -3
  306. package/dist/{esm → types}/generated/factories/NameWrapper__factory.d.ts +3 -3
  307. package/dist/types/generated/factories/P256SHA256Algorithm__factory.d.ts +22 -0
  308. package/dist/{esm → types}/generated/factories/PublicResolver__factory.d.ts +3 -3
  309. package/dist/types/generated/factories/RSASHA1Algorithm__factory.d.ts +22 -0
  310. package/dist/types/generated/factories/RSASHA256Algorithm__factory.d.ts +22 -0
  311. package/dist/{esm → types}/generated/factories/ReverseRegistrar__factory.d.ts +3 -3
  312. package/dist/{cjs → types}/generated/factories/Root__factory.d.ts +3 -3
  313. package/dist/types/generated/factories/SHA1Digest__factory.d.ts +22 -0
  314. package/dist/types/generated/factories/SHA1NSEC3Digest__factory.d.ts +22 -0
  315. package/dist/types/generated/factories/SHA256Digest__factory.d.ts +22 -0
  316. package/dist/{esm → types}/generated/factories/StaticMetadataService__factory.d.ts +3 -3
  317. package/dist/types/generated/factories/TLDPublicSuffixList__factory.d.ts +22 -0
  318. package/dist/{cjs/generated/factories/NameWrapper__factory.d.ts → types/generated/factories/UniversalResolver__factory.d.ts} +6 -6
  319. package/dist/types/generated/factories/index.d.ts +21 -0
  320. package/dist/types/generated/index.d.ts +43 -0
  321. package/dist/types/index.d.ts +657 -0
  322. package/dist/types/static.d.ts +26 -0
  323. package/dist/types/utils/ccip.d.ts +3 -0
  324. package/dist/types/utils/consts.d.ts +4 -0
  325. package/dist/types/utils/fuses.d.ts +136 -0
  326. package/dist/{cjs → types}/utils/hexEncodedName.d.ts +1 -0
  327. package/dist/{esm → types}/utils/labels.d.ts +2 -1
  328. package/dist/types/utils/normalise.d.ts +11 -0
  329. package/dist/types/utils/recordHelpers.d.ts +29 -0
  330. package/dist/types/utils/registerHelpers.d.ts +41 -0
  331. package/dist/types/utils/registry.d.ts +2 -0
  332. package/dist/{esm → types}/utils/singleCall.d.ts +3 -2
  333. package/dist/types/utils/subgraph-types.d.ts +284 -0
  334. package/dist/types/utils/validation.d.ts +13 -0
  335. package/dist/types/utils/wrapper.d.ts +7 -0
  336. package/dist/types/utils/writeTx.d.ts +21 -0
  337. package/package.json +109 -39
  338. package/src/@types/@ensdomains/ens-contracts.d.ts +1 -1
  339. package/src/@types/dns-packet/index.d.ts +113 -113
  340. package/src/@types/pako.d.ts +188 -0
  341. package/src/ABIs/Multicall.json +452 -0
  342. package/src/GqlManager.test.ts +173 -0
  343. package/src/GqlManager.ts +111 -9
  344. package/src/contracts/baseRegistrar.ts +2 -2
  345. package/src/contracts/bulkRenewal.ts +6 -0
  346. package/src/contracts/dnsRegistrar.ts +5 -0
  347. package/src/contracts/ethRegistrarController.ts +2 -2
  348. package/src/contracts/factories.ts +48 -0
  349. package/src/contracts/getContractAddress.ts +23 -14
  350. package/src/contracts/index.ts +72 -48
  351. package/src/contracts/multicall.ts +2 -21
  352. package/src/contracts/nameWrapper.ts +2 -2
  353. package/src/contracts/publicResolver.ts +2 -2
  354. package/src/contracts/registry.ts +2 -2
  355. package/src/contracts/reverseRegistrar.ts +2 -2
  356. package/src/contracts/types.ts +3 -1
  357. package/src/contracts/universalResolver.ts +2 -2
  358. package/src/functions/batch.test.ts +10 -10
  359. package/src/functions/batch.ts +18 -8
  360. package/src/functions/batchWrappers.test.ts +13 -13
  361. package/src/functions/batchWrappers.ts +42 -11
  362. package/src/functions/ccip.test.ts +77 -0
  363. package/src/functions/commitName.test.ts +58 -0
  364. package/src/functions/commitName.ts +38 -0
  365. package/src/functions/createSubname.test.ts +10 -15
  366. package/src/functions/createSubname.ts +23 -10
  367. package/src/functions/deleteSubname.test.ts +160 -30
  368. package/src/functions/deleteSubname.ts +64 -10
  369. package/src/functions/getAvailable.test.ts +21 -0
  370. package/src/functions/getAvailable.ts +37 -0
  371. package/src/functions/getDNSOwner.test.ts +9 -19
  372. package/src/functions/getDNSOwner.ts +11 -9
  373. package/src/functions/getDecryptedName.test.ts +49 -0
  374. package/src/functions/getDecryptedName.ts +119 -0
  375. package/src/functions/getExpiry.test.ts +28 -10
  376. package/src/functions/getExpiry.ts +90 -11
  377. package/src/functions/getHistory.test.ts +27 -79
  378. package/src/functions/getHistory.ts +166 -194
  379. package/src/functions/getName.test.ts +10 -10
  380. package/src/functions/getName.ts +4 -4
  381. package/src/functions/getNames.test.ts +235 -89
  382. package/src/functions/getNames.ts +275 -45
  383. package/src/functions/getOwner.test.ts +57 -51
  384. package/src/functions/getOwner.ts +87 -29
  385. package/src/functions/getPrice.test.ts +55 -0
  386. package/src/functions/getPrice.ts +66 -13
  387. package/src/functions/getProfile.test.ts +135 -29
  388. package/src/functions/getProfile.ts +311 -166
  389. package/src/functions/getResolver.test.ts +5 -9
  390. package/src/functions/getResolver.ts +2 -6
  391. package/src/functions/getSpecificRecord.test.ts +185 -20
  392. package/src/functions/getSpecificRecord.ts +114 -149
  393. package/src/functions/getSubnames.test.ts +1556 -7
  394. package/src/functions/getSubnames.ts +105 -114
  395. package/src/functions/getWrapperData.test.ts +90 -0
  396. package/src/functions/getWrapperData.ts +51 -0
  397. package/src/functions/importDNSSECName.ts +54 -0
  398. package/src/functions/initialGetters.ts +1 -1
  399. package/src/functions/makeCommitment.test.ts +6 -6
  400. package/src/functions/registerName.test.ts +59 -0
  401. package/src/functions/registerName.ts +38 -0
  402. package/src/functions/renewNames.test.ts +64 -0
  403. package/src/functions/renewNames.ts +54 -0
  404. package/src/functions/setFuses.test.ts +257 -0
  405. package/src/functions/setFuses.ts +44 -0
  406. package/src/functions/setName.test.ts +21 -18
  407. package/src/functions/setRecord.test.ts +315 -0
  408. package/src/functions/setRecord.ts +64 -0
  409. package/src/functions/setRecords.test.ts +170 -14
  410. package/src/functions/setResolver.test.ts +10 -15
  411. package/src/functions/setResolver.ts +1 -1
  412. package/src/functions/supportsTLD.test.ts +45 -0
  413. package/src/functions/supportsTLD.ts +38 -0
  414. package/src/functions/transferController.ts +29 -0
  415. package/src/functions/transferName.test.ts +18 -32
  416. package/src/functions/transferName.ts +11 -6
  417. package/src/functions/transferSubname.test.ts +126 -43
  418. package/src/functions/transferSubname.ts +26 -13
  419. package/src/functions/types.ts +100 -0
  420. package/src/functions/unwrapName.test.ts +17 -32
  421. package/src/functions/unwrapName.ts +15 -14
  422. package/src/functions/wrapName.test.ts +121 -37
  423. package/src/functions/wrapName.ts +57 -50
  424. package/src/generated/BaseRegistrarImplementation.ts +846 -773
  425. package/src/generated/BulkRenewal.ts +196 -0
  426. package/src/generated/DNSRegistrar.ts +276 -262
  427. package/src/generated/DNSSECImpl.ts +436 -412
  428. package/src/generated/DefaultReverseResolver.ts +95 -79
  429. package/src/generated/ENSRegistry.ts +491 -422
  430. package/src/generated/ETHRegistrarController.ts +583 -492
  431. package/src/generated/Multicall.ts +345 -336
  432. package/src/generated/NameWrapper.ts +1645 -1215
  433. package/src/generated/P256SHA256Algorithm.ts +70 -65
  434. package/src/generated/PublicResolver.ts +1228 -941
  435. package/src/generated/RSASHA1Algorithm.ts +70 -65
  436. package/src/generated/RSASHA256Algorithm.ts +70 -65
  437. package/src/generated/ReverseRegistrar.ts +428 -362
  438. package/src/generated/Root.ts +295 -241
  439. package/src/generated/SHA1Digest.ts +61 -60
  440. package/src/generated/SHA1NSEC3Digest.ts +70 -66
  441. package/src/generated/SHA256Digest.ts +61 -60
  442. package/src/generated/StaticMetadataService.ts +61 -46
  443. package/src/generated/TLDPublicSuffixList.ts +59 -55
  444. package/src/generated/UniversalResolver.ts +696 -189
  445. package/src/generated/common.ts +16 -14
  446. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +340 -338
  447. package/src/generated/factories/BulkRenewal__factory.ts +110 -0
  448. package/src/generated/factories/DNSRegistrar__factory.ts +134 -184
  449. package/src/generated/factories/DNSSECImpl__factory.ts +233 -276
  450. package/src/generated/factories/DefaultReverseResolver__factory.ts +40 -38
  451. package/src/generated/factories/ENSRegistry__factory.ts +199 -197
  452. package/src/generated/factories/ETHRegistrarController__factory.ts +351 -251
  453. package/src/generated/factories/Multicall__factory.ts +226 -224
  454. package/src/generated/factories/NameWrapper__factory.ts +792 -601
  455. package/src/generated/factories/P256SHA256Algorithm__factory.ts +27 -61
  456. package/src/generated/factories/PublicResolver__factory.ts +573 -436
  457. package/src/generated/factories/RSASHA1Algorithm__factory.ts +27 -61
  458. package/src/generated/factories/RSASHA256Algorithm__factory.ts +27 -61
  459. package/src/generated/factories/ReverseRegistrar__factory.ts +175 -160
  460. package/src/generated/factories/Root__factory.ts +103 -101
  461. package/src/generated/factories/SHA1Digest__factory.ts +24 -58
  462. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +27 -61
  463. package/src/generated/factories/SHA256Digest__factory.ts +24 -58
  464. package/src/generated/factories/StaticMetadataService__factory.ts +25 -23
  465. package/src/generated/factories/TLDPublicSuffixList__factory.ts +21 -55
  466. package/src/generated/factories/UniversalResolver__factory.ts +446 -102
  467. package/src/generated/factories/index.ts +15 -0
  468. package/src/generated/index.ts +31 -1
  469. package/src/index.ts +218 -165
  470. package/src/static.ts +94 -0
  471. package/src/utils/ccip.ts +149 -0
  472. package/src/utils/consts.ts +4 -0
  473. package/src/utils/contentHash.ts +29 -27
  474. package/src/utils/createReverseNode.ts +1 -1
  475. package/src/utils/fuses.ts +343 -4
  476. package/src/utils/hexEncodedName.ts +3 -0
  477. package/src/utils/labels.ts +20 -16
  478. package/src/utils/normalise.ts +56 -9
  479. package/src/utils/recordHelpers.test.ts +36 -0
  480. package/src/utils/recordHelpers.ts +139 -21
  481. package/src/utils/registerHelpers.ts +98 -56
  482. package/src/utils/registry.ts +14 -0
  483. package/src/utils/singleCall.ts +13 -8
  484. package/src/utils/subgraph-types.ts +312 -0
  485. package/src/utils/validation.test.ts +164 -0
  486. package/src/utils/validation.ts +55 -53
  487. package/src/utils/wrapper.ts +39 -0
  488. package/src/utils/writeTx.ts +14 -4
  489. package/dist/cjs/GqlManager.d.ts +0 -6
  490. package/dist/cjs/contracts/baseRegistrar.d.ts +0 -3
  491. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  492. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
  493. package/dist/cjs/contracts/ethRegistrarController.d.ts +0 -3
  494. package/dist/cjs/contracts/index.d.ts +0 -16
  495. package/dist/cjs/contracts/multicall.d.ts +0 -3
  496. package/dist/cjs/contracts/nameWrapper.d.ts +0 -3
  497. package/dist/cjs/contracts/publicResolver.d.ts +0 -3
  498. package/dist/cjs/contracts/registry.d.ts +0 -3
  499. package/dist/cjs/contracts/reverseRegistrar.d.ts +0 -3
  500. package/dist/cjs/contracts/types.d.ts +0 -2
  501. package/dist/cjs/contracts/universalResolver.d.ts +0 -3
  502. package/dist/cjs/functions/batchWrappers.d.ts +0 -29
  503. package/dist/cjs/functions/burnFuses.d.ts +0 -5
  504. package/dist/cjs/functions/burnFuses.js +0 -14
  505. package/dist/cjs/functions/createSubname.d.ts +0 -15
  506. package/dist/cjs/functions/deleteSubname.d.ts +0 -4
  507. package/dist/cjs/functions/getExpiry.d.ts +0 -12
  508. package/dist/cjs/functions/getFuses.d.ts +0 -17
  509. package/dist/cjs/functions/getFuses.js +0 -62
  510. package/dist/cjs/functions/getHistory.d.ts +0 -54
  511. package/dist/cjs/functions/getNames.d.ts +0 -40
  512. package/dist/cjs/functions/getPrice.d.ts +0 -13
  513. package/dist/cjs/functions/getProfile.d.ts +0 -30
  514. package/dist/cjs/functions/getRecords.d.ts +0 -32
  515. package/dist/cjs/functions/getRecords.js +0 -11
  516. package/dist/cjs/functions/getSpecificRecord.d.ts +0 -73
  517. package/dist/cjs/functions/getSubnames.d.ts +0 -26
  518. package/dist/cjs/functions/transferName.d.ts +0 -6
  519. package/dist/cjs/functions/transferSubname.d.ts +0 -6
  520. package/dist/cjs/functions/wrapName.d.ts +0 -8
  521. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +0 -487
  522. package/dist/cjs/generated/DNSRegistrar.d.ts +0 -220
  523. package/dist/cjs/generated/DNSSECImpl.d.ts +0 -402
  524. package/dist/cjs/generated/DefaultReverseResolver.d.ts +0 -66
  525. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  526. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
  527. package/dist/cjs/generated/ENSRegistry.d.ts +0 -259
  528. package/dist/cjs/generated/ETHRegistrarController.d.ts +0 -319
  529. package/dist/cjs/generated/Multicall.d.ts +0 -292
  530. package/dist/cjs/generated/NameWrapper.d.ts +0 -675
  531. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +0 -72
  532. package/dist/cjs/generated/PublicResolver.d.ts +0 -542
  533. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +0 -42
  534. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +0 -42
  535. package/dist/cjs/generated/ReverseRegistrar.d.ts +0 -259
  536. package/dist/cjs/generated/Root.d.ts +0 -173
  537. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +0 -72
  538. package/dist/cjs/generated/SHA256Digest.d.ts +0 -67
  539. package/dist/cjs/generated/StaticMetadataService.d.ts +0 -42
  540. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +0 -42
  541. package/dist/cjs/generated/UniversalResolver.d.ts +0 -82
  542. package/dist/cjs/generated/common.d.ts +0 -21
  543. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  544. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  545. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.d.ts +0 -36
  546. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  547. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
  548. package/dist/cjs/generated/factories/ENSRegistry__factory.d.ts +0 -52
  549. package/dist/cjs/generated/factories/Multicall__factory.d.ts +0 -42
  550. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  551. package/dist/cjs/generated/factories/PublicResolver__factory.d.ts +0 -46
  552. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  553. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  554. package/dist/cjs/generated/factories/ReverseRegistrar__factory.d.ts +0 -46
  555. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +0 -34
  556. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  557. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +0 -34
  558. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  559. package/dist/cjs/generated/factories/UniversalResolver__factory.d.ts +0 -42
  560. package/dist/cjs/generated/factories/index.d.ts +0 -6
  561. package/dist/cjs/generated/index.d.ts +0 -13
  562. package/dist/cjs/index.d.ts +0 -467
  563. package/dist/cjs/utils/fuses.d.ts +0 -20
  564. package/dist/cjs/utils/generateFuseInput.d.ts +0 -3
  565. package/dist/cjs/utils/generateFuseInput.js +0 -19
  566. package/dist/cjs/utils/labels.d.ts +0 -14
  567. package/dist/cjs/utils/normalise.d.ts +0 -2
  568. package/dist/cjs/utils/recordHelpers.d.ts +0 -13
  569. package/dist/cjs/utils/registerHelpers.d.ts +0 -26
  570. package/dist/cjs/utils/singleCall.d.ts +0 -9
  571. package/dist/cjs/utils/validation.d.ts +0 -8
  572. package/dist/cjs/utils/writeTx.d.ts +0 -4
  573. package/dist/esm/GqlManager.d.ts +0 -6
  574. package/dist/esm/GqlManager.js +0 -18
  575. package/dist/esm/contracts/baseRegistrar.d.ts +0 -3
  576. package/dist/esm/contracts/baseRegistrar.js +0 -2
  577. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  578. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
  579. package/dist/esm/contracts/ethRegistrarController.d.ts +0 -3
  580. package/dist/esm/contracts/ethRegistrarController.js +0 -2
  581. package/dist/esm/contracts/getContractAddress.d.ts +0 -3
  582. package/dist/esm/contracts/getContractAddress.js +0 -42
  583. package/dist/esm/contracts/index.d.ts +0 -16
  584. package/dist/esm/contracts/index.js +0 -29
  585. package/dist/esm/contracts/multicall.d.ts +0 -3
  586. package/dist/esm/contracts/multicall.js +0 -20
  587. package/dist/esm/contracts/nameWrapper.d.ts +0 -3
  588. package/dist/esm/contracts/nameWrapper.js +0 -2
  589. package/dist/esm/contracts/publicResolver.d.ts +0 -3
  590. package/dist/esm/contracts/publicResolver.js +0 -2
  591. package/dist/esm/contracts/registry.d.ts +0 -3
  592. package/dist/esm/contracts/registry.js +0 -2
  593. package/dist/esm/contracts/reverseRegistrar.d.ts +0 -3
  594. package/dist/esm/contracts/reverseRegistrar.js +0 -2
  595. package/dist/esm/contracts/types.d.ts +0 -2
  596. package/dist/esm/contracts/types.js +0 -1
  597. package/dist/esm/contracts/universalResolver.d.ts +0 -3
  598. package/dist/esm/contracts/universalResolver.js +0 -2
  599. package/dist/esm/functions/batch.d.ts +0 -9
  600. package/dist/esm/functions/batch.js +0 -19
  601. package/dist/esm/functions/batchWrappers.d.ts +0 -29
  602. package/dist/esm/functions/batchWrappers.js +0 -68
  603. package/dist/esm/functions/burnFuses.d.ts +0 -5
  604. package/dist/esm/functions/burnFuses.js +0 -8
  605. package/dist/esm/functions/createSubname.js +0 -34
  606. package/dist/esm/functions/deleteSubname.d.ts +0 -4
  607. package/dist/esm/functions/deleteSubname.js +0 -6
  608. package/dist/esm/functions/getDNSOwner.d.ts +0 -7
  609. package/dist/esm/functions/getDNSOwner.js +0 -51
  610. package/dist/esm/functions/getExpiry.d.ts +0 -12
  611. package/dist/esm/functions/getExpiry.js +0 -43
  612. package/dist/esm/functions/getFuses.d.ts +0 -17
  613. package/dist/esm/functions/getFuses.js +0 -60
  614. package/dist/esm/functions/getHistory.d.ts +0 -54
  615. package/dist/esm/functions/getHistory.js +0 -273
  616. package/dist/esm/functions/getName.d.ts +0 -19
  617. package/dist/esm/functions/getName.js +0 -32
  618. package/dist/esm/functions/getNames.js +0 -220
  619. package/dist/esm/functions/getOwner.d.ts +0 -14
  620. package/dist/esm/functions/getOwner.js +0 -138
  621. package/dist/esm/functions/getPrice.js +0 -48
  622. package/dist/esm/functions/getProfile.js +0 -299
  623. package/dist/esm/functions/getRecords.d.ts +0 -32
  624. package/dist/esm/functions/getRecords.js +0 -8
  625. package/dist/esm/functions/getResolver.js +0 -22
  626. package/dist/esm/functions/getSpecificRecord.js +0 -265
  627. package/dist/esm/functions/getSubnames.js +0 -152
  628. package/dist/esm/functions/initialGetters.d.ts +0 -11
  629. package/dist/esm/functions/initialGetters.js +0 -11
  630. package/dist/esm/functions/setName.js +0 -9
  631. package/dist/esm/functions/setRecords.d.ts +0 -6
  632. package/dist/esm/functions/setRecords.js +0 -21
  633. package/dist/esm/functions/setResolver.d.ts +0 -5
  634. package/dist/esm/functions/setResolver.js +0 -19
  635. package/dist/esm/functions/transferName.js +0 -26
  636. package/dist/esm/functions/transferSubname.d.ts +0 -6
  637. package/dist/esm/functions/transferSubname.js +0 -21
  638. package/dist/esm/functions/unwrapName.d.ts +0 -5
  639. package/dist/esm/functions/unwrapName.js +0 -20
  640. package/dist/esm/functions/wrapName.d.ts +0 -8
  641. package/dist/esm/functions/wrapName.js +0 -54
  642. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +0 -487
  643. package/dist/esm/generated/BaseRegistrarImplementation.js +0 -1
  644. package/dist/esm/generated/DNSRegistrar.d.ts +0 -220
  645. package/dist/esm/generated/DNSRegistrar.js +0 -1
  646. package/dist/esm/generated/DNSSECImpl.d.ts +0 -402
  647. package/dist/esm/generated/DNSSECImpl.js +0 -1
  648. package/dist/esm/generated/DefaultReverseResolver.d.ts +0 -66
  649. package/dist/esm/generated/DefaultReverseResolver.js +0 -1
  650. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  651. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
  652. package/dist/esm/generated/ENSRegistry.d.ts +0 -259
  653. package/dist/esm/generated/ENSRegistry.js +0 -1
  654. package/dist/esm/generated/ETHRegistrarController.d.ts +0 -319
  655. package/dist/esm/generated/ETHRegistrarController.js +0 -1
  656. package/dist/esm/generated/Multicall.js +0 -1
  657. package/dist/esm/generated/NameWrapper.d.ts +0 -675
  658. package/dist/esm/generated/NameWrapper.js +0 -1
  659. package/dist/esm/generated/P256SHA256Algorithm.js +0 -1
  660. package/dist/esm/generated/PublicResolver.d.ts +0 -542
  661. package/dist/esm/generated/PublicResolver.js +0 -1
  662. package/dist/esm/generated/RSASHA1Algorithm.d.ts +0 -42
  663. package/dist/esm/generated/RSASHA1Algorithm.js +0 -1
  664. package/dist/esm/generated/RSASHA256Algorithm.d.ts +0 -42
  665. package/dist/esm/generated/RSASHA256Algorithm.js +0 -1
  666. package/dist/esm/generated/ReverseRegistrar.d.ts +0 -259
  667. package/dist/esm/generated/ReverseRegistrar.js +0 -1
  668. package/dist/esm/generated/Root.d.ts +0 -173
  669. package/dist/esm/generated/Root.js +0 -1
  670. package/dist/esm/generated/SHA1Digest.d.ts +0 -67
  671. package/dist/esm/generated/SHA1Digest.js +0 -1
  672. package/dist/esm/generated/SHA1NSEC3Digest.js +0 -1
  673. package/dist/esm/generated/SHA256Digest.js +0 -1
  674. package/dist/esm/generated/StaticMetadataService.d.ts +0 -42
  675. package/dist/esm/generated/StaticMetadataService.js +0 -1
  676. package/dist/esm/generated/TLDPublicSuffixList.d.ts +0 -42
  677. package/dist/esm/generated/TLDPublicSuffixList.js +0 -1
  678. package/dist/esm/generated/UniversalResolver.d.ts +0 -82
  679. package/dist/esm/generated/UniversalResolver.js +0 -1
  680. package/dist/esm/generated/common.js +0 -1
  681. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +0 -52
  682. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +0 -766
  683. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  684. package/dist/esm/generated/factories/DNSRegistrar__factory.js +0 -292
  685. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  686. package/dist/esm/generated/factories/DNSSECImpl__factory.js +0 -497
  687. package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +0 -83
  688. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
  689. package/dist/esm/generated/factories/ENSRegistry__factory.js +0 -435
  690. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +0 -507
  691. package/dist/esm/generated/factories/Multicall__factory.js +0 -453
  692. package/dist/esm/generated/factories/NameWrapper__factory.js +0 -1196
  693. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  694. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +0 -67
  695. package/dist/esm/generated/factories/PublicResolver__factory.js +0 -888
  696. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  697. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +0 -67
  698. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  699. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +0 -67
  700. package/dist/esm/generated/factories/ReverseRegistrar__factory.js +0 -336
  701. package/dist/esm/generated/factories/Root__factory.d.ts +0 -52
  702. package/dist/esm/generated/factories/Root__factory.js +0 -239
  703. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +0 -34
  704. package/dist/esm/generated/factories/SHA1Digest__factory.js +0 -62
  705. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  706. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +0 -67
  707. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +0 -34
  708. package/dist/esm/generated/factories/SHA256Digest__factory.js +0 -62
  709. package/dist/esm/generated/factories/StaticMetadataService__factory.js +0 -45
  710. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  711. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +0 -57
  712. package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +0 -42
  713. package/dist/esm/generated/factories/UniversalResolver__factory.js +0 -200
  714. package/dist/esm/generated/factories/index.d.ts +0 -6
  715. package/dist/esm/generated/factories/index.js +0 -9
  716. package/dist/esm/generated/index.d.ts +0 -13
  717. package/dist/esm/generated/index.js +0 -7
  718. package/dist/esm/index.d.ts +0 -467
  719. package/dist/esm/index.js +0 -207
  720. package/dist/esm/utils/contentHash.d.ts +0 -28
  721. package/dist/esm/utils/contentHash.js +0 -153
  722. package/dist/esm/utils/createReverseNode.d.ts +0 -2
  723. package/dist/esm/utils/createReverseNode.js +0 -1
  724. package/dist/esm/utils/format.d.ts +0 -3
  725. package/dist/esm/utils/format.js +0 -3
  726. package/dist/esm/utils/fuses.d.ts +0 -20
  727. package/dist/esm/utils/fuses.js +0 -21
  728. package/dist/esm/utils/generateFuseInput.d.ts +0 -3
  729. package/dist/esm/utils/generateFuseInput.js +0 -14
  730. package/dist/esm/utils/hexEncodedName.d.ts +0 -1
  731. package/dist/esm/utils/hexEncodedName.js +0 -2
  732. package/dist/esm/utils/labels.js +0 -95
  733. package/dist/esm/utils/makeHashIndexes.d.ts +0 -2
  734. package/dist/esm/utils/makeHashIndexes.js +0 -3
  735. package/dist/esm/utils/normalise.d.ts +0 -2
  736. package/dist/esm/utils/normalise.js +0 -20
  737. package/dist/esm/utils/recordHelpers.d.ts +0 -13
  738. package/dist/esm/utils/recordHelpers.js +0 -39
  739. package/dist/esm/utils/registerHelpers.d.ts +0 -26
  740. package/dist/esm/utils/registerHelpers.js +0 -43
  741. package/dist/esm/utils/singleCall.js +0 -5
  742. package/dist/esm/utils/validation.d.ts +0 -8
  743. package/dist/esm/utils/validation.js +0 -67
  744. package/dist/esm/utils/writeTx.d.ts +0 -4
  745. package/dist/esm/utils/writeTx.js +0 -1
  746. package/src/@types/FuseOptions.d.ts +0 -9
  747. package/src/@types/idna-uts46-hx.d.ts +0 -1
  748. package/src/ABIs/ETHRegistrarController.json +0 -494
  749. package/src/ABIs/NameWrapper.json +0 -1183
  750. package/src/ABIs/PublicResolver.json +0 -875
  751. package/src/ABIs/ReverseRegistrar.json +0 -323
  752. package/src/ABIs/StaticMetadataService.json +0 -32
  753. package/src/ABIs/UniversalResolver.json +0 -187
  754. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
  755. package/src/functions/burnFuses.test.ts +0 -45
  756. package/src/functions/burnFuses.ts +0 -21
  757. package/src/functions/getFuses.test.ts +0 -105
  758. package/src/functions/getFuses.ts +0 -76
  759. package/src/functions/getRecords.ts +0 -22
  760. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
  761. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
  762. package/src/tests/populateTransaction.test.ts +0 -40
  763. package/src/tests/setup.ts +0 -53
  764. package/src/tests/signerInjection.test.ts +0 -46
  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}/functions/setName.d.ts +0 -0
  771. /package/dist/{cjs → types}/functions/setRecords.d.ts +0 -0
  772. /package/dist/{cjs → types}/functions/setResolver.d.ts +0 -0
  773. /package/dist/{cjs → types}/functions/unwrapName.d.ts +0 -0
  774. /package/dist/{cjs → types}/utils/contentHash.d.ts +0 -0
  775. /package/dist/{cjs → types}/utils/createReverseNode.d.ts +0 -0
  776. /package/dist/{cjs → types}/utils/format.d.ts +0 -0
  777. /package/dist/{cjs → types}/utils/makeHashIndexes.d.ts +0 -0
@@ -1,12 +1,16 @@
1
- import { ethers } from 'ethers'
1
+ import type { Result } from '@ethersproject/abi'
2
+ import { defaultAbiCoder } from '@ethersproject/abi'
3
+ import { hexStripZeros } from '@ethersproject/bytes'
2
4
  import { ENSArgs } from '..'
3
5
  import { labelhash } from '../utils/labels'
4
6
  import { namehash as makeNamehash } from '../utils/normalise'
7
+ import { checkIsDotEth } from '../utils/validation'
5
8
 
6
9
  type Owner = {
7
10
  registrant?: string
8
11
  owner?: string
9
12
  ownershipLevel: 'nameWrapper' | 'registry' | 'registrar'
13
+ expired?: boolean
10
14
  }
11
15
 
12
16
  const singleContractOwnerRaw = async (
@@ -42,6 +46,7 @@ const singleContractOwnerRaw = async (
42
46
  ]),
43
47
  }
44
48
  }
49
+ // no default
45
50
  }
46
51
  }
47
52
 
@@ -54,7 +59,7 @@ const raw = async (
54
59
  const labels = name.split('.')
55
60
 
56
61
  if (contract || labels.length === 1) {
57
- return await singleContractOwnerRaw(
62
+ return singleContractOwnerRaw(
58
63
  { contracts },
59
64
  contract || 'registry',
60
65
  namehash,
@@ -83,27 +88,43 @@ const raw = async (
83
88
 
84
89
  const data: { to: string; data: string }[] = [registryData, nameWrapperData]
85
90
 
86
- if (labels.length == 2 && labels[1] === 'eth') {
91
+ if (checkIsDotEth(labels)) {
87
92
  data.push(registrarData)
88
93
  }
89
94
 
90
95
  return multicallWrapper.raw(data)
91
96
  }
92
97
 
98
+ const registrantQuery = `
99
+ query GetRegistrant($namehash: String!) {
100
+ domain(id: $namehash) {
101
+ registration {
102
+ registrant {
103
+ id
104
+ }
105
+ }
106
+ }
107
+ }
108
+ `
109
+
93
110
  const singleContractOwnerDecode = (data: string) =>
94
- ethers.utils.defaultAbiCoder.decode(['address'], data)[0]
111
+ defaultAbiCoder.decode(['address'], data)[0]
95
112
 
96
113
  const decode = async (
97
- { contracts, multicallWrapper }: ENSArgs<'contracts' | 'multicallWrapper'>,
114
+ {
115
+ contracts,
116
+ multicallWrapper,
117
+ gqlInstance,
118
+ }: ENSArgs<'contracts' | 'multicallWrapper' | 'gqlInstance'>,
98
119
  data: string,
99
120
  name: string,
100
121
  contract?: 'nameWrapper' | 'registry' | 'registrar',
101
122
  ): Promise<Owner | undefined> => {
102
- if (data === null) return
123
+ if (!data) return
103
124
  const labels = name.split('.')
104
125
  if (contract || labels.length === 1) {
105
126
  const singleOwner = singleContractOwnerDecode(data)
106
- let obj = {
127
+ const obj = {
107
128
  ownershipLevel: contract || 'registry',
108
129
  }
109
130
  if (contract === 'registrar') {
@@ -111,38 +132,59 @@ const decode = async (
111
132
  ...obj,
112
133
  registrant: singleOwner as string,
113
134
  }
114
- } else {
115
- return {
116
- ...obj,
117
- owner: singleOwner as string,
118
- }
135
+ }
136
+ return {
137
+ ...obj,
138
+ owner: singleOwner as string,
119
139
  }
120
140
  }
121
141
  const result = await multicallWrapper.decode(data)
122
- if (result === null) return
142
+ if (!result) return
123
143
  const nameWrapper = await contracts?.getNameWrapper()!
124
144
 
125
145
  const decodedData = [result[0][1], result[1][1], result[2]?.[1]].map(
126
- (ret) =>
127
- ret &&
128
- ret !== '0x' &&
129
- ethers.utils.defaultAbiCoder.decode(['address'], ret),
146
+ (ret) => ret && ret !== '0x' && defaultAbiCoder.decode(['address'], ret),
130
147
  )
131
148
 
132
- const registryOwner = (decodedData[0] as ethers.utils.Result)[0]
133
- const nameWrapperOwner = (decodedData[1] as ethers.utils.Result)[0]
134
- const registrarOwner = (
135
- decodedData[2] as ethers.utils.Result | undefined
149
+ const registryOwner = (decodedData[0] as Result)[0]
150
+ const nameWrapperOwner = (decodedData[1] as Result)[0]
151
+ let registrarOwner: string | undefined = (
152
+ decodedData[2] as Result | undefined
136
153
  )?.[0]
154
+ let baseReturnObject: {
155
+ expired?: boolean
156
+ } = {}
137
157
 
138
158
  // check for only .eth names
139
159
  if (labels[labels.length - 1] === 'eth') {
160
+ // if there is no registrar owner, the name is expired
161
+ // but we still want to get the registrar owner prior to expiry
162
+ if (labels.length === 2) {
163
+ if (!registrarOwner) {
164
+ const graphRegistrantResult = await gqlInstance.client.request(
165
+ registrantQuery,
166
+ {
167
+ namehash: makeNamehash(name),
168
+ },
169
+ )
170
+ registrarOwner =
171
+ graphRegistrantResult.domain?.registration?.registrant?.id
172
+ baseReturnObject = {
173
+ expired: true,
174
+ }
175
+ } else {
176
+ baseReturnObject = {
177
+ expired: false,
178
+ }
179
+ }
180
+ }
140
181
  // if the owner on the registrar is the namewrapper, then the namewrapper owner is the owner
141
182
  // there is no "registrant" for wrapped names
142
- if (registrarOwner === nameWrapper.address) {
183
+ if (registrarOwner?.toLowerCase() === nameWrapper.address.toLowerCase()) {
143
184
  return {
144
185
  owner: nameWrapperOwner,
145
186
  ownershipLevel: 'nameWrapper',
187
+ ...baseReturnObject,
146
188
  }
147
189
  }
148
190
  // if there is a registrar owner, then it's not a subdomain but we have also passed the namewrapper clause
@@ -154,14 +196,26 @@ const decode = async (
154
196
  registrant: registrarOwner,
155
197
  owner: registryOwner,
156
198
  ownershipLevel: 'registrar',
199
+ ...baseReturnObject,
157
200
  }
158
201
  }
159
- if (
160
- labels.length > 2 &&
161
- ethers.utils.hexStripZeros(registryOwner) !== '0x'
162
- ) {
202
+ if (hexStripZeros(registryOwner) !== '0x') {
203
+ // if there is no registrar owner, but the label length is two, then the domain is an expired 2LD .eth
204
+ // so we still want to return the ownership values
205
+ if (labels.length === 2) {
206
+ return {
207
+ registrant: undefined,
208
+ owner: registryOwner,
209
+ ownershipLevel: 'registrar',
210
+ expired: true,
211
+ }
212
+ }
163
213
  // this means that the subname is wrapped
164
- if (registryOwner === nameWrapper.address) {
214
+ if (
215
+ registryOwner === nameWrapper.address &&
216
+ nameWrapperOwner &&
217
+ hexStripZeros(nameWrapperOwner) !== '0x'
218
+ ) {
165
219
  return {
166
220
  owner: nameWrapperOwner,
167
221
  ownershipLevel: 'nameWrapper',
@@ -181,7 +235,11 @@ const decode = async (
181
235
  // there will only ever be an owner for non .eth names, not a registrant
182
236
  // this is because for unwrapped names, there is no associated NFT
183
237
  // and for wrapped names, owner and registrant are the same thing
184
- if (registryOwner == nameWrapper.address) {
238
+ if (
239
+ registryOwner === nameWrapper.address &&
240
+ nameWrapperOwner &&
241
+ hexStripZeros(nameWrapperOwner) !== '0x'
242
+ ) {
185
243
  return {
186
244
  owner: nameWrapperOwner,
187
245
  ownershipLevel: 'nameWrapper',
@@ -189,7 +247,7 @@ const decode = async (
189
247
  }
190
248
 
191
249
  // for unwrapped non .eth names, the owner is the registry owner
192
- if (ethers.utils.hexStripZeros(registryOwner) !== '0x') {
250
+ if (hexStripZeros(registryOwner) !== '0x') {
193
251
  return {
194
252
  owner: registryOwner,
195
253
  ownershipLevel: 'registry',
@@ -0,0 +1,55 @@
1
+ import { BigNumber } from 'ethers'
2
+ import { ENS } from '..'
3
+ import setup from '../tests/setup'
4
+
5
+ let ensInstance: ENS
6
+
7
+ beforeAll(async () => {
8
+ ;({ ensInstance } = await setup())
9
+ })
10
+
11
+ const yearCost = BigNumber.from('8561643835626')
12
+
13
+ describe('getPrice', () => {
14
+ it('should return a base and premium price for a name', async () => {
15
+ const { base, premium } = (await ensInstance.getPrice(
16
+ 'test123',
17
+ 86400,
18
+ false,
19
+ ))!
20
+ expect(base.eq(yearCost)).toBe(true)
21
+ expect(premium.toNumber()).toBe(0)
22
+ })
23
+
24
+ it('should return a base and premium price for an array of names', async () => {
25
+ const { base, premium } = (await ensInstance.getPrice(
26
+ ['test123', 'to-be-renewed'],
27
+ 86400,
28
+ false,
29
+ ))!
30
+ expect(base.eq(yearCost.mul(2))).toBe(true)
31
+ expect(premium.toNumber()).toBe(0)
32
+ })
33
+
34
+ describe('legacy mode', () => {
35
+ it('should return a base and premium price for a name', async () => {
36
+ const { base, premium } = (await ensInstance.getPrice(
37
+ 'test123',
38
+ 86400,
39
+ true,
40
+ ))!
41
+ expect(base.eq(yearCost)).toBe(true)
42
+ expect(premium.toNumber()).toBe(0)
43
+ })
44
+
45
+ it('should return a base and premium price for an array of names', async () => {
46
+ const { base, premium } = (await ensInstance.getPrice(
47
+ ['test123', 'to-be-renewed'],
48
+ 86400,
49
+ true,
50
+ ))!
51
+ expect(base.eq(yearCost.mul(2))).toBe(true)
52
+ expect(premium.toNumber()).toBe(0)
53
+ })
54
+ })
55
+ })
@@ -1,18 +1,47 @@
1
- import { BigNumber, utils } from 'ethers'
1
+ import { defaultAbiCoder } from '@ethersproject/abi'
2
+ import { BigNumber } from '@ethersproject/bignumber'
2
3
  import { ENSArgs } from '..'
3
4
 
4
5
  const raw = async (
5
6
  { contracts, multicallWrapper }: ENSArgs<'contracts' | 'multicallWrapper'>,
6
- name: string,
7
+ nameOrNames: string | string[],
7
8
  duration: number,
8
9
  legacy?: boolean,
9
10
  ) => {
11
+ const names = Array.isArray(nameOrNames) ? nameOrNames : [nameOrNames]
12
+
13
+ if (names.length > 1) {
14
+ const bulkRenewal = await contracts?.getBulkRenewal()!
15
+ const baseCall = {
16
+ to: bulkRenewal.address,
17
+ data: bulkRenewal.interface.encodeFunctionData('rentPrice', [
18
+ names,
19
+ duration,
20
+ ]),
21
+ }
22
+
23
+ if (legacy) {
24
+ return multicallWrapper.raw([
25
+ baseCall,
26
+ {
27
+ to: bulkRenewal.address,
28
+ data: bulkRenewal.interface.encodeFunctionData('rentPrice', [
29
+ names,
30
+ 0,
31
+ ]),
32
+ },
33
+ ])
34
+ }
35
+
36
+ return baseCall
37
+ }
38
+
10
39
  const controller = await contracts?.getEthRegistrarController()!
11
40
 
12
41
  const baseCall = {
13
42
  to: controller.address,
14
43
  data: controller.interface.encodeFunctionData('rentPrice', [
15
- name,
44
+ names[0],
16
45
  duration,
17
46
  ]),
18
47
  }
@@ -22,42 +51,66 @@ const raw = async (
22
51
  baseCall,
23
52
  {
24
53
  to: controller.address,
25
- data: controller.interface.encodeFunctionData('rentPrice', [name, 0]),
54
+ data: controller.interface.encodeFunctionData('rentPrice', [
55
+ names[0],
56
+ 0,
57
+ ]),
26
58
  },
27
59
  ])
28
60
  }
29
-
30
61
  return baseCall
31
62
  }
32
63
 
33
64
  const decode = async (
34
65
  { contracts, multicallWrapper }: ENSArgs<'contracts' | 'multicallWrapper'>,
35
66
  data: string,
36
- _name: string,
37
- _number: number,
67
+ _nameOrNames: string | string[],
68
+ _duration: number,
38
69
  legacy?: boolean,
39
70
  ) => {
40
71
  if (data === null) return
41
- const controller = await contracts?.getEthRegistrarController()!
42
72
  try {
43
73
  let base: BigNumber
44
74
  let premium: BigNumber
45
- if (legacy) {
75
+
76
+ const isBulkRenewal = Array.isArray(_nameOrNames) && _nameOrNames.length > 1
77
+ if (isBulkRenewal && legacy) {
78
+ const result = await multicallWrapper.decode(data)
79
+ const [price] = defaultAbiCoder.decode(
80
+ ['uint256'],
81
+ result[0].returnData,
82
+ ) as [BigNumber]
83
+ ;[premium] = defaultAbiCoder.decode(
84
+ ['uint256'],
85
+ result[1].returnData,
86
+ ) as [BigNumber]
87
+ base = price.sub(premium)
88
+ } else if (isBulkRenewal) {
89
+ const bulkRenewal = await contracts?.getBulkRenewal()!
90
+ const result = bulkRenewal.interface.decodeFunctionResult(
91
+ 'rentPrice',
92
+ data,
93
+ )
94
+ ;[base] = result
95
+ premium = BigNumber.from(0)
96
+ } else if (!isBulkRenewal && legacy) {
46
97
  const result = await multicallWrapper.decode(data)
47
- const [price] = utils.defaultAbiCoder.decode(
98
+ const [price] = defaultAbiCoder.decode(
48
99
  ['uint256'],
49
100
  result[0].returnData,
50
101
  ) as [BigNumber]
51
- ;[premium] = utils.defaultAbiCoder.decode(
102
+ ;[premium] = defaultAbiCoder.decode(
52
103
  ['uint256'],
53
104
  result[1].returnData,
54
105
  ) as [BigNumber]
55
106
  base = price.sub(premium)
56
107
  } else {
57
- ;[base, premium] = controller.interface.decodeFunctionData(
108
+ const controller = await contracts?.getEthRegistrarController()!
109
+ const result = controller.interface.decodeFunctionResult(
58
110
  'rentPrice',
59
111
  data,
60
- ) as [BigNumber, BigNumber]
112
+ )
113
+ ;[base, premium] = result[0] as [BigNumber, BigNumber]
61
114
  }
62
115
  return {
63
116
  base,
@@ -1,23 +1,39 @@
1
+ import dotenv from 'dotenv'
2
+ import { ethers } from 'ethers'
1
3
  import { ENS } from '..'
2
- import setup from '../tests/setup'
4
+ import setup, { deploymentAddresses } from '../tests/setup'
3
5
 
4
- let ENSInstance: ENS
6
+ dotenv.config()
7
+
8
+ let ensInstance: ENS
9
+ let revert: Awaited<ReturnType<typeof setup>>['revert']
10
+ let provider: ethers.providers.JsonRpcProvider
11
+ let accounts: string[]
5
12
 
6
13
  beforeAll(async () => {
7
- ;({ ENSInstance } = await setup())
14
+ ;({ ensInstance, revert, provider } = await setup())
15
+ accounts = await provider.listAccounts()
16
+ })
17
+
18
+ beforeEach(async () => {
19
+ await revert()
20
+ })
21
+
22
+ afterAll(async () => {
23
+ await revert()
8
24
  })
9
25
 
10
26
  const checkRecords = (
11
27
  result: Record<string, any> | undefined,
12
28
  textLength = 3,
13
- coinTypeLength = 5,
29
+ coinTypeLength = 3,
14
30
  ) => {
15
31
  expect(result).toBeDefined()
16
32
  if (result) {
17
33
  expect(result.records?.texts).toHaveLength(textLength)
18
34
  expect(result.records?.coinTypes).toHaveLength(coinTypeLength)
19
35
  expect(result.resolverAddress).toBe(
20
- '0x42D63ae25990889E35F215bC95884039Ba354115',
36
+ deploymentAddresses.LegacyPublicResolver,
21
37
  )
22
38
  }
23
39
  }
@@ -27,37 +43,37 @@ jest.setTimeout(20000)
27
43
  describe('getProfile', () => {
28
44
  describe('with an address', () => {
29
45
  it('should return a profile object with no other args', async () => {
30
- const result = await ENSInstance.getProfile(
31
- '0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
46
+ const result = await ensInstance.getProfile(
47
+ '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
32
48
  )
33
49
  expect(result).toBeDefined()
34
50
  if (result) {
35
- expect((result as any).name).toBe('jefflau.eth')
51
+ expect((result as any).name).toBe('with-profile.eth')
36
52
  expect((result as any).address).toBeUndefined()
37
53
  checkRecords(result)
38
54
  }
39
55
  })
40
56
  it('should return a profile object with specified records', async () => {
41
- const result = await ENSInstance.getProfile(
42
- '0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
43
- { texts: ['description', 'url'], coinTypes: ['ETC', '0'] },
57
+ const result = await ensInstance.getProfile(
58
+ '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
59
+ { texts: ['description', 'url'], coinTypes: ['ETC_LEGACY', '0'] },
44
60
  )
45
61
  expect(result).toBeDefined()
46
62
  if (result) {
47
- expect((result as any).name).toBe('jefflau.eth')
63
+ expect((result as any).name).toBe('with-profile.eth')
48
64
  expect((result as any).address).toBeUndefined()
49
65
  checkRecords(result, 2, 3)
50
66
  }
51
67
  })
52
68
  it('should return a profile object with all of each specified record type', async () => {
53
- const result = await ENSInstance.getProfile(
54
- '0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
69
+ const result = await ensInstance.getProfile(
70
+ '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
55
71
  { texts: true, coinTypes: true },
56
72
  )
57
73
  checkRecords(result)
58
74
  })
59
75
  it('should return null for an address without a name', async () => {
60
- const result = await ENSInstance.getProfile(
76
+ const result = await ensInstance.getProfile(
61
77
  '0x8e8db5ccef88cca9d624701db544989c996e3216',
62
78
  )
63
79
  expect(result).toBeUndefined()
@@ -65,56 +81,146 @@ describe('getProfile', () => {
65
81
  })
66
82
  describe('with a name', () => {
67
83
  it('should return a profile object with no other args', async () => {
68
- const result = await ENSInstance.getProfile('jefflau.eth')
84
+ const result = await ensInstance.getProfile('with-profile.eth')
69
85
  expect((result as any).address).toBe(
70
- '0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
86
+ '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
71
87
  )
72
88
  checkRecords(result)
73
89
  })
74
90
  it('should return a profile object with specified records', async () => {
75
- const result = await ENSInstance.getProfile('jefflau.eth', {
91
+ const result = await ensInstance.getProfile('with-profile.eth', {
76
92
  texts: ['description', 'url'],
77
- coinTypes: ['ETC', '0'],
93
+ coinTypes: ['ETC_LEGACY', '0'],
78
94
  })
79
95
  expect((result as any).address).toBe(
80
- '0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
96
+ '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
81
97
  )
82
98
  checkRecords(result, 2, 3)
83
99
  })
84
100
  it('should return a profile object with all of each specified record type', async () => {
85
- const result = await ENSInstance.getProfile('jefflau.eth', {
101
+ const result = await ensInstance.getProfile('with-profile.eth', {
86
102
  texts: true,
87
103
  coinTypes: true,
88
104
  })
89
105
  checkRecords(result)
90
106
  })
107
+ it('should return a profile object for a specified resolver', async () => {
108
+ const tx = await ensInstance.wrapName('test123.eth', {
109
+ wrappedOwner: accounts[1],
110
+ addressOrIndex: 1,
111
+ })
112
+ await tx.wait()
113
+ const result = await ensInstance.getProfile('test123.eth', {
114
+ resolverAddress: deploymentAddresses.LegacyPublicResolver,
115
+ })
116
+ expect(result).toBeDefined()
117
+ expect(result?.address).toBe(accounts[1])
118
+ expect(result?.resolverAddress).toBe(
119
+ deploymentAddresses.LegacyPublicResolver,
120
+ )
121
+ })
122
+ it('should return the decoded name for a name with encoded labels', async () => {
123
+ const result = await ensInstance.getProfile(
124
+ '[9dd2c369a187b4e6b9c402f030e50743e619301ea62aa4c0737d4ef7e10a3d49].with-subnames.eth',
125
+ )
126
+ expect(result).toBeDefined()
127
+ expect(result?.decryptedName).toBe('xyz.with-subnames.eth')
128
+ })
91
129
  it('should return undefined for an unregistered name', async () => {
92
- const result = await ENSInstance.getProfile('test123123123cool.eth')
130
+ const result = await ensInstance.getProfile('test123123123cool.eth')
93
131
  expect(result).toBeUndefined()
94
132
  })
95
133
  })
96
134
  describe('with an old resolver', () => {
97
135
  it('should use fallback methods for a name with an older resolver (no multicall)', async () => {
98
- const result = await ENSInstance.getProfile('pepeq6.eth')
136
+ const result = await ensInstance.getProfile('with-legacy-resolver.eth')
99
137
  expect(result).toBeDefined()
100
138
  if (result) {
101
139
  expect(result.address).toBe(
102
- '0x6308F1c6f283583C8bf8E31Da793B87718b051eD',
140
+ '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
141
+ )
142
+ expect(result.resolverAddress).toBe(
143
+ deploymentAddresses.NoMulticallResolver,
103
144
  )
104
145
  }
105
146
  })
106
147
  })
107
148
  describe('with an unmigrated name', () => {
108
- beforeAll(async () => {
109
- ;({ ENSInstance } = await setup(true))
110
- jest.setTimeout(20000)
111
- })
112
149
  it('should return an object with isMigrated false and a message', async () => {
113
- const result = await ENSInstance.getProfile('jefflau.test')
150
+ const result = await ensInstance.getProfile('legacy.test')
114
151
  expect(result).toBeTruthy()
115
152
  if (result) {
116
153
  expect(result.isMigrated).toBe(false)
117
154
  }
118
155
  })
119
156
  })
157
+ describe('with invalid resolver', () => {
158
+ it('should fail gracefully for a name with invalid resolver', async () => {
159
+ const tx = await ensInstance.setResolver('test123.eth', {
160
+ contract: 'registry',
161
+ resolver: '0xb794F5eA0ba39494cE839613fffBA74279579268',
162
+ addressOrIndex: 1,
163
+ })
164
+ expect(tx).toBeTruthy()
165
+ await tx.wait()
166
+ const result = await ensInstance.getProfile('test123.eth')
167
+ expect(result).toBeDefined()
168
+ if (result) {
169
+ expect(result.address).toBeUndefined()
170
+ expect(Object.keys(result.records!).length).toBe(0)
171
+ expect(result.resolverAddress).toBe(
172
+ '0xb794F5eA0ba39494cE839613fffBA74279579268',
173
+ )
174
+ expect(result.isInvalidResolverAddress).toBe(true)
175
+ }
176
+ })
177
+
178
+ it('should fail gracefully for a wrapped name with invalid resolver', async () => {
179
+ const tx = await ensInstance.setResolver('wrapped.eth', {
180
+ contract: 'nameWrapper',
181
+ resolver: '0xb794F5eA0ba39494cE839613fffBA74279579268',
182
+ addressOrIndex: 1,
183
+ })
184
+ expect(tx).toBeTruthy()
185
+ await tx.wait()
186
+ const result = await ensInstance.getProfile('wrapped.eth')
187
+ expect(result).toBeDefined()
188
+ if (result) {
189
+ expect(result.address).toBeUndefined()
190
+ expect(Object.keys(result.records!).length).toBe(0)
191
+ expect(result.resolverAddress).toBe(
192
+ '0xb794F5eA0ba39494cE839613fffBA74279579268',
193
+ )
194
+ expect(result.isInvalidResolverAddress).toBe(true)
195
+ }
196
+ })
197
+
198
+ it('should fail gracefully for name with invalid resolver option', async () => {
199
+ const result = await ensInstance.getProfile('test123.eth', {
200
+ resolverAddress: '0xb794F5eA0ba39494cE839613fffBA74279579268',
201
+ })
202
+ expect(result).toBeDefined()
203
+ if (result) {
204
+ expect(result.address).toBeFalsy()
205
+ expect(Object.keys(result.records!).length).toBe(0)
206
+ expect(result.resolverAddress).toBe(
207
+ '0xb794F5eA0ba39494cE839613fffBA74279579268',
208
+ )
209
+ }
210
+ })
211
+
212
+ it('should fail gracefully for wrapped name with invalid resolver option', async () => {
213
+ const result = await ensInstance.getProfile('wrapped.eth', {
214
+ resolverAddress: '0xb794F5eA0ba39494cE839613fffBA74279579268',
215
+ })
216
+ expect(result).toBeDefined()
217
+ if (result) {
218
+ expect(result.address).toBeFalsy()
219
+ expect(Object.keys(result.records!).length).toBe(0)
220
+ expect(result.resolverAddress).toBe(
221
+ '0xb794F5eA0ba39494cE839613fffBA74279579268',
222
+ )
223
+ }
224
+ })
225
+ })
120
226
  })