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

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