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

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 (759) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +13 -1
  3. package/dist/cjs/GqlManager.js +109 -36
  4. package/dist/cjs/contracts/baseRegistrar.js +24 -3
  5. package/dist/cjs/contracts/bulkRenewal.js +25 -0
  6. package/dist/cjs/contracts/dnsRegistrar.js +25 -0
  7. package/dist/cjs/contracts/ethRegistrarController.js +24 -3
  8. package/dist/cjs/contracts/factories.js +16 -0
  9. package/dist/cjs/contracts/getContractAddress.js +82 -43
  10. package/dist/cjs/contracts/index.js +56 -32
  11. package/dist/cjs/contracts/multicall.js +24 -21
  12. package/dist/cjs/contracts/nameWrapper.js +24 -3
  13. package/dist/cjs/contracts/publicResolver.js +24 -3
  14. package/dist/cjs/contracts/registry.js +24 -3
  15. package/dist/cjs/contracts/reverseRegistrar.js +24 -3
  16. package/dist/cjs/contracts/types.js +15 -1
  17. package/dist/cjs/contracts/universalResolver.js +24 -3
  18. package/dist/cjs/functions/batch.js +42 -15
  19. package/dist/cjs/functions/batchWrappers.js +130 -67
  20. package/dist/cjs/functions/burnFuses.js +28 -15
  21. package/dist/cjs/functions/commitName.js +49 -0
  22. package/dist/cjs/functions/createSubname.js +80 -38
  23. package/dist/cjs/functions/deleteSubname.js +59 -4
  24. package/dist/cjs/functions/getAvailable.js +55 -0
  25. package/dist/cjs/functions/getDNSOwner.js +78 -72
  26. package/dist/cjs/functions/getExpiry.js +110 -41
  27. package/dist/cjs/functions/getHistory.js +166 -195
  28. package/dist/cjs/functions/getName.js +51 -28
  29. package/dist/cjs/functions/getNames.js +211 -102
  30. package/dist/cjs/functions/getOwner.js +178 -123
  31. package/dist/cjs/functions/getPrice.js +119 -43
  32. package/dist/cjs/functions/getProfile.js +449 -253
  33. package/dist/cjs/functions/getRecords.js +29 -9
  34. package/dist/cjs/functions/getResolver.js +41 -19
  35. package/dist/cjs/functions/getSpecificRecord.js +188 -261
  36. package/dist/cjs/functions/getSubnames.js +75 -118
  37. package/dist/cjs/functions/getWrapperData.js +58 -0
  38. package/dist/cjs/functions/importDNSSECName.js +65 -0
  39. package/dist/cjs/functions/initialGetters.js +48 -37
  40. package/dist/cjs/functions/registerName.js +44 -0
  41. package/dist/cjs/functions/renewNames.js +62 -0
  42. package/dist/cjs/functions/setName.js +41 -15
  43. package/dist/cjs/functions/setRecord.js +56 -0
  44. package/dist/cjs/functions/setRecords.js +50 -20
  45. package/dist/cjs/functions/setResolver.js +43 -23
  46. package/dist/cjs/functions/supportsTLD.js +48 -0
  47. package/dist/cjs/functions/transferController.js +42 -0
  48. package/dist/cjs/functions/transferName.js +61 -30
  49. package/dist/cjs/functions/transferSubname.js +60 -24
  50. package/dist/cjs/functions/types.js +16 -0
  51. package/dist/cjs/functions/unwrapName.js +49 -25
  52. package/dist/cjs/functions/wrapName.js +123 -57
  53. package/dist/cjs/generated/BaseRegistrarImplementation.js +15 -1
  54. package/dist/cjs/generated/BulkRenewal.js +16 -0
  55. package/dist/cjs/generated/DNSRegistrar.js +15 -1
  56. package/dist/cjs/generated/DNSSECImpl.js +15 -1
  57. package/dist/cjs/generated/DefaultReverseResolver.js +15 -1
  58. package/dist/cjs/generated/ENSRegistry.js +15 -1
  59. package/dist/cjs/generated/ETHRegistrarController.js +15 -1
  60. package/dist/cjs/generated/Multicall.js +15 -1
  61. package/dist/cjs/generated/NameWrapper.js +15 -1
  62. package/dist/cjs/generated/P256SHA256Algorithm.js +15 -1
  63. package/dist/cjs/generated/PublicResolver.js +15 -1
  64. package/dist/cjs/generated/RSASHA1Algorithm.js +15 -1
  65. package/dist/cjs/generated/RSASHA256Algorithm.js +15 -1
  66. package/dist/cjs/generated/ReverseRegistrar.js +15 -1
  67. package/dist/cjs/generated/Root.js +15 -1
  68. package/dist/cjs/generated/SHA1Digest.js +15 -1
  69. package/dist/cjs/generated/SHA1NSEC3Digest.js +15 -1
  70. package/dist/cjs/generated/SHA256Digest.js +15 -1
  71. package/dist/cjs/generated/StaticMetadataService.js +15 -1
  72. package/dist/cjs/generated/TLDPublicSuffixList.js +15 -1
  73. package/dist/cjs/generated/UniversalResolver.js +15 -1
  74. package/dist/cjs/generated/common.js +15 -1
  75. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +785 -764
  76. package/dist/cjs/generated/factories/BulkRenewal__factory.js +121 -0
  77. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +282 -288
  78. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +486 -492
  79. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +103 -82
  80. package/dist/cjs/generated/factories/ENSRegistry__factory.js +448 -431
  81. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +672 -504
  82. package/dist/cjs/generated/factories/Multicall__factory.js +458 -441
  83. package/dist/cjs/generated/factories/NameWrapper__factory.js +1379 -1194
  84. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +61 -67
  85. package/dist/cjs/generated/factories/PublicResolver__factory.js +957 -885
  86. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +61 -67
  87. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +61 -67
  88. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +363 -333
  89. package/dist/cjs/generated/factories/Root__factory.js +254 -237
  90. package/dist/cjs/generated/factories/SHA1Digest__factory.js +56 -62
  91. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +61 -67
  92. package/dist/cjs/generated/factories/SHA256Digest__factory.js +56 -62
  93. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +65 -44
  94. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +51 -57
  95. package/dist/cjs/generated/factories/UniversalResolver__factory.js +493 -199
  96. package/dist/cjs/generated/factories/index.js +63 -17
  97. package/dist/cjs/generated/index.js +70 -37
  98. package/dist/cjs/index.js +307 -211
  99. package/dist/cjs/static.js +85 -0
  100. package/dist/cjs/utils/ccip.js +129 -0
  101. package/dist/cjs/utils/consts.js +24 -0
  102. package/dist/cjs/utils/contentHash.js +145 -142
  103. package/dist/cjs/utils/createReverseNode.js +23 -2
  104. package/dist/cjs/utils/format.js +27 -8
  105. package/dist/cjs/utils/fuses.js +123 -13
  106. package/dist/cjs/utils/generateFuseInput.js +37 -16
  107. package/dist/cjs/utils/hexEncodedName.js +29 -7
  108. package/dist/cjs/utils/labels.js +99 -83
  109. package/dist/cjs/utils/makeHashIndexes.js +27 -6
  110. package/dist/cjs/utils/normalise.js +51 -22
  111. package/dist/cjs/utils/recordHelpers.js +89 -39
  112. package/dist/cjs/utils/registerHelpers.js +118 -46
  113. package/dist/cjs/utils/singleCall.js +23 -6
  114. package/dist/cjs/utils/validation.js +76 -63
  115. package/dist/cjs/utils/wrapper.js +51 -0
  116. package/dist/cjs/utils/writeTx.js +25 -0
  117. package/dist/esm/GqlManager.mjs +88 -0
  118. package/dist/esm/contracts/baseRegistrar.mjs +6 -0
  119. package/dist/esm/contracts/bulkRenewal.mjs +6 -0
  120. package/dist/esm/contracts/dnsRegistrar.mjs +6 -0
  121. package/dist/esm/contracts/ethRegistrarController.mjs +6 -0
  122. package/dist/esm/contracts/factories.mjs +0 -0
  123. package/dist/esm/contracts/getContractAddress.mjs +66 -0
  124. package/dist/esm/contracts/index.mjs +44 -0
  125. package/dist/esm/contracts/multicall.mjs +6 -0
  126. package/dist/esm/contracts/nameWrapper.mjs +6 -0
  127. package/dist/esm/contracts/publicResolver.mjs +6 -0
  128. package/dist/esm/contracts/registry.mjs +6 -0
  129. package/dist/esm/contracts/reverseRegistrar.mjs +6 -0
  130. package/dist/esm/contracts/types.mjs +0 -0
  131. package/dist/esm/contracts/universalResolver.mjs +6 -0
  132. package/dist/esm/functions/batch.mjs +29 -0
  133. package/dist/esm/functions/batchWrappers.mjs +109 -0
  134. package/dist/esm/functions/burnFuses.mjs +12 -0
  135. package/dist/esm/functions/commitName.mjs +30 -0
  136. package/dist/esm/functions/createSubname.mjs +61 -0
  137. package/dist/esm/functions/deleteSubname.mjs +42 -0
  138. package/dist/esm/functions/getAvailable.mjs +36 -0
  139. package/dist/esm/functions/getDNSOwner.mjs +60 -0
  140. package/dist/esm/functions/getExpiry.mjs +95 -0
  141. package/dist/esm/functions/getHistory.mjs +231 -0
  142. package/dist/esm/functions/getName.mjs +38 -0
  143. package/dist/esm/functions/getNames.mjs +312 -0
  144. package/dist/esm/functions/getOwner.mjs +175 -0
  145. package/dist/esm/functions/getPrice.mjs +107 -0
  146. package/dist/esm/functions/getProfile.mjs +479 -0
  147. package/dist/esm/functions/getRecords.mjs +12 -0
  148. package/dist/esm/functions/getResolver.mjs +27 -0
  149. package/dist/esm/functions/getSpecificRecord.mjs +176 -0
  150. package/dist/esm/functions/getSubnames.mjs +92 -0
  151. package/dist/esm/functions/getWrapperData.mjs +39 -0
  152. package/dist/esm/functions/importDNSSECName.mjs +40 -0
  153. package/dist/esm/functions/initialGetters.mjs +25 -0
  154. package/dist/esm/functions/registerName.mjs +27 -0
  155. package/dist/esm/functions/renewNames.mjs +43 -0
  156. package/dist/esm/functions/setName.mjs +23 -0
  157. package/dist/esm/functions/setRecord.mjs +36 -0
  158. package/dist/esm/functions/setRecords.mjs +32 -0
  159. package/dist/esm/functions/setResolver.mjs +29 -0
  160. package/dist/esm/functions/supportsTLD.mjs +29 -0
  161. package/dist/esm/functions/transferController.mjs +23 -0
  162. package/dist/esm/functions/transferName.mjs +46 -0
  163. package/dist/esm/functions/transferSubname.mjs +45 -0
  164. package/dist/esm/functions/types.mjs +0 -0
  165. package/dist/esm/functions/unwrapName.mjs +33 -0
  166. package/dist/esm/functions/wrapName.mjs +105 -0
  167. package/dist/esm/generated/BaseRegistrarImplementation.mjs +0 -0
  168. package/dist/esm/generated/BulkRenewal.mjs +0 -0
  169. package/dist/esm/generated/DNSRegistrar.mjs +0 -0
  170. package/dist/esm/generated/DNSSECImpl.mjs +0 -0
  171. package/dist/esm/generated/DefaultReverseResolver.mjs +0 -0
  172. package/dist/esm/generated/ENSRegistry.mjs +0 -0
  173. package/dist/esm/generated/ETHRegistrarController.mjs +0 -0
  174. package/dist/esm/generated/Multicall.mjs +0 -0
  175. package/dist/esm/generated/NameWrapper.mjs +0 -0
  176. package/dist/esm/generated/P256SHA256Algorithm.mjs +0 -0
  177. package/dist/esm/generated/PublicResolver.mjs +0 -0
  178. package/dist/esm/generated/RSASHA1Algorithm.mjs +0 -0
  179. package/dist/esm/generated/RSASHA256Algorithm.mjs +0 -0
  180. package/dist/esm/generated/ReverseRegistrar.mjs +0 -0
  181. package/dist/esm/generated/Root.mjs +0 -0
  182. package/dist/esm/generated/SHA1Digest.mjs +0 -0
  183. package/dist/esm/generated/SHA1NSEC3Digest.mjs +0 -0
  184. package/dist/esm/generated/SHA256Digest.mjs +0 -0
  185. package/dist/esm/generated/StaticMetadataService.mjs +0 -0
  186. package/dist/esm/generated/TLDPublicSuffixList.mjs +0 -0
  187. package/dist/esm/generated/UniversalResolver.mjs +0 -0
  188. package/dist/esm/generated/common.mjs +0 -0
  189. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +779 -0
  190. package/dist/esm/generated/factories/BulkRenewal__factory.mjs +109 -0
  191. package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +278 -0
  192. package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +483 -0
  193. package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +96 -0
  194. package/dist/esm/generated/factories/ENSRegistry__factory.mjs +444 -0
  195. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +667 -0
  196. package/dist/esm/generated/factories/Multicall__factory.mjs +462 -0
  197. package/dist/esm/generated/factories/NameWrapper__factory.mjs +1373 -0
  198. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +53 -0
  199. package/dist/esm/generated/factories/PublicResolver__factory.mjs +952 -0
  200. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +53 -0
  201. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +53 -0
  202. package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +358 -0
  203. package/dist/esm/generated/factories/Root__factory.mjs +248 -0
  204. package/dist/esm/generated/factories/SHA1Digest__factory.mjs +48 -0
  205. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +53 -0
  206. package/dist/esm/generated/factories/SHA256Digest__factory.mjs +48 -0
  207. package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +58 -0
  208. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +43 -0
  209. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +486 -0
  210. package/dist/esm/generated/factories/index.mjs +45 -0
  211. package/dist/esm/generated/index.mjs +47 -0
  212. package/dist/esm/index.mjs +299 -0
  213. package/dist/esm/static.mjs +62 -0
  214. package/dist/esm/utils/ccip.mjs +114 -0
  215. package/dist/esm/utils/consts.mjs +5 -0
  216. package/dist/esm/utils/contentHash.mjs +142 -0
  217. package/dist/esm/utils/createReverseNode.mjs +5 -0
  218. package/dist/esm/utils/format.mjs +9 -0
  219. package/dist/esm/utils/fuses.mjs +115 -0
  220. package/dist/esm/utils/generateFuseInput.mjs +15 -0
  221. package/dist/esm/utils/hexEncodedName.mjs +6 -0
  222. package/dist/esm/utils/labels.mjs +109 -0
  223. package/dist/esm/utils/makeHashIndexes.mjs +10 -0
  224. package/dist/esm/utils/normalise.mjs +32 -0
  225. package/dist/esm/utils/recordHelpers.mjs +75 -0
  226. package/dist/esm/utils/registerHelpers.mjs +98 -0
  227. package/dist/esm/utils/singleCall.mjs +5 -0
  228. package/dist/esm/utils/validation.mjs +67 -0
  229. package/dist/esm/utils/wrapper.mjs +32 -0
  230. package/dist/esm/utils/writeTx.mjs +6 -0
  231. package/dist/types/GqlManager.d.ts +13 -0
  232. package/dist/types/contracts/baseRegistrar.d.ts +3 -0
  233. package/dist/types/contracts/bulkRenewal.d.ts +3 -0
  234. package/dist/types/contracts/dnsRegistrar.d.ts +3 -0
  235. package/dist/types/contracts/ethRegistrarController.d.ts +3 -0
  236. package/dist/types/contracts/factories.d.ts +45 -0
  237. package/dist/{cjs → types}/contracts/getContractAddress.d.ts +0 -0
  238. package/dist/types/contracts/index.d.ts +38 -0
  239. package/dist/types/contracts/multicall.d.ts +3 -0
  240. package/dist/types/contracts/nameWrapper.d.ts +3 -0
  241. package/dist/types/contracts/publicResolver.d.ts +3 -0
  242. package/dist/types/contracts/registry.d.ts +3 -0
  243. package/dist/types/contracts/reverseRegistrar.d.ts +3 -0
  244. package/dist/types/contracts/types.d.ts +2 -0
  245. package/dist/types/contracts/universalResolver.d.ts +3 -0
  246. package/dist/{cjs → types}/functions/batch.d.ts +0 -0
  247. package/dist/types/functions/batchWrappers.d.ts +86 -0
  248. package/dist/types/functions/burnFuses.d.ts +3 -0
  249. package/dist/types/functions/commitName.d.ts +26 -0
  250. package/dist/types/functions/createSubname.d.ts +16 -0
  251. package/dist/types/functions/deleteSubname.d.ts +6 -0
  252. package/dist/{esm/functions/getResolver.d.ts → types/functions/getAvailable.d.ts} +1 -1
  253. package/dist/{cjs → types}/functions/getDNSOwner.d.ts +0 -0
  254. package/dist/types/functions/getExpiry.d.ts +19 -0
  255. package/dist/types/functions/getHistory.d.ts +28 -0
  256. package/dist/{cjs → types}/functions/getName.d.ts +2 -2
  257. package/dist/{esm → types}/functions/getNames.d.ts +13 -3
  258. package/dist/{cjs → types}/functions/getOwner.d.ts +1 -1
  259. package/dist/{esm → types}/functions/getPrice.d.ts +3 -3
  260. package/dist/{esm → types}/functions/getProfile.d.ts +11 -1
  261. package/dist/{cjs → types}/functions/getRecords.d.ts +4 -2
  262. package/dist/{cjs → types}/functions/getResolver.d.ts +0 -0
  263. package/dist/{esm → types}/functions/getSpecificRecord.d.ts +6 -6
  264. package/dist/{esm → types}/functions/getSubnames.d.ts +2 -2
  265. package/dist/types/functions/getWrapperData.d.ts +15 -0
  266. package/dist/types/functions/importDNSSECName.d.ts +7 -0
  267. package/dist/{cjs → types}/functions/initialGetters.d.ts +1 -0
  268. package/dist/types/functions/registerName.d.ts +8 -0
  269. package/dist/types/functions/renewNames.d.ts +13 -0
  270. package/dist/types/functions/setName.d.ts +5 -0
  271. package/dist/types/functions/setRecord.d.ts +18 -0
  272. package/dist/types/functions/setRecords.d.ts +6 -0
  273. package/dist/types/functions/setResolver.d.ts +5 -0
  274. package/dist/types/functions/supportsTLD.d.ts +2 -0
  275. package/dist/types/functions/transferController.d.ts +5 -0
  276. package/dist/types/functions/transferName.d.ts +6 -0
  277. package/dist/types/functions/transferSubname.d.ts +14 -0
  278. package/dist/types/functions/types.d.ts +77 -0
  279. package/dist/types/functions/unwrapName.d.ts +5 -0
  280. package/dist/types/functions/wrapName.d.ts +9 -0
  281. package/dist/types/generated/BaseRegistrarImplementation.d.ts +512 -0
  282. package/dist/types/generated/BulkRenewal.d.ts +80 -0
  283. package/dist/types/generated/DNSRegistrar.d.ts +228 -0
  284. package/dist/types/generated/DNSSECImpl.d.ts +406 -0
  285. package/dist/types/generated/DefaultReverseResolver.d.ts +70 -0
  286. package/dist/types/generated/ENSRegistry.d.ts +278 -0
  287. package/dist/types/generated/ETHRegistrarController.d.ts +366 -0
  288. package/dist/{esm → types}/generated/Multicall.d.ts +113 -109
  289. package/dist/types/generated/NameWrapper.d.ts +814 -0
  290. package/dist/{esm → types}/generated/P256SHA256Algorithm.d.ts +22 -14
  291. package/dist/types/generated/PublicResolver.d.ts +598 -0
  292. package/dist/types/generated/RSASHA1Algorithm.d.ts +50 -0
  293. package/dist/types/generated/RSASHA256Algorithm.d.ts +50 -0
  294. package/dist/types/generated/ReverseRegistrar.d.ts +283 -0
  295. package/dist/types/generated/Root.d.ts +177 -0
  296. package/dist/{cjs → types}/generated/SHA1Digest.d.ts +18 -14
  297. package/dist/{esm → types}/generated/SHA1NSEC3Digest.d.ts +22 -14
  298. package/dist/{esm → types}/generated/SHA256Digest.d.ts +18 -14
  299. package/dist/types/generated/StaticMetadataService.d.ts +46 -0
  300. package/dist/types/generated/TLDPublicSuffixList.d.ts +46 -0
  301. package/dist/types/generated/UniversalResolver.d.ts +188 -0
  302. package/dist/{esm → types}/generated/common.d.ts +4 -3
  303. package/dist/{cjs → types}/generated/factories/BaseRegistrarImplementation__factory.d.ts +3 -3
  304. package/dist/{cjs/generated/factories/StaticMetadataService__factory.d.ts → types/generated/factories/BulkRenewal__factory.d.ts} +6 -6
  305. package/dist/{cjs/generated/factories/ETHRegistrarController__factory.d.ts → types/generated/factories/DNSRegistrar__factory.d.ts} +17 -16
  306. package/dist/{esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts → types/generated/factories/DNSSECImpl__factory.d.ts} +11 -11
  307. package/dist/{esm → types}/generated/factories/DefaultReverseResolver__factory.d.ts +3 -3
  308. package/dist/{esm → types}/generated/factories/ENSRegistry__factory.d.ts +3 -3
  309. package/dist/{esm → types}/generated/factories/ETHRegistrarController__factory.d.ts +15 -4
  310. package/dist/{esm → types}/generated/factories/Multicall__factory.d.ts +3 -3
  311. package/dist/{esm → types}/generated/factories/NameWrapper__factory.d.ts +3 -3
  312. package/dist/types/generated/factories/P256SHA256Algorithm__factory.d.ts +22 -0
  313. package/dist/{esm → types}/generated/factories/PublicResolver__factory.d.ts +3 -3
  314. package/dist/types/generated/factories/RSASHA1Algorithm__factory.d.ts +22 -0
  315. package/dist/types/generated/factories/RSASHA256Algorithm__factory.d.ts +22 -0
  316. package/dist/{esm → types}/generated/factories/ReverseRegistrar__factory.d.ts +3 -3
  317. package/dist/{cjs → types}/generated/factories/Root__factory.d.ts +3 -3
  318. package/dist/types/generated/factories/SHA1Digest__factory.d.ts +22 -0
  319. package/dist/types/generated/factories/SHA1NSEC3Digest__factory.d.ts +22 -0
  320. package/dist/types/generated/factories/SHA256Digest__factory.d.ts +22 -0
  321. package/dist/{esm → types}/generated/factories/StaticMetadataService__factory.d.ts +3 -3
  322. package/dist/types/generated/factories/TLDPublicSuffixList__factory.d.ts +22 -0
  323. package/dist/{cjs → types}/generated/factories/UniversalResolver__factory.d.ts +3 -3
  324. package/dist/types/generated/factories/index.d.ts +21 -0
  325. package/dist/types/generated/index.d.ts +43 -0
  326. package/dist/{esm → types}/index.d.ts +192 -132
  327. package/dist/types/static.d.ts +26 -0
  328. package/dist/types/utils/ccip.d.ts +3 -0
  329. package/dist/types/utils/consts.d.ts +1 -0
  330. package/dist/{cjs → types}/utils/contentHash.d.ts +0 -0
  331. package/dist/{cjs → types}/utils/createReverseNode.d.ts +0 -0
  332. package/dist/{cjs → types}/utils/format.d.ts +0 -0
  333. package/dist/types/utils/fuses.d.ts +61 -0
  334. package/dist/{cjs → types}/utils/generateFuseInput.d.ts +1 -1
  335. package/dist/{cjs → types}/utils/hexEncodedName.d.ts +0 -0
  336. package/dist/{cjs → types}/utils/labels.d.ts +0 -0
  337. package/dist/{cjs → types}/utils/makeHashIndexes.d.ts +0 -0
  338. package/dist/types/utils/normalise.d.ts +2 -0
  339. package/dist/{esm → types}/utils/recordHelpers.d.ts +4 -0
  340. package/dist/types/utils/registerHelpers.d.ts +59 -0
  341. package/dist/{esm → types}/utils/singleCall.d.ts +2 -2
  342. package/dist/{cjs → types}/utils/validation.d.ts +0 -0
  343. package/dist/types/utils/wrapper.d.ts +6 -0
  344. package/dist/types/utils/writeTx.d.ts +21 -0
  345. package/package.json +103 -39
  346. package/src/@types/@ensdomains/ens-contracts.d.ts +1 -1
  347. package/src/@types/dns-packet/index.d.ts +113 -113
  348. package/src/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 +28 -5
  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 +3 -3
  367. package/src/functions/batchWrappers.test.ts +13 -13
  368. package/src/functions/batchWrappers.ts +42 -11
  369. package/src/functions/burnFuses.test.ts +127 -23
  370. package/src/functions/burnFuses.ts +6 -13
  371. package/src/functions/commitName.test.ts +61 -0
  372. package/src/functions/commitName.ts +39 -0
  373. package/src/functions/createSubname.test.ts +11 -19
  374. package/src/functions/createSubname.ts +24 -17
  375. package/src/functions/deleteSubname.test.ts +36 -38
  376. package/src/functions/deleteSubname.ts +47 -13
  377. package/src/functions/getAvailable.test.ts +21 -0
  378. package/src/functions/getAvailable.ts +37 -0
  379. package/src/functions/getDNSOwner.test.ts +9 -19
  380. package/src/functions/getDNSOwner.ts +11 -9
  381. package/src/functions/getExpiry.test.ts +28 -10
  382. package/src/functions/getExpiry.ts +89 -11
  383. package/src/functions/getHistory.test.ts +17 -80
  384. package/src/functions/getHistory.ts +107 -176
  385. package/src/functions/getName.test.ts +10 -10
  386. package/src/functions/getName.ts +4 -4
  387. package/src/functions/getNames.test.ts +153 -89
  388. package/src/functions/getNames.ts +140 -36
  389. package/src/functions/getOwner.test.ts +3 -54
  390. package/src/functions/getOwner.ts +66 -29
  391. package/src/functions/getPrice.test.ts +55 -0
  392. package/src/functions/getPrice.ts +66 -13
  393. package/src/functions/getProfile-ccip.test.ts +29 -0
  394. package/src/functions/getProfile.test.ts +128 -29
  395. package/src/functions/getProfile.ts +296 -158
  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 +23 -20
  400. package/src/functions/getSpecificRecord.ts +23 -152
  401. package/src/functions/getSubnames.test.ts +651 -7
  402. package/src/functions/getSubnames.ts +45 -103
  403. package/src/functions/getWrapperData.test.ts +98 -0
  404. package/src/functions/getWrapperData.ts +42 -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 +60 -0
  412. package/src/functions/setName.test.ts +22 -18
  413. package/src/functions/setName.ts +15 -17
  414. package/src/functions/setRecord.test.ts +103 -0
  415. package/src/functions/setRecord.ts +59 -0
  416. package/src/functions/setRecords.test.ts +24 -18
  417. package/src/functions/setRecords.ts +19 -13
  418. package/src/functions/setResolver.test.ts +17 -25
  419. package/src/functions/setResolver.ts +15 -20
  420. package/src/functions/supportsTLD.test.ts +45 -0
  421. package/src/functions/supportsTLD.ts +38 -0
  422. package/src/functions/transferController.ts +29 -0
  423. package/src/functions/transferName.test.ts +24 -40
  424. package/src/functions/transferName.ts +27 -26
  425. package/src/functions/transferSubname.test.ts +19 -37
  426. package/src/functions/transferSubname.ts +41 -16
  427. package/src/functions/types.ts +94 -0
  428. package/src/functions/unwrapName.test.ts +19 -34
  429. package/src/functions/unwrapName.ts +26 -22
  430. package/src/functions/wrapName.test.ts +123 -37
  431. package/src/functions/wrapName.ts +80 -62
  432. package/src/generated/BaseRegistrarImplementation.ts +846 -773
  433. package/src/generated/BulkRenewal.ts +196 -0
  434. package/src/generated/DNSRegistrar.ts +276 -262
  435. package/src/generated/DNSSECImpl.ts +436 -412
  436. package/src/generated/DefaultReverseResolver.ts +95 -79
  437. package/src/generated/ENSRegistry.ts +491 -422
  438. package/src/generated/ETHRegistrarController.ts +649 -491
  439. package/src/generated/Multicall.ts +345 -336
  440. package/src/generated/NameWrapper.ts +1594 -1220
  441. package/src/generated/P256SHA256Algorithm.ts +70 -65
  442. package/src/generated/PublicResolver.ts +1105 -941
  443. package/src/generated/RSASHA1Algorithm.ts +70 -65
  444. package/src/generated/RSASHA256Algorithm.ts +70 -65
  445. package/src/generated/ReverseRegistrar.ts +428 -362
  446. package/src/generated/Root.ts +295 -241
  447. package/src/generated/SHA1Digest.ts +61 -60
  448. package/src/generated/SHA1NSEC3Digest.ts +70 -66
  449. package/src/generated/SHA256Digest.ts +61 -60
  450. package/src/generated/StaticMetadataService.ts +61 -46
  451. package/src/generated/TLDPublicSuffixList.ts +59 -55
  452. package/src/generated/UniversalResolver.ts +554 -188
  453. package/src/generated/common.ts +16 -14
  454. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +340 -338
  455. package/src/generated/factories/BulkRenewal__factory.ts +110 -0
  456. package/src/generated/factories/DNSRegistrar__factory.ts +134 -184
  457. package/src/generated/factories/DNSSECImpl__factory.ts +233 -276
  458. package/src/generated/factories/DefaultReverseResolver__factory.ts +40 -38
  459. package/src/generated/factories/ENSRegistry__factory.ts +199 -197
  460. package/src/generated/factories/ETHRegistrarController__factory.ts +400 -251
  461. package/src/generated/factories/Multicall__factory.ts +226 -224
  462. package/src/generated/factories/NameWrapper__factory.ts +788 -618
  463. package/src/generated/factories/P256SHA256Algorithm__factory.ts +27 -61
  464. package/src/generated/factories/PublicResolver__factory.ts +490 -436
  465. package/src/generated/factories/RSASHA1Algorithm__factory.ts +27 -61
  466. package/src/generated/factories/RSASHA256Algorithm__factory.ts +27 -61
  467. package/src/generated/factories/ReverseRegistrar__factory.ts +175 -160
  468. package/src/generated/factories/Root__factory.ts +103 -101
  469. package/src/generated/factories/SHA1Digest__factory.ts +24 -58
  470. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +27 -61
  471. package/src/generated/factories/SHA256Digest__factory.ts +24 -58
  472. package/src/generated/factories/StaticMetadataService__factory.ts +25 -23
  473. package/src/generated/factories/TLDPublicSuffixList__factory.ts +21 -55
  474. package/src/generated/factories/UniversalResolver__factory.ts +381 -102
  475. package/src/generated/factories/index.ts +15 -0
  476. package/src/generated/index.ts +31 -1
  477. package/src/index.ts +289 -168
  478. package/src/static.ts +94 -0
  479. package/src/utils/ccip.ts +149 -0
  480. package/src/utils/consts.ts +1 -0
  481. package/src/utils/contentHash.ts +29 -27
  482. package/src/utils/createReverseNode.ts +1 -1
  483. package/src/utils/fuses.ts +141 -4
  484. package/src/utils/generateFuseInput.ts +7 -12
  485. package/src/utils/labels.ts +7 -5
  486. package/src/utils/normalise.ts +14 -6
  487. package/src/utils/recordHelpers.ts +59 -20
  488. package/src/utils/registerHelpers.ts +125 -55
  489. package/src/utils/singleCall.ts +3 -3
  490. package/src/utils/validation.ts +9 -10
  491. package/src/utils/wrapper.ts +36 -0
  492. package/src/utils/writeTx.ts +16 -0
  493. package/dist/cjs/GqlManager.d.ts +0 -6
  494. package/dist/cjs/contracts/baseRegistrar.d.ts +0 -3
  495. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  496. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
  497. package/dist/cjs/contracts/ethRegistrarController.d.ts +0 -3
  498. package/dist/cjs/contracts/index.d.ts +0 -16
  499. package/dist/cjs/contracts/multicall.d.ts +0 -3
  500. package/dist/cjs/contracts/nameWrapper.d.ts +0 -3
  501. package/dist/cjs/contracts/publicResolver.d.ts +0 -3
  502. package/dist/cjs/contracts/registry.d.ts +0 -3
  503. package/dist/cjs/contracts/reverseRegistrar.d.ts +0 -3
  504. package/dist/cjs/contracts/types.d.ts +0 -2
  505. package/dist/cjs/contracts/universalResolver.d.ts +0 -3
  506. package/dist/cjs/functions/batchWrappers.d.ts +0 -29
  507. package/dist/cjs/functions/burnFuses.d.ts +0 -3
  508. package/dist/cjs/functions/createSubname.d.ts +0 -19
  509. package/dist/cjs/functions/deleteSubname.d.ts +0 -4
  510. package/dist/cjs/functions/getExpiry.d.ts +0 -12
  511. package/dist/cjs/functions/getFuses.d.ts +0 -17
  512. package/dist/cjs/functions/getFuses.js +0 -62
  513. package/dist/cjs/functions/getHistory.d.ts +0 -54
  514. package/dist/cjs/functions/getNames.d.ts +0 -40
  515. package/dist/cjs/functions/getPrice.d.ts +0 -13
  516. package/dist/cjs/functions/getProfile.d.ts +0 -30
  517. package/dist/cjs/functions/getSpecificRecord.d.ts +0 -73
  518. package/dist/cjs/functions/getSubnames.d.ts +0 -26
  519. package/dist/cjs/functions/setName.d.ts +0 -4
  520. package/dist/cjs/functions/setRecords.d.ts +0 -3
  521. package/dist/cjs/functions/setResolver.d.ts +0 -4
  522. package/dist/cjs/functions/transferName.d.ts +0 -5
  523. package/dist/cjs/functions/transferSubname.d.ts +0 -5
  524. package/dist/cjs/functions/unwrapName.d.ts +0 -4
  525. package/dist/cjs/functions/wrapName.d.ts +0 -6
  526. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +0 -487
  527. package/dist/cjs/generated/DNSRegistrar.d.ts +0 -220
  528. package/dist/cjs/generated/DNSSECImpl.d.ts +0 -402
  529. package/dist/cjs/generated/DefaultReverseResolver.d.ts +0 -66
  530. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  531. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
  532. package/dist/cjs/generated/ENSRegistry.d.ts +0 -259
  533. package/dist/cjs/generated/ETHRegistrarController.d.ts +0 -319
  534. package/dist/cjs/generated/Multicall.d.ts +0 -292
  535. package/dist/cjs/generated/NameWrapper.d.ts +0 -675
  536. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +0 -72
  537. package/dist/cjs/generated/PublicResolver.d.ts +0 -542
  538. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +0 -42
  539. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +0 -42
  540. package/dist/cjs/generated/ReverseRegistrar.d.ts +0 -259
  541. package/dist/cjs/generated/Root.d.ts +0 -173
  542. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +0 -72
  543. package/dist/cjs/generated/SHA256Digest.d.ts +0 -67
  544. package/dist/cjs/generated/StaticMetadataService.d.ts +0 -42
  545. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +0 -42
  546. package/dist/cjs/generated/UniversalResolver.d.ts +0 -82
  547. package/dist/cjs/generated/common.d.ts +0 -21
  548. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  549. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  550. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.d.ts +0 -36
  551. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  552. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
  553. package/dist/cjs/generated/factories/ENSRegistry__factory.d.ts +0 -52
  554. package/dist/cjs/generated/factories/Multicall__factory.d.ts +0 -42
  555. package/dist/cjs/generated/factories/NameWrapper__factory.d.ts +0 -57
  556. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  557. package/dist/cjs/generated/factories/PublicResolver__factory.d.ts +0 -46
  558. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  559. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  560. package/dist/cjs/generated/factories/ReverseRegistrar__factory.d.ts +0 -46
  561. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +0 -34
  562. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  563. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +0 -34
  564. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  565. package/dist/cjs/generated/factories/index.d.ts +0 -6
  566. package/dist/cjs/generated/index.d.ts +0 -13
  567. package/dist/cjs/index.d.ts +0 -471
  568. package/dist/cjs/utils/fuses.d.ts +0 -20
  569. package/dist/cjs/utils/normalise.d.ts +0 -2
  570. package/dist/cjs/utils/recordHelpers.d.ts +0 -13
  571. package/dist/cjs/utils/registerHelpers.d.ts +0 -26
  572. package/dist/cjs/utils/singleCall.d.ts +0 -9
  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 -3
  604. package/dist/esm/functions/burnFuses.js +0 -12
  605. package/dist/esm/functions/createSubname.d.ts +0 -19
  606. package/dist/esm/functions/createSubname.js +0 -38
  607. package/dist/esm/functions/deleteSubname.d.ts +0 -4
  608. package/dist/esm/functions/deleteSubname.js +0 -3
  609. package/dist/esm/functions/getDNSOwner.d.ts +0 -7
  610. package/dist/esm/functions/getDNSOwner.js +0 -51
  611. package/dist/esm/functions/getExpiry.d.ts +0 -12
  612. package/dist/esm/functions/getExpiry.js +0 -43
  613. package/dist/esm/functions/getFuses.d.ts +0 -17
  614. package/dist/esm/functions/getFuses.js +0 -60
  615. package/dist/esm/functions/getHistory.d.ts +0 -54
  616. package/dist/esm/functions/getHistory.js +0 -273
  617. package/dist/esm/functions/getName.d.ts +0 -19
  618. package/dist/esm/functions/getName.js +0 -32
  619. package/dist/esm/functions/getNames.js +0 -220
  620. package/dist/esm/functions/getOwner.d.ts +0 -14
  621. package/dist/esm/functions/getOwner.js +0 -138
  622. package/dist/esm/functions/getPrice.js +0 -48
  623. package/dist/esm/functions/getProfile.js +0 -299
  624. package/dist/esm/functions/getRecords.d.ts +0 -32
  625. package/dist/esm/functions/getRecords.js +0 -8
  626. package/dist/esm/functions/getResolver.js +0 -22
  627. package/dist/esm/functions/getSpecificRecord.js +0 -265
  628. package/dist/esm/functions/getSubnames.js +0 -152
  629. package/dist/esm/functions/initialGetters.d.ts +0 -11
  630. package/dist/esm/functions/initialGetters.js +0 -11
  631. package/dist/esm/functions/setName.d.ts +0 -4
  632. package/dist/esm/functions/setName.js +0 -14
  633. package/dist/esm/functions/setRecords.d.ts +0 -3
  634. package/dist/esm/functions/setRecords.js +0 -19
  635. package/dist/esm/functions/setResolver.d.ts +0 -4
  636. package/dist/esm/functions/setResolver.js +0 -25
  637. package/dist/esm/functions/transferName.d.ts +0 -5
  638. package/dist/esm/functions/transferName.js +0 -31
  639. package/dist/esm/functions/transferSubname.d.ts +0 -5
  640. package/dist/esm/functions/transferSubname.js +0 -25
  641. package/dist/esm/functions/unwrapName.d.ts +0 -4
  642. package/dist/esm/functions/unwrapName.js +0 -25
  643. package/dist/esm/functions/wrapName.d.ts +0 -6
  644. package/dist/esm/functions/wrapName.js +0 -58
  645. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +0 -487
  646. package/dist/esm/generated/BaseRegistrarImplementation.js +0 -1
  647. package/dist/esm/generated/DNSRegistrar.d.ts +0 -220
  648. package/dist/esm/generated/DNSRegistrar.js +0 -1
  649. package/dist/esm/generated/DNSSECImpl.d.ts +0 -402
  650. package/dist/esm/generated/DNSSECImpl.js +0 -1
  651. package/dist/esm/generated/DefaultReverseResolver.d.ts +0 -66
  652. package/dist/esm/generated/DefaultReverseResolver.js +0 -1
  653. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  654. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
  655. package/dist/esm/generated/ENSRegistry.d.ts +0 -259
  656. package/dist/esm/generated/ENSRegistry.js +0 -1
  657. package/dist/esm/generated/ETHRegistrarController.d.ts +0 -319
  658. package/dist/esm/generated/ETHRegistrarController.js +0 -1
  659. package/dist/esm/generated/Multicall.js +0 -1
  660. package/dist/esm/generated/NameWrapper.d.ts +0 -675
  661. package/dist/esm/generated/NameWrapper.js +0 -1
  662. package/dist/esm/generated/P256SHA256Algorithm.js +0 -1
  663. package/dist/esm/generated/PublicResolver.d.ts +0 -542
  664. package/dist/esm/generated/PublicResolver.js +0 -1
  665. package/dist/esm/generated/RSASHA1Algorithm.d.ts +0 -42
  666. package/dist/esm/generated/RSASHA1Algorithm.js +0 -1
  667. package/dist/esm/generated/RSASHA256Algorithm.d.ts +0 -42
  668. package/dist/esm/generated/RSASHA256Algorithm.js +0 -1
  669. package/dist/esm/generated/ReverseRegistrar.d.ts +0 -259
  670. package/dist/esm/generated/ReverseRegistrar.js +0 -1
  671. package/dist/esm/generated/Root.d.ts +0 -173
  672. package/dist/esm/generated/Root.js +0 -1
  673. package/dist/esm/generated/SHA1Digest.d.ts +0 -67
  674. package/dist/esm/generated/SHA1Digest.js +0 -1
  675. package/dist/esm/generated/SHA1NSEC3Digest.js +0 -1
  676. package/dist/esm/generated/SHA256Digest.js +0 -1
  677. package/dist/esm/generated/StaticMetadataService.d.ts +0 -42
  678. package/dist/esm/generated/StaticMetadataService.js +0 -1
  679. package/dist/esm/generated/TLDPublicSuffixList.d.ts +0 -42
  680. package/dist/esm/generated/TLDPublicSuffixList.js +0 -1
  681. package/dist/esm/generated/UniversalResolver.d.ts +0 -82
  682. package/dist/esm/generated/UniversalResolver.js +0 -1
  683. package/dist/esm/generated/common.js +0 -1
  684. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +0 -52
  685. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +0 -766
  686. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  687. package/dist/esm/generated/factories/DNSRegistrar__factory.js +0 -292
  688. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  689. package/dist/esm/generated/factories/DNSSECImpl__factory.js +0 -497
  690. package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +0 -83
  691. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
  692. package/dist/esm/generated/factories/ENSRegistry__factory.js +0 -435
  693. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +0 -507
  694. package/dist/esm/generated/factories/Multicall__factory.js +0 -453
  695. package/dist/esm/generated/factories/NameWrapper__factory.js +0 -1196
  696. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  697. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +0 -67
  698. package/dist/esm/generated/factories/PublicResolver__factory.js +0 -888
  699. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  700. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +0 -67
  701. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  702. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +0 -67
  703. package/dist/esm/generated/factories/ReverseRegistrar__factory.js +0 -336
  704. package/dist/esm/generated/factories/Root__factory.d.ts +0 -52
  705. package/dist/esm/generated/factories/Root__factory.js +0 -239
  706. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +0 -34
  707. package/dist/esm/generated/factories/SHA1Digest__factory.js +0 -62
  708. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  709. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +0 -67
  710. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +0 -34
  711. package/dist/esm/generated/factories/SHA256Digest__factory.js +0 -62
  712. package/dist/esm/generated/factories/StaticMetadataService__factory.js +0 -45
  713. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  714. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +0 -57
  715. package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +0 -42
  716. package/dist/esm/generated/factories/UniversalResolver__factory.js +0 -200
  717. package/dist/esm/generated/factories/index.d.ts +0 -6
  718. package/dist/esm/generated/factories/index.js +0 -9
  719. package/dist/esm/generated/index.d.ts +0 -13
  720. package/dist/esm/generated/index.js +0 -7
  721. package/dist/esm/index.js +0 -190
  722. package/dist/esm/utils/contentHash.d.ts +0 -28
  723. package/dist/esm/utils/contentHash.js +0 -153
  724. package/dist/esm/utils/createReverseNode.d.ts +0 -2
  725. package/dist/esm/utils/createReverseNode.js +0 -1
  726. package/dist/esm/utils/format.d.ts +0 -3
  727. package/dist/esm/utils/format.js +0 -3
  728. package/dist/esm/utils/fuses.d.ts +0 -20
  729. package/dist/esm/utils/fuses.js +0 -21
  730. package/dist/esm/utils/generateFuseInput.d.ts +0 -3
  731. package/dist/esm/utils/generateFuseInput.js +0 -14
  732. package/dist/esm/utils/hexEncodedName.d.ts +0 -1
  733. package/dist/esm/utils/hexEncodedName.js +0 -2
  734. package/dist/esm/utils/labels.d.ts +0 -14
  735. package/dist/esm/utils/labels.js +0 -95
  736. package/dist/esm/utils/makeHashIndexes.d.ts +0 -2
  737. package/dist/esm/utils/makeHashIndexes.js +0 -3
  738. package/dist/esm/utils/normalise.d.ts +0 -2
  739. package/dist/esm/utils/normalise.js +0 -20
  740. package/dist/esm/utils/recordHelpers.js +0 -39
  741. package/dist/esm/utils/registerHelpers.d.ts +0 -26
  742. package/dist/esm/utils/registerHelpers.js +0 -43
  743. package/dist/esm/utils/singleCall.js +0 -5
  744. package/dist/esm/utils/validation.d.ts +0 -8
  745. package/dist/esm/utils/validation.js +0 -67
  746. package/src/@types/FuseOptions.d.ts +0 -9
  747. package/src/ABIs/ETHRegistrarController.json +0 -494
  748. package/src/ABIs/NameWrapper.json +0 -1183
  749. package/src/ABIs/PublicResolver.json +0 -875
  750. package/src/ABIs/ReverseRegistrar.json +0 -323
  751. package/src/ABIs/StaticMetadataService.json +0 -32
  752. package/src/ABIs/UniversalResolver.json +0 -187
  753. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
  754. package/src/functions/getFuses.test.ts +0 -103
  755. package/src/functions/getFuses.ts +0 -76
  756. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
  757. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
  758. package/src/tests/setup.ts +0 -53
  759. package/src/tests/withProvider.test.ts +0 -28
@@ -1,5 +1,6 @@
1
- import { ethers } from 'ethers'
1
+ import type { TransactionRequest } from '@ethersproject/providers'
2
2
  import { ENSArgs } from '..'
3
+ import ccipLookup from '../utils/ccip'
3
4
  import { hexEncodeName } from '../utils/hexEncodedName'
4
5
 
5
6
  export const universalWrapper = {
@@ -11,16 +12,16 @@ export const universalWrapper = {
11
12
  const universalResolver = await contracts?.getUniversalResolver()!
12
13
  return {
13
14
  to: universalResolver.address,
14
- data: universalResolver.interface.encodeFunctionData('resolve', [
15
- hexEncodeName(name),
16
- data,
17
- ]),
15
+ data: universalResolver.interface.encodeFunctionData(
16
+ 'resolve(bytes,bytes)',
17
+ [hexEncodeName(name), data],
18
+ ),
18
19
  }
19
20
  },
20
21
  decode: async ({ contracts }: ENSArgs<'contracts'>, data: string) => {
21
22
  const universalResolver = await contracts?.getUniversalResolver()!
22
23
  const response = universalResolver.interface.decodeFunctionResult(
23
- 'resolve',
24
+ 'resolve(bytes,bytes)',
24
25
  data,
25
26
  )
26
27
  if (!response || !response[0]) {
@@ -58,9 +59,9 @@ export const resolverMulticallWrapper = {
58
59
  }
59
60
 
60
61
  export const multicallWrapper = {
61
- raw: async function (
62
+ async raw(
62
63
  { contracts }: ENSArgs<'contracts'>,
63
- transactions: ethers.providers.TransactionRequest[],
64
+ transactions: TransactionRequest[],
64
65
  requireSuccess: boolean = false,
65
66
  ) {
66
67
  const multicall = await contracts?.getMulticall()!
@@ -75,7 +76,11 @@ export const multicallWrapper = {
75
76
  ]),
76
77
  }
77
78
  },
78
- decode: async function ({ contracts }: ENSArgs<'contracts'>, data: string) {
79
+ async decode(
80
+ { contracts, provider }: ENSArgs<'contracts' | 'provider'>,
81
+ data: string,
82
+ transactions: TransactionRequest[],
83
+ ) {
79
84
  if (!data) return
80
85
  const multicall = await contracts?.getMulticall()!
81
86
  try {
@@ -83,8 +88,34 @@ export const multicallWrapper = {
83
88
  'tryAggregate',
84
89
  data,
85
90
  )
86
- return result
87
- } catch {
91
+ const ccipChecked = await Promise.all(
92
+ (result as [boolean, string][]).map(
93
+ async ([success, returnData], i) => {
94
+ let newArr: [boolean, string] = [success, returnData]
95
+ // OffchainLookup(address,string[],bytes,bytes4,bytes)
96
+ if (!success && returnData.startsWith('0x556f1830')) {
97
+ try {
98
+ const newData = await ccipLookup(
99
+ provider!,
100
+ transactions[i],
101
+ returnData,
102
+ )
103
+ if (newData) {
104
+ newArr = [true, newData]
105
+ }
106
+ } catch {}
107
+ }
108
+ return {
109
+ ...newArr,
110
+ success: newArr[0],
111
+ returnData: newArr[1],
112
+ }
113
+ },
114
+ ),
115
+ )
116
+ return ccipChecked
117
+ } catch (e: any) {
118
+ console.error(e)
88
119
  return
89
120
  }
90
121
  },
@@ -1,15 +1,15 @@
1
- import { BigNumber, ethers } from 'ethers'
1
+ import { ethers } from 'ethers'
2
2
  import { ENS } from '..'
3
- import { namehash } from '../utils/normalise'
4
3
  import setup from '../tests/setup'
4
+ import { namehash } from '../utils/normalise'
5
5
 
6
- let ENSInstance: ENS
6
+ let ensInstance: ENS
7
7
  let revert: Awaited<ReturnType<typeof setup>>['revert']
8
8
  let provider: ethers.providers.JsonRpcProvider
9
9
  let accounts: string[]
10
10
 
11
11
  beforeAll(async () => {
12
- ;({ ENSInstance, revert, provider } = await setup())
12
+ ;({ ensInstance, revert, provider } = await setup())
13
13
  accounts = await provider.listAccounts()
14
14
  })
15
15
 
@@ -21,24 +21,128 @@ describe('burnFuses', () => {
21
21
  beforeEach(async () => {
22
22
  await revert()
23
23
  })
24
- it('should return a burnFuses transaction and succeed', async () => {
25
- const wrapNameTx = await ENSInstance.wrapName(
26
- 'parthtejpal.eth',
27
- accounts[0],
28
- )
29
- await wrapNameTx.wait()
30
-
31
- const tx = await ENSInstance.burnFuses('parthtejpal.eth', {
32
- cannotUnwrap: true,
33
- cannotCreateSubdomain: true,
34
- cannotSetTtl: true,
35
- })
36
- expect(tx).toBeTruthy()
37
- await tx.wait()
38
-
39
- const nameWrapper = await ENSInstance.contracts!.getNameWrapper()!
40
- const result = await nameWrapper.getFuses(namehash('parthtejpal.eth'))
41
- const fuseBN = result.fuses as BigNumber
42
- expect(fuseBN.toHexString()).toBe('0x71')
24
+ describe('Array', () => {
25
+ it('should return a burnFuses transaction from a named fuse array and succeed', async () => {
26
+ const tx = await ensInstance.burnFuses('wrapped.eth', {
27
+ namedFusesToBurn: [
28
+ 'CANNOT_UNWRAP',
29
+ 'CANNOT_CREATE_SUBDOMAIN',
30
+ 'CANNOT_SET_TTL',
31
+ ],
32
+ addressOrIndex: accounts[1],
33
+ })
34
+ expect(tx).toBeTruthy()
35
+ await tx.wait()
36
+
37
+ const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
38
+ const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
39
+ expect(fuses).toBe(113)
40
+ })
41
+ it('should return a burnFuses transaction from an unnamed fuse array and succeed', async () => {
42
+ const tx0 = await ensInstance.burnFuses('wrapped.eth', {
43
+ namedFusesToBurn: ['CANNOT_UNWRAP'],
44
+ addressOrIndex: accounts[1],
45
+ })
46
+ expect(tx0).toBeTruthy()
47
+ await tx0.wait()
48
+
49
+ const tx = await ensInstance.burnFuses('wrapped.eth', {
50
+ unnamedFusesToBurn: [128, 256, 512],
51
+ addressOrIndex: accounts[1],
52
+ })
53
+ expect(tx).toBeTruthy()
54
+ await tx.wait()
55
+
56
+ const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
57
+ const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
58
+ expect(fuses).toBe(961)
59
+ })
60
+ it('should return a burnFuses transaction from both an unnamed and named fuse array and succeed', async () => {
61
+ const tx = await ensInstance.burnFuses('wrapped.eth', {
62
+ namedFusesToBurn: [
63
+ 'CANNOT_UNWRAP',
64
+ 'CANNOT_CREATE_SUBDOMAIN',
65
+ 'CANNOT_SET_TTL',
66
+ ],
67
+ unnamedFusesToBurn: [128, 256, 512],
68
+ addressOrIndex: accounts[1],
69
+ })
70
+ expect(tx).toBeTruthy()
71
+ await tx.wait()
72
+
73
+ const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
74
+ const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
75
+ expect(fuses).toBe(1009)
76
+ })
77
+ it('should throw an error when trying to burn a named fuse in an unnamed fuse array', async () => {
78
+ try {
79
+ await ensInstance.burnFuses('wrapped.eth', {
80
+ unnamedFusesToBurn: [64] as any,
81
+ })
82
+ expect(false).toBeTruthy()
83
+ } catch (e: any) {
84
+ expect(e.message).toBe(
85
+ '64 is not a valid unnamed fuse. If you are trying to burn a named fuse, use the namedFusesToBurn property.',
86
+ )
87
+ }
88
+ })
89
+ it('should throw an error when trying to burn an unnamed fuse in a named fuse array', async () => {
90
+ try {
91
+ await ensInstance.burnFuses('wrapped.eth', {
92
+ namedFusesToBurn: ['COOL_SWAG_FUSE'] as any,
93
+ })
94
+ expect(false).toBeTruthy()
95
+ } catch (e: any) {
96
+ expect(e.message).toBe('COOL_SWAG_FUSE is not a valid named fuse.')
97
+ }
98
+ })
99
+ })
100
+ describe('Number', () => {
101
+ it('should return a burnFuses transaction from a number and succeed', async () => {
102
+ const tx = await ensInstance.burnFuses('wrapped.eth', {
103
+ fuseNumberToBurn: 49,
104
+ addressOrIndex: accounts[1],
105
+ })
106
+ expect(tx).toBeTruthy()
107
+ await tx.wait()
108
+
109
+ const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
110
+ const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
111
+ expect(fuses).toBe(113)
112
+ })
113
+ it('should throw an error if the number is too high', async () => {
114
+ try {
115
+ await ensInstance.burnFuses('wrapped.eth', {
116
+ fuseNumberToBurn: 4294967297,
117
+ })
118
+ expect(false).toBeTruthy()
119
+ } catch (e: any) {
120
+ expect(e.message).toBe(
121
+ 'Fuse number must be limited to uint32, 4294967297 was too high.',
122
+ )
123
+ }
124
+ })
125
+ it('should throw an error if the number is too low', async () => {
126
+ try {
127
+ await ensInstance.burnFuses('wrapped.eth', {
128
+ fuseNumberToBurn: -1,
129
+ })
130
+ expect(false).toBeTruthy()
131
+ } catch (e: any) {
132
+ expect(e.message).toBe(
133
+ 'Fuse number must be limited to uint32, -1 was too low.',
134
+ )
135
+ }
136
+ })
137
+ it('should throw an error if the number is not an integer', async () => {
138
+ try {
139
+ await ensInstance.burnFuses('wrapped.eth', {
140
+ fuseNumberToBurn: 7.5,
141
+ })
142
+ expect(false).toBeTruthy()
143
+ } catch (e: any) {
144
+ expect(e.message).toBe('Fuse number must be an integer, 7.5 was not.')
145
+ }
146
+ })
43
147
  })
44
148
  })
@@ -1,23 +1,16 @@
1
1
  import { ENSArgs } from '..'
2
- import { FuseOptions } from '../@types/FuseOptions'
3
- import generateFuseInput from '../utils/generateFuseInput'
2
+ import { FuseProps, validateFuses } from '../utils/fuses'
4
3
  import { namehash } from '../utils/normalise'
5
4
 
6
5
  export default async function (
7
- { contracts, provider }: ENSArgs<'contracts' | 'provider'>,
6
+ { contracts, signer }: ENSArgs<'contracts' | 'signer'>,
8
7
  name: string,
9
- fusesToBurn: FuseOptions,
8
+ props: FuseProps,
10
9
  ) {
11
- const signer = provider?.getSigner()
10
+ const encodedFuses = validateFuses(props)
12
11
 
13
- if (!signer) {
14
- throw new Error('No signer found')
15
- }
16
-
17
- const nameWrapper = (await contracts?.getNameWrapper()!).connect(signer)
12
+ const nameWrapper = (await contracts!.getNameWrapper()!).connect(signer)
18
13
  const hash = namehash(name)
19
14
 
20
- const encodedFuses = generateFuseInput(fusesToBurn)
21
-
22
- return nameWrapper.burnFuses(hash, encodedFuses)
15
+ return nameWrapper.populateTransaction.setFuses(hash, encodedFuses)
23
16
  }
@@ -0,0 +1,61 @@
1
+ import { ethers } from 'ethers'
2
+ import { ENS } from '..'
3
+ import setup from '../tests/setup'
4
+ import { randomSecret } from '../utils/registerHelpers'
5
+
6
+ let ensInstance: ENS
7
+ let revert: Awaited<ReturnType<typeof setup>>['revert']
8
+ let provider: ethers.providers.JsonRpcProvider
9
+ let accounts: string[]
10
+
11
+ beforeAll(async () => {
12
+ ;({ ensInstance, revert, provider } = await setup())
13
+ accounts = await provider.listAccounts()
14
+ })
15
+
16
+ afterAll(async () => {
17
+ await revert()
18
+ })
19
+
20
+ describe('commitName', () => {
21
+ beforeEach(async () => {
22
+ await revert()
23
+ })
24
+ it('should return a populated commit transaction with extra data and succeed', async () => {
25
+ const { customData, ...popTx } =
26
+ await ensInstance.commitName.populateTransaction('commitment.eth', {
27
+ duration: 31536000,
28
+ owner: accounts[1],
29
+ addressOrIndex: accounts[1],
30
+ })
31
+ expect(popTx).toBeTruthy()
32
+ expect(customData).toHaveProperty('secret')
33
+ expect(customData).toHaveProperty('commitment')
34
+ expect(customData).toHaveProperty('wrapperExpiry')
35
+
36
+ const tx = await provider.getSigner().sendTransaction(popTx)
37
+ await tx.wait()
38
+
39
+ const controller = await ensInstance.contracts!.getEthRegistrarController()!
40
+ const commitment = await controller.commitments(customData!.commitment)
41
+ expect(commitment).toBeTruthy()
42
+ })
43
+ it('should return a customised commmit transaction and succeed', async () => {
44
+ const secret = randomSecret()
45
+ const tx = await ensInstance.commitName('commitment.eth', {
46
+ duration: 31536000,
47
+ owner: accounts[1],
48
+ addressOrIndex: accounts[1],
49
+ secret,
50
+ wrapperExpiry: 100000,
51
+ })
52
+ await tx.wait()
53
+ expect(tx.customData).toBeTruthy()
54
+ expect(tx.customData!.wrapperExpiry).toBe(100000)
55
+ expect(tx.customData!.secret).toBe(secret)
56
+
57
+ const controller = await ensInstance.contracts!.getEthRegistrarController()!
58
+ const commitment = await controller.commitments(tx.customData!.commitment)
59
+ expect(commitment).toBeTruthy()
60
+ })
61
+ })
@@ -0,0 +1,39 @@
1
+ import { ENSArgs } from '..'
2
+ import { CommitmentParams, makeCommitment } from '../utils/registerHelpers'
3
+ import { wrappedLabelLengthCheck } from '../utils/wrapper'
4
+
5
+ type Params = Omit<CommitmentParams, 'resolver' | 'name'> & {
6
+ resolverAddress?: string
7
+ }
8
+
9
+ export default async function (
10
+ { contracts }: ENSArgs<'contracts'>,
11
+ name: string,
12
+ { resolverAddress, ...params }: Params,
13
+ ) {
14
+ const labels = name.split('.')
15
+ if (labels.length !== 2 || labels[1] !== 'eth')
16
+ throw new Error('Currently only .eth TLD registrations are supported')
17
+
18
+ wrappedLabelLengthCheck(labels[0])
19
+
20
+ const controller = await contracts!.getEthRegistrarController()
21
+ const resolver = await contracts!.getPublicResolver(
22
+ undefined,
23
+ resolverAddress,
24
+ )
25
+ const { secret, commitment, wrapperExpiry } = makeCommitment({
26
+ name,
27
+ resolver,
28
+ ...params,
29
+ })
30
+
31
+ return {
32
+ ...(await controller.populateTransaction.commit(commitment)),
33
+ customData: {
34
+ secret,
35
+ commitment,
36
+ wrapperExpiry,
37
+ },
38
+ }
39
+ }
@@ -1,16 +1,15 @@
1
1
  import { ethers } from 'ethers'
2
2
  import { ENS } from '..'
3
- import { namehash } from '../utils/normalise'
4
3
  import setup from '../tests/setup'
4
+ import { namehash } from '../utils/normalise'
5
5
 
6
- let ENSInstance: ENS
6
+ let ensInstance: ENS
7
7
  let revert: Awaited<ReturnType<typeof setup>>['revert']
8
- let createSnapshot: Awaited<ReturnType<typeof setup>>['createSnapshot']
9
8
  let provider: ethers.providers.JsonRpcProvider
10
9
  let accounts: string[]
11
10
 
12
11
  beforeAll(async () => {
13
- ;({ ENSInstance, revert, createSnapshot, provider } = await setup())
12
+ ;({ ensInstance, revert, provider } = await setup())
14
13
  accounts = await provider.listAccounts()
15
14
  })
16
15
 
@@ -23,36 +22,29 @@ describe('createSubname', () => {
23
22
  await revert()
24
23
  })
25
24
  it('should allow creating a subname on the registry', async () => {
26
- const tx = await ENSInstance.createSubname({
25
+ const tx = await ensInstance.createSubname('test.test123.eth', {
27
26
  contract: 'registry',
28
- name: 'test.parthtejpal.eth',
29
27
  owner: accounts[0],
30
- options: { addressOrIndex: 0 },
28
+ addressOrIndex: 1,
31
29
  })
32
30
  expect(tx).toBeTruthy()
33
31
  await tx.wait()
34
32
 
35
- const registry = await ENSInstance.contracts!.getRegistry()!
36
- const result = await registry.owner(namehash('test.parthtejpal.eth'))
33
+ const registry = await ensInstance.contracts!.getRegistry()!
34
+ const result = await registry.owner(namehash('test.test123.eth'))
37
35
  expect(result).toBe(accounts[0])
38
36
  })
39
37
  it('should allow creating a subname on the namewrapper', async () => {
40
- const wrapNameTx = await ENSInstance.wrapName(
41
- 'parthtejpal.eth',
42
- accounts[0],
43
- )
44
- await wrapNameTx.wait()
45
- const tx = await ENSInstance.createSubname({
38
+ const tx = await ensInstance.createSubname('test.wrapped.eth', {
46
39
  contract: 'nameWrapper',
47
- name: 'test.parthtejpal.eth',
48
40
  owner: accounts[0],
49
- options: { addressOrIndex: 0 },
41
+ addressOrIndex: 1,
50
42
  })
51
43
  expect(tx).toBeTruthy()
52
44
  await tx.wait()
53
45
 
54
- const nameWrapper = await ENSInstance.contracts!.getNameWrapper()!
55
- const result = await nameWrapper.ownerOf(namehash('test.parthtejpal.eth'))
46
+ const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
47
+ const result = await nameWrapper.ownerOf(namehash('test.wrapped.eth'))
56
48
  expect(result).toBe(accounts[0])
57
49
  })
58
50
  })
@@ -1,34 +1,34 @@
1
- import { ethers } from 'ethers'
1
+ import { BigNumber } from '@ethersproject/bignumber/lib/bignumber'
2
+ import { keccak256 as solidityKeccak256 } from '@ethersproject/solidity'
2
3
  import { ENSArgs } from '..'
3
- import { FuseOptions } from '../@types/FuseOptions'
4
+ import { FuseOptions } from '../utils/fuses'
4
5
  import generateFuseInput from '../utils/generateFuseInput'
5
6
  import { namehash } from '../utils/normalise'
7
+ import { Expiry, makeExpiry, wrappedLabelLengthCheck } from '../utils/wrapper'
6
8
 
7
9
  type BaseArgs = {
8
- name: string
9
10
  owner: string
10
11
  resolverAddress?: string
11
12
  contract: 'registry' | 'nameWrapper'
12
- options?: { addressOrIndex?: string | number }
13
13
  }
14
14
 
15
15
  type NameWrapperArgs = {
16
16
  contract: 'nameWrapper'
17
17
  fuses?: FuseOptions
18
+ expiry?: Expiry
18
19
  } & BaseArgs
19
20
 
20
21
  type Args = BaseArgs | NameWrapperArgs
21
22
 
22
23
  export default async function (
23
- { contracts, provider }: ENSArgs<'contracts' | 'provider'>,
24
- { name, owner, resolverAddress, contract, options, ...wrapperArgs }: Args,
24
+ {
25
+ contracts,
26
+ signer,
27
+ getExpiry,
28
+ }: ENSArgs<'contracts' | 'signer' | 'getExpiry'>,
29
+ name: string,
30
+ { owner, resolverAddress, contract, ...wrapperArgs }: Args,
25
31
  ) {
26
- const signer = provider?.getSigner(options?.addressOrIndex)
27
-
28
- if (!signer) {
29
- throw new Error('No signer found')
30
- }
31
-
32
32
  const labels = name.split('.')
33
33
 
34
34
  if (labels.length === 1) {
@@ -44,14 +44,14 @@ export default async function (
44
44
  }
45
45
 
46
46
  const label = labels.shift() as string
47
- const labelhash = ethers.utils.solidityKeccak256(['string'], [label])
47
+ const labelhash = solidityKeccak256(['string'], [label])
48
48
  const parentNodehash = namehash(labels.join('.'))
49
49
 
50
50
  switch (contract) {
51
51
  case 'registry': {
52
- const registry = (await contracts?.getRegistry()!).connect(signer)
52
+ const registry = (await contracts!.getRegistry()!).connect(signer)
53
53
 
54
- return registry.setSubnodeRecord(
54
+ return registry.populateTransaction.setSubnodeRecord(
55
55
  parentNodehash,
56
56
  labelhash,
57
57
  owner,
@@ -60,20 +60,27 @@ export default async function (
60
60
  )
61
61
  }
62
62
  case 'nameWrapper': {
63
- const nameWrapper = (await contracts?.getNameWrapper()!).connect(signer)
63
+ wrappedLabelLengthCheck(label)
64
+ const nameWrapper = (await contracts!.getNameWrapper()!).connect(signer)
65
+ const expiry: BigNumber = await makeExpiry(
66
+ { getExpiry },
67
+ name,
68
+ 'expiry' in wrapperArgs ? wrapperArgs.expiry : undefined,
69
+ )
64
70
 
65
71
  const generatedFuses =
66
72
  'fuses' in wrapperArgs && wrapperArgs.fuses
67
73
  ? generateFuseInput(wrapperArgs.fuses)
68
74
  : '0'
69
75
 
70
- return nameWrapper.setSubnodeRecord(
76
+ return nameWrapper.populateTransaction.setSubnodeRecord(
71
77
  parentNodehash,
72
78
  label,
73
79
  owner,
74
80
  resolverAddress,
75
81
  0,
76
82
  generatedFuses,
83
+ expiry,
77
84
  )
78
85
  }
79
86
  default: {
@@ -1,16 +1,12 @@
1
- import { ethers } from 'ethers'
2
1
  import { ENS } from '..'
3
- import { namehash } from '../utils/normalise'
4
2
  import setup from '../tests/setup'
3
+ import { namehash } from '../utils/normalise'
5
4
 
6
- let ENSInstance: ENS
5
+ let ensInstance: ENS
7
6
  let revert: Awaited<ReturnType<typeof setup>>['revert']
8
- let provider: ethers.providers.JsonRpcProvider
9
- let accounts: string[]
10
7
 
11
8
  beforeAll(async () => {
12
- ;({ ENSInstance, revert, provider } = await setup())
13
- accounts = await provider.listAccounts()
9
+ ;({ ensInstance, revert } = await setup())
14
10
  })
15
11
 
16
12
  afterAll(async () => {
@@ -22,50 +18,52 @@ describe('deleteSubname', () => {
22
18
  await revert()
23
19
  })
24
20
  it('should allow deleting a subname on the registry', async () => {
25
- const createSubnameTx = await ENSInstance.createSubname({
21
+ const tx = await ensInstance.deleteSubname('test.with-subnames.eth', {
26
22
  contract: 'registry',
27
- name: 'test.parthtejpal.eth',
28
- owner: accounts[0],
29
- options: { addressOrIndex: 0 },
23
+ addressOrIndex: 1,
30
24
  })
31
- await createSubnameTx.wait()
32
-
33
- const tx = await ENSInstance.deleteSubname(
34
- 'test.parthtejpal.eth',
35
- 'registry',
36
- { addressOrIndex: 0 },
37
- )
38
25
  expect(tx).toBeTruthy()
39
26
  await tx.wait()
40
27
 
41
- const registry = await ENSInstance.contracts!.getRegistry()!
42
- const result = await registry.owner(namehash('test.parthtejpal.eth'))
28
+ const registry = await ensInstance.contracts!.getRegistry()!
29
+ const result = await registry.owner(namehash('test.with-subnames.eth'))
43
30
  expect(result).toBe('0x0000000000000000000000000000000000000000')
44
31
  })
32
+
45
33
  it('should allow deleting a subname on the nameWrapper', async () => {
46
- const wrapNameTx = await ENSInstance.wrapName(
47
- 'parthtejpal.eth',
48
- accounts[0],
49
- )
50
- await wrapNameTx.wait()
51
- const createSubnameTx = await ENSInstance.createSubname({
52
- contract: 'nameWrapper',
53
- name: 'test.parthtejpal.eth',
54
- owner: accounts[0],
55
- options: { addressOrIndex: 0 },
56
- })
57
- await createSubnameTx.wait()
34
+ const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
58
35
 
59
- const tx = await ENSInstance.deleteSubname(
60
- 'test.parthtejpal.eth',
61
- 'nameWrapper',
62
- { addressOrIndex: 0 },
36
+ const tx = await ensInstance.deleteSubname(
37
+ 'test.wrapped-with-subnames.eth',
38
+ {
39
+ contract: 'nameWrapper',
40
+ addressOrIndex: 1,
41
+ },
63
42
  )
64
43
  expect(tx).toBeTruthy()
65
44
  await tx.wait()
66
45
 
67
- const nameWrapper = await ENSInstance.contracts!.getNameWrapper()!
68
- const result = await nameWrapper.ownerOf(namehash('test.parthtejpal.eth'))
46
+ const result = await nameWrapper.ownerOf(
47
+ namehash('test.wrapped-with-subnames.eth'),
48
+ )
69
49
  expect(result).toBe('0x0000000000000000000000000000000000000000')
70
50
  })
51
+
52
+ it('should not allow deleting 1LD', async () => {
53
+ await expect(
54
+ ensInstance.deleteSubname('eth', {
55
+ contract: 'nameWrapper',
56
+ addressOrIndex: 1,
57
+ }),
58
+ ).rejects.toThrow()
59
+ })
60
+
61
+ it('should not allow deleting 2LD', async () => {
62
+ await expect(
63
+ ensInstance.deleteSubname('test123.eth', {
64
+ contract: 'registry',
65
+ addressOrIndex: 1,
66
+ }),
67
+ ).rejects.toThrow()
68
+ })
71
69
  })