@ensdomains/ensjs 3.0.0-alpha.2 → 3.0.0-alpha.21

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 (683) hide show
  1. package/dist/cjs/GqlManager.js +105 -37
  2. package/dist/cjs/contracts/baseRegistrar.js +24 -3
  3. package/dist/cjs/contracts/bulkRenewal.js +25 -0
  4. package/dist/cjs/contracts/ethRegistrarController.js +24 -3
  5. package/dist/cjs/contracts/getContractAddress.js +62 -43
  6. package/dist/cjs/contracts/index.js +81 -32
  7. package/dist/cjs/contracts/multicall.js +24 -21
  8. package/dist/cjs/contracts/nameWrapper.js +24 -3
  9. package/dist/cjs/contracts/publicResolver.js +24 -3
  10. package/dist/cjs/contracts/registry.js +24 -3
  11. package/dist/cjs/contracts/reverseRegistrar.js +24 -3
  12. package/dist/cjs/contracts/types.js +15 -1
  13. package/dist/cjs/contracts/universalResolver.js +24 -3
  14. package/dist/cjs/functions/batch.js +42 -15
  15. package/dist/cjs/functions/batchWrappers.js +97 -67
  16. package/dist/cjs/functions/burnFuses.js +64 -14
  17. package/dist/cjs/functions/commitName.js +47 -0
  18. package/dist/cjs/functions/createSubname.js +79 -38
  19. package/dist/cjs/functions/deleteSubname.js +62 -4
  20. package/dist/cjs/functions/getDNSOwner.js +82 -0
  21. package/dist/cjs/functions/getExpiry.js +110 -41
  22. package/dist/cjs/functions/getFuses.js +63 -56
  23. package/dist/cjs/functions/getHistory.js +109 -173
  24. package/dist/cjs/functions/getName.js +51 -28
  25. package/dist/cjs/functions/getNames.js +118 -104
  26. package/dist/cjs/functions/getOwner.js +147 -125
  27. package/dist/cjs/functions/getPrice.js +118 -43
  28. package/dist/cjs/functions/getProfile.js +421 -265
  29. package/dist/cjs/functions/getRecords.js +29 -9
  30. package/dist/cjs/functions/getResolver.js +41 -19
  31. package/dist/cjs/functions/getSpecificRecord.js +188 -261
  32. package/dist/cjs/functions/getSubnames.js +74 -118
  33. package/dist/cjs/functions/initialGetters.js +46 -37
  34. package/dist/cjs/functions/registerName.js +42 -0
  35. package/dist/cjs/functions/renewNames.js +42 -0
  36. package/dist/cjs/functions/setName.js +40 -15
  37. package/dist/cjs/functions/setRecord.js +55 -0
  38. package/dist/cjs/functions/setRecords.js +49 -20
  39. package/dist/cjs/functions/setResolver.js +43 -23
  40. package/dist/cjs/functions/transferName.js +60 -30
  41. package/dist/cjs/functions/transferSubname.js +60 -24
  42. package/dist/cjs/functions/unwrapName.js +49 -25
  43. package/dist/cjs/functions/wrapName.js +121 -57
  44. package/dist/cjs/generated/BaseRegistrarImplementation.js +15 -1
  45. package/dist/cjs/generated/BulkRenewal.js +16 -0
  46. package/dist/cjs/generated/DNSRegistrar.js +15 -1
  47. package/dist/cjs/generated/DNSSECImpl.js +15 -1
  48. package/dist/cjs/generated/DefaultReverseResolver.js +15 -1
  49. package/dist/cjs/generated/ENSRegistry.js +15 -1
  50. package/dist/cjs/generated/ETHRegistrarController.js +15 -1
  51. package/dist/cjs/generated/Multicall.js +15 -1
  52. package/dist/cjs/generated/NameWrapper.js +15 -1
  53. package/dist/cjs/generated/P256SHA256Algorithm.js +15 -1
  54. package/dist/cjs/generated/PublicResolver.js +15 -1
  55. package/dist/cjs/generated/RSASHA1Algorithm.js +15 -1
  56. package/dist/cjs/generated/RSASHA256Algorithm.js +15 -1
  57. package/dist/cjs/generated/ReverseRegistrar.js +15 -1
  58. package/dist/cjs/generated/Root.js +15 -1
  59. package/dist/cjs/generated/SHA1Digest.js +15 -1
  60. package/dist/cjs/generated/SHA1NSEC3Digest.js +15 -1
  61. package/dist/cjs/generated/SHA256Digest.js +15 -1
  62. package/dist/cjs/generated/StaticMetadataService.js +15 -1
  63. package/dist/cjs/generated/TLDPublicSuffixList.js +15 -1
  64. package/dist/cjs/generated/UniversalResolver.js +15 -1
  65. package/dist/cjs/generated/common.js +15 -1
  66. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +784 -764
  67. package/dist/cjs/generated/factories/BulkRenewal__factory.js +120 -0
  68. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +281 -288
  69. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +485 -492
  70. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +102 -82
  71. package/dist/cjs/generated/factories/ENSRegistry__factory.js +447 -431
  72. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +534 -504
  73. package/dist/cjs/generated/factories/Multicall__factory.js +457 -441
  74. package/dist/cjs/generated/factories/NameWrapper__factory.js +1341 -1194
  75. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +60 -67
  76. package/dist/cjs/generated/factories/PublicResolver__factory.js +901 -885
  77. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +60 -67
  78. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +60 -67
  79. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +349 -333
  80. package/dist/cjs/generated/factories/Root__factory.js +253 -237
  81. package/dist/cjs/generated/factories/SHA1Digest__factory.js +55 -62
  82. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +60 -67
  83. package/dist/cjs/generated/factories/SHA256Digest__factory.js +55 -62
  84. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +64 -44
  85. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +50 -57
  86. package/dist/cjs/generated/factories/UniversalResolver__factory.js +215 -199
  87. package/dist/cjs/generated/factories/index.js +63 -17
  88. package/dist/cjs/generated/index.js +70 -37
  89. package/dist/cjs/index.js +319 -214
  90. package/dist/cjs/utils/contentHash.js +145 -142
  91. package/dist/cjs/utils/createReverseNode.js +23 -2
  92. package/dist/cjs/utils/format.js +27 -8
  93. package/dist/cjs/utils/fuses.js +64 -13
  94. package/dist/cjs/utils/generateFuseInput.js +37 -16
  95. package/dist/cjs/utils/hexEncodedName.js +29 -7
  96. package/dist/cjs/utils/labels.js +99 -83
  97. package/dist/cjs/utils/makeHashIndexes.js +27 -6
  98. package/dist/cjs/utils/normalise.js +49 -22
  99. package/dist/cjs/utils/recordHelpers.js +84 -39
  100. package/dist/cjs/utils/registerHelpers.js +114 -46
  101. package/dist/cjs/utils/singleCall.js +23 -6
  102. package/dist/cjs/utils/validation.js +76 -63
  103. package/dist/cjs/utils/wrapperExpiry.js +44 -0
  104. package/dist/cjs/utils/writeTx.js +25 -0
  105. package/dist/esm/GqlManager.mjs +85 -0
  106. package/dist/esm/contracts/baseRegistrar.mjs +6 -0
  107. package/dist/esm/contracts/bulkRenewal.mjs +6 -0
  108. package/dist/esm/contracts/ethRegistrarController.mjs +6 -0
  109. package/dist/esm/contracts/getContractAddress.mjs +46 -0
  110. package/dist/esm/contracts/index.mjs +61 -0
  111. package/dist/esm/contracts/multicall.mjs +6 -0
  112. package/dist/esm/contracts/nameWrapper.mjs +6 -0
  113. package/dist/esm/contracts/publicResolver.mjs +6 -0
  114. package/dist/esm/contracts/registry.mjs +6 -0
  115. package/dist/esm/contracts/reverseRegistrar.mjs +6 -0
  116. package/dist/esm/contracts/types.mjs +0 -0
  117. package/dist/esm/contracts/universalResolver.mjs +6 -0
  118. package/dist/esm/functions/batch.mjs +29 -0
  119. package/dist/esm/functions/batchWrappers.mjs +82 -0
  120. package/dist/esm/functions/burnFuses.mjs +52 -0
  121. package/dist/esm/functions/commitName.mjs +28 -0
  122. package/dist/esm/functions/createSubname.mjs +60 -0
  123. package/dist/esm/functions/deleteSubname.mjs +45 -0
  124. package/dist/esm/functions/getDNSOwner.mjs +57 -0
  125. package/dist/esm/functions/getExpiry.mjs +95 -0
  126. package/dist/esm/functions/getFuses.mjs +50 -0
  127. package/dist/esm/functions/getHistory.mjs +196 -0
  128. package/dist/esm/functions/getName.mjs +38 -0
  129. package/dist/esm/functions/getNames.mjs +217 -0
  130. package/dist/esm/functions/getOwner.mjs +143 -0
  131. package/dist/esm/functions/getPrice.mjs +106 -0
  132. package/dist/esm/functions/getProfile.mjs +439 -0
  133. package/dist/esm/functions/getRecords.mjs +12 -0
  134. package/dist/esm/functions/getResolver.mjs +27 -0
  135. package/dist/esm/functions/getSpecificRecord.mjs +176 -0
  136. package/dist/esm/functions/getSubnames.mjs +91 -0
  137. package/dist/esm/functions/initialGetters.mjs +23 -0
  138. package/dist/esm/functions/registerName.mjs +25 -0
  139. package/dist/esm/functions/renewNames.mjs +23 -0
  140. package/dist/esm/functions/setName.mjs +23 -0
  141. package/dist/esm/functions/setRecord.mjs +36 -0
  142. package/dist/esm/functions/setRecords.mjs +32 -0
  143. package/dist/esm/functions/setResolver.mjs +29 -0
  144. package/dist/esm/functions/transferName.mjs +45 -0
  145. package/dist/esm/functions/transferSubname.mjs +45 -0
  146. package/dist/esm/functions/unwrapName.mjs +33 -0
  147. package/dist/esm/functions/wrapName.mjs +103 -0
  148. package/dist/esm/generated/BaseRegistrarImplementation.mjs +0 -0
  149. package/dist/esm/generated/BulkRenewal.mjs +0 -0
  150. package/dist/esm/generated/DNSRegistrar.mjs +0 -0
  151. package/dist/esm/generated/DNSSECImpl.mjs +0 -0
  152. package/dist/esm/generated/DefaultReverseResolver.mjs +0 -0
  153. package/dist/esm/generated/ENSRegistry.mjs +0 -0
  154. package/dist/esm/generated/ETHRegistrarController.mjs +0 -0
  155. package/dist/esm/generated/Multicall.mjs +0 -0
  156. package/dist/esm/generated/NameWrapper.mjs +0 -0
  157. package/dist/esm/generated/P256SHA256Algorithm.mjs +0 -0
  158. package/dist/esm/generated/PublicResolver.mjs +0 -0
  159. package/dist/esm/generated/RSASHA1Algorithm.mjs +0 -0
  160. package/dist/esm/generated/RSASHA256Algorithm.mjs +0 -0
  161. package/dist/esm/generated/ReverseRegistrar.mjs +0 -0
  162. package/dist/esm/generated/Root.mjs +0 -0
  163. package/dist/esm/generated/SHA1Digest.mjs +0 -0
  164. package/dist/esm/generated/SHA1NSEC3Digest.mjs +0 -0
  165. package/dist/esm/generated/SHA256Digest.mjs +0 -0
  166. package/dist/esm/generated/StaticMetadataService.mjs +0 -0
  167. package/dist/esm/generated/TLDPublicSuffixList.mjs +0 -0
  168. package/dist/esm/generated/UniversalResolver.mjs +0 -0
  169. package/dist/esm/generated/common.mjs +0 -0
  170. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +778 -0
  171. package/dist/esm/generated/factories/BulkRenewal__factory.mjs +108 -0
  172. package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +277 -0
  173. package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +482 -0
  174. package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +95 -0
  175. package/dist/esm/generated/factories/ENSRegistry__factory.mjs +443 -0
  176. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +529 -0
  177. package/dist/esm/generated/factories/Multicall__factory.mjs +461 -0
  178. package/dist/esm/generated/factories/NameWrapper__factory.mjs +1335 -0
  179. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +52 -0
  180. package/dist/esm/generated/factories/PublicResolver__factory.mjs +896 -0
  181. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +52 -0
  182. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +52 -0
  183. package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +344 -0
  184. package/dist/esm/generated/factories/Root__factory.mjs +247 -0
  185. package/dist/esm/generated/factories/SHA1Digest__factory.mjs +47 -0
  186. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +52 -0
  187. package/dist/esm/generated/factories/SHA256Digest__factory.mjs +47 -0
  188. package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +57 -0
  189. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +42 -0
  190. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +208 -0
  191. package/dist/esm/generated/factories/index.mjs +45 -0
  192. package/dist/esm/generated/index.mjs +47 -0
  193. package/dist/esm/index.mjs +304 -0
  194. package/dist/esm/utils/contentHash.mjs +142 -0
  195. package/dist/esm/utils/createReverseNode.mjs +5 -0
  196. package/dist/esm/utils/format.mjs +9 -0
  197. package/dist/esm/utils/fuses.mjs +56 -0
  198. package/dist/esm/utils/generateFuseInput.mjs +15 -0
  199. package/dist/esm/utils/hexEncodedName.mjs +6 -0
  200. package/dist/esm/utils/labels.mjs +109 -0
  201. package/dist/esm/utils/makeHashIndexes.mjs +10 -0
  202. package/dist/esm/utils/normalise.mjs +30 -0
  203. package/dist/esm/utils/recordHelpers.mjs +70 -0
  204. package/dist/esm/utils/registerHelpers.mjs +95 -0
  205. package/dist/esm/utils/singleCall.mjs +5 -0
  206. package/dist/esm/utils/validation.mjs +67 -0
  207. package/dist/esm/utils/wrapperExpiry.mjs +25 -0
  208. package/dist/esm/utils/writeTx.mjs +6 -0
  209. package/dist/types/GqlManager.d.ts +11 -0
  210. package/dist/{cjs → types}/contracts/baseRegistrar.d.ts +0 -0
  211. package/dist/{cjs/contracts/ethRegistrarController.d.ts → types/contracts/bulkRenewal.d.ts} +1 -1
  212. package/dist/{esm → types}/contracts/ethRegistrarController.d.ts +1 -1
  213. package/dist/{cjs → types}/contracts/getContractAddress.d.ts +0 -0
  214. package/dist/types/contracts/index.d.ts +17 -0
  215. package/dist/{cjs → types}/contracts/multicall.d.ts +0 -0
  216. package/dist/{esm → types}/contracts/nameWrapper.d.ts +1 -1
  217. package/dist/{esm → types}/contracts/publicResolver.d.ts +1 -1
  218. package/dist/{cjs → types}/contracts/registry.d.ts +0 -0
  219. package/dist/{cjs → types}/contracts/reverseRegistrar.d.ts +1 -1
  220. package/dist/{cjs → types}/contracts/types.d.ts +1 -1
  221. package/dist/{cjs → types}/contracts/universalResolver.d.ts +1 -1
  222. package/dist/{cjs → types}/functions/batch.d.ts +0 -0
  223. package/dist/{esm → types}/functions/batchWrappers.d.ts +2 -2
  224. package/dist/types/functions/burnFuses.d.ts +13 -0
  225. package/dist/types/functions/commitName.d.ts +26 -0
  226. package/dist/{esm → types}/functions/createSubname.d.ts +3 -5
  227. package/dist/types/functions/deleteSubname.d.ts +7 -0
  228. package/dist/types/functions/getDNSOwner.d.ts +7 -0
  229. package/dist/types/functions/getExpiry.d.ts +19 -0
  230. package/dist/{cjs → types}/functions/getFuses.d.ts +5 -6
  231. package/dist/types/functions/getHistory.d.ts +28 -0
  232. package/dist/{cjs → types}/functions/getName.d.ts +2 -2
  233. package/dist/{cjs → types}/functions/getNames.d.ts +0 -0
  234. package/dist/{cjs → types}/functions/getOwner.d.ts +0 -0
  235. package/dist/{esm → types}/functions/getPrice.d.ts +2 -2
  236. package/dist/{esm → types}/functions/getProfile.d.ts +4 -1
  237. package/dist/{esm → types}/functions/getRecords.d.ts +1 -0
  238. package/dist/{cjs → types}/functions/getResolver.d.ts +0 -0
  239. package/dist/{esm → types}/functions/getSpecificRecord.d.ts +4 -4
  240. package/dist/{esm → types}/functions/getSubnames.d.ts +2 -2
  241. package/dist/{cjs → types}/functions/initialGetters.d.ts +0 -0
  242. package/dist/types/functions/registerName.d.ts +11 -0
  243. package/dist/types/functions/renewNames.d.ts +6 -0
  244. package/dist/types/functions/setName.d.ts +5 -0
  245. package/dist/types/functions/setRecord.d.ts +18 -0
  246. package/dist/types/functions/setRecords.d.ts +6 -0
  247. package/dist/types/functions/setResolver.d.ts +5 -0
  248. package/dist/types/functions/transferName.d.ts +6 -0
  249. package/dist/types/functions/transferSubname.d.ts +15 -0
  250. package/dist/types/functions/unwrapName.d.ts +5 -0
  251. package/dist/types/functions/wrapName.d.ts +10 -0
  252. package/dist/types/generated/BaseRegistrarImplementation.d.ts +508 -0
  253. package/dist/types/generated/BulkRenewal.d.ts +76 -0
  254. package/dist/{cjs → types}/generated/DNSRegistrar.d.ts +68 -64
  255. package/dist/{esm → types}/generated/DNSSECImpl.d.ts +111 -111
  256. package/dist/{cjs → types}/generated/DefaultReverseResolver.d.ts +17 -17
  257. package/dist/types/generated/ENSRegistry.d.ts +274 -0
  258. package/dist/{esm → types}/generated/ETHRegistrarController.d.ts +111 -109
  259. package/dist/{esm → types}/generated/Multicall.d.ts +60 -60
  260. package/dist/types/generated/NameWrapper.d.ts +814 -0
  261. package/dist/{cjs → types}/generated/P256SHA256Algorithm.d.ts +11 -7
  262. package/dist/types/generated/PublicResolver.d.ts +566 -0
  263. package/dist/{esm → types}/generated/RSASHA1Algorithm.d.ts +11 -7
  264. package/dist/{cjs → types}/generated/RSASHA256Algorithm.d.ts +11 -7
  265. package/dist/{esm → types}/generated/ReverseRegistrar.d.ts +112 -103
  266. package/dist/types/generated/Root.d.ts +173 -0
  267. package/dist/{cjs → types}/generated/SHA1Digest.d.ts +7 -7
  268. package/dist/{esm → types}/generated/SHA1NSEC3Digest.d.ts +11 -7
  269. package/dist/{cjs → types}/generated/SHA256Digest.d.ts +7 -7
  270. package/dist/{cjs → types}/generated/StaticMetadataService.d.ts +7 -7
  271. package/dist/{esm → types}/generated/TLDPublicSuffixList.d.ts +7 -7
  272. package/dist/types/generated/UniversalResolver.d.ts +82 -0
  273. package/dist/{esm → types}/generated/common.d.ts +1 -0
  274. package/dist/{cjs → types}/generated/factories/BaseRegistrarImplementation__factory.d.ts +0 -0
  275. package/dist/{esm/generated/factories/StaticMetadataService__factory.d.ts → types/generated/factories/BulkRenewal__factory.d.ts} +4 -4
  276. package/dist/{esm/generated/factories/ETHRegistrarController__factory.d.ts → types/generated/factories/DNSRegistrar__factory.d.ts} +15 -14
  277. package/dist/{esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts → types/generated/factories/DNSSECImpl__factory.d.ts} +9 -9
  278. package/dist/{cjs → types}/generated/factories/DefaultReverseResolver__factory.d.ts +0 -0
  279. package/dist/{cjs → types}/generated/factories/ENSRegistry__factory.d.ts +0 -0
  280. package/dist/{cjs → types}/generated/factories/ETHRegistrarController__factory.d.ts +0 -0
  281. package/dist/{cjs → types}/generated/factories/Multicall__factory.d.ts +0 -0
  282. package/dist/{cjs → types}/generated/factories/NameWrapper__factory.d.ts +0 -0
  283. package/dist/types/generated/factories/P256SHA256Algorithm__factory.d.ts +22 -0
  284. package/dist/{cjs → types}/generated/factories/PublicResolver__factory.d.ts +0 -0
  285. package/dist/types/generated/factories/RSASHA1Algorithm__factory.d.ts +22 -0
  286. package/dist/types/generated/factories/RSASHA256Algorithm__factory.d.ts +22 -0
  287. package/dist/{cjs → types}/generated/factories/ReverseRegistrar__factory.d.ts +0 -0
  288. package/dist/{cjs → types}/generated/factories/Root__factory.d.ts +0 -0
  289. package/dist/types/generated/factories/SHA1Digest__factory.d.ts +22 -0
  290. package/dist/types/generated/factories/SHA1NSEC3Digest__factory.d.ts +22 -0
  291. package/dist/types/generated/factories/SHA256Digest__factory.d.ts +22 -0
  292. package/dist/{cjs → types}/generated/factories/StaticMetadataService__factory.d.ts +0 -0
  293. package/dist/types/generated/factories/TLDPublicSuffixList__factory.d.ts +22 -0
  294. package/dist/{cjs → types}/generated/factories/UniversalResolver__factory.d.ts +0 -0
  295. package/dist/types/generated/factories/index.d.ts +21 -0
  296. package/dist/types/generated/index.d.ts +43 -0
  297. package/dist/{esm → types}/index.d.ts +94 -109
  298. package/dist/{cjs → types}/utils/contentHash.d.ts +0 -0
  299. package/dist/{cjs → types}/utils/createReverseNode.d.ts +0 -0
  300. package/dist/{cjs → types}/utils/format.d.ts +0 -0
  301. package/dist/types/utils/fuses.d.ts +43 -0
  302. package/dist/{cjs → types}/utils/generateFuseInput.d.ts +0 -0
  303. package/dist/{cjs → types}/utils/hexEncodedName.d.ts +0 -0
  304. package/dist/{cjs → types}/utils/labels.d.ts +0 -0
  305. package/dist/{cjs → types}/utils/makeHashIndexes.d.ts +0 -0
  306. package/dist/types/utils/normalise.d.ts +2 -0
  307. package/dist/{esm → types}/utils/recordHelpers.d.ts +3 -0
  308. package/dist/types/utils/registerHelpers.d.ts +54 -0
  309. package/dist/{cjs → types}/utils/singleCall.d.ts +0 -0
  310. package/dist/{cjs → types}/utils/validation.d.ts +0 -0
  311. package/dist/types/utils/wrapperExpiry.d.ts +5 -0
  312. package/dist/types/utils/writeTx.d.ts +21 -0
  313. package/package.json +71 -32
  314. package/src/@types/@ensdomains/ens-contracts.d.ts +1 -1
  315. package/src/@types/dns-packet/index.d.ts +114 -0
  316. package/src/ABIs/Multicall.json +452 -0
  317. package/src/GqlManager.test.ts +173 -0
  318. package/src/GqlManager.ts +90 -2
  319. package/src/contracts/bulkRenewal.ts +6 -0
  320. package/src/contracts/getContractAddress.ts +3 -0
  321. package/src/contracts/index.ts +15 -1
  322. package/src/contracts/multicall.ts +0 -19
  323. package/src/contracts/types.ts +1 -0
  324. package/src/functions/batch.test.ts +36 -0
  325. package/src/functions/batch.ts +3 -3
  326. package/src/functions/batchWrappers.test.ts +31 -0
  327. package/src/functions/batchWrappers.ts +2 -2
  328. package/src/functions/burnFuses.test.ts +148 -0
  329. package/src/functions/burnFuses.ts +67 -11
  330. package/src/functions/commitName.test.ts +61 -0
  331. package/src/functions/commitName.ts +36 -0
  332. package/src/{tests → functions}/createSubname.test.ts +11 -19
  333. package/src/functions/createSubname.ts +20 -15
  334. package/src/functions/deleteSubname.test.ts +49 -0
  335. package/src/functions/deleteSubname.ts +51 -13
  336. package/src/functions/getDNSOwner.test.ts +119 -0
  337. package/src/functions/getDNSOwner.ts +61 -0
  338. package/src/functions/getExpiry.test.ts +55 -0
  339. package/src/functions/getExpiry.ts +87 -9
  340. package/src/functions/getFuses.test.ts +96 -0
  341. package/src/functions/getFuses.ts +23 -44
  342. package/src/functions/getHistory.test.ts +29 -0
  343. package/src/functions/getHistory.ts +27 -141
  344. package/src/{tests → functions}/getName.test.ts +11 -11
  345. package/src/functions/getName.ts +2 -2
  346. package/src/functions/getNames.test.ts +285 -0
  347. package/src/functions/getNames.ts +25 -30
  348. package/src/functions/getOwner.test.ts +67 -0
  349. package/src/functions/getOwner.ts +16 -10
  350. package/src/functions/getPrice.test.ts +52 -0
  351. package/src/functions/getPrice.ts +62 -10
  352. package/src/{tests → functions}/getProfile.test.ts +54 -27
  353. package/src/functions/getProfile.ts +161 -96
  354. package/src/functions/getRecords.ts +2 -1
  355. package/src/functions/getResolver.test.ts +15 -0
  356. package/src/{tests → functions}/getSpecificRecord.test.ts +21 -18
  357. package/src/functions/getSpecificRecord.ts +18 -147
  358. package/src/functions/getSubnames.test.ts +675 -0
  359. package/src/functions/getSubnames.ts +43 -102
  360. package/src/{tests → functions}/makeCommitment.test.ts +6 -6
  361. package/src/{tests → functions}/normalise.test.ts +0 -0
  362. package/src/functions/registerName.test.ts +59 -0
  363. package/src/functions/registerName.ts +38 -0
  364. package/src/functions/renewNames.test.ts +64 -0
  365. package/src/functions/renewNames.ts +30 -0
  366. package/src/{tests → functions}/setName.test.ts +16 -16
  367. package/src/functions/setName.ts +15 -17
  368. package/src/functions/setRecord.test.ts +103 -0
  369. package/src/functions/setRecord.ts +59 -0
  370. package/src/{tests → functions}/setRecords.test.ts +19 -16
  371. package/src/functions/setRecords.ts +19 -13
  372. package/src/{tests → functions}/setResolver.test.ts +17 -25
  373. package/src/functions/setResolver.ts +15 -20
  374. package/src/functions/transferName.test.ts +65 -0
  375. package/src/functions/transferName.ts +17 -21
  376. package/src/functions/transferSubname.test.ts +55 -0
  377. package/src/functions/transferSubname.ts +39 -14
  378. package/src/functions/unwrapName.test.ts +53 -0
  379. package/src/functions/unwrapName.ts +23 -20
  380. package/src/functions/wrapName.test.ts +141 -0
  381. package/src/functions/wrapName.ts +71 -58
  382. package/src/generated/BaseRegistrarImplementation.ts +382 -296
  383. package/src/generated/BulkRenewal.ts +197 -0
  384. package/src/generated/DNSRegistrar.ts +103 -89
  385. package/src/generated/DNSSECImpl.ts +180 -149
  386. package/src/generated/DefaultReverseResolver.ts +37 -21
  387. package/src/generated/ENSRegistry.ts +257 -184
  388. package/src/generated/ETHRegistrarController.ts +252 -191
  389. package/src/generated/Multicall.ts +73 -57
  390. package/src/generated/NameWrapper.ts +979 -649
  391. package/src/generated/P256SHA256Algorithm.ts +21 -16
  392. package/src/generated/PublicResolver.ts +452 -362
  393. package/src/generated/RSASHA1Algorithm.ts +21 -16
  394. package/src/generated/RSASHA256Algorithm.ts +21 -16
  395. package/src/generated/ReverseRegistrar.ts +193 -141
  396. package/src/generated/Root.ts +146 -86
  397. package/src/generated/SHA1Digest.ts +12 -11
  398. package/src/generated/SHA1NSEC3Digest.ts +21 -16
  399. package/src/generated/SHA256Digest.ts +12 -11
  400. package/src/generated/StaticMetadataService.ts +22 -6
  401. package/src/generated/TLDPublicSuffixList.ts +10 -6
  402. package/src/generated/UniversalResolver.ts +44 -40
  403. package/src/generated/common.ts +2 -0
  404. package/src/generated/factories/BulkRenewal__factory.ts +108 -0
  405. package/src/generated/factories/DNSRegistrar__factory.ts +4 -56
  406. package/src/generated/factories/DNSSECImpl__factory.ts +4 -49
  407. package/src/generated/factories/ETHRegistrarController__factory.ts +14 -4
  408. package/src/generated/factories/NameWrapper__factory.ts +210 -79
  409. package/src/generated/factories/P256SHA256Algorithm__factory.ts +4 -40
  410. package/src/generated/factories/RSASHA1Algorithm__factory.ts +4 -40
  411. package/src/generated/factories/RSASHA256Algorithm__factory.ts +4 -40
  412. package/src/generated/factories/SHA1Digest__factory.ts +4 -40
  413. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +4 -40
  414. package/src/generated/factories/SHA256Digest__factory.ts +4 -40
  415. package/src/generated/factories/TLDPublicSuffixList__factory.ts +4 -40
  416. package/src/generated/factories/index.ts +15 -0
  417. package/src/generated/index.ts +31 -1
  418. package/src/index.ts +169 -63
  419. package/src/utils/contentHash.ts +24 -22
  420. package/src/utils/createReverseNode.ts +1 -1
  421. package/src/utils/fuses.ts +52 -4
  422. package/src/utils/labels.ts +6 -4
  423. package/src/utils/normalise.ts +11 -5
  424. package/src/utils/recordHelpers.ts +52 -20
  425. package/src/utils/registerHelpers.ts +112 -53
  426. package/src/utils/validation.ts +8 -9
  427. package/src/utils/wrapperExpiry.ts +29 -0
  428. package/src/utils/writeTx.ts +16 -0
  429. package/dist/cjs/GqlManager.d.ts +0 -6
  430. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  431. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
  432. package/dist/cjs/contracts/index.d.ts +0 -16
  433. package/dist/cjs/contracts/nameWrapper.d.ts +0 -3
  434. package/dist/cjs/contracts/publicResolver.d.ts +0 -3
  435. package/dist/cjs/functions/batchWrappers.d.ts +0 -29
  436. package/dist/cjs/functions/burnFuses.d.ts +0 -3
  437. package/dist/cjs/functions/createSubname.d.ts +0 -19
  438. package/dist/cjs/functions/deleteSubname.d.ts +0 -4
  439. package/dist/cjs/functions/getExpiry.d.ts +0 -12
  440. package/dist/cjs/functions/getHistory.d.ts +0 -54
  441. package/dist/cjs/functions/getPrice.d.ts +0 -13
  442. package/dist/cjs/functions/getProfile.d.ts +0 -30
  443. package/dist/cjs/functions/getRecords.d.ts +0 -32
  444. package/dist/cjs/functions/getSpecificRecord.d.ts +0 -73
  445. package/dist/cjs/functions/getSubnames.d.ts +0 -26
  446. package/dist/cjs/functions/setName.d.ts +0 -4
  447. package/dist/cjs/functions/setRecords.d.ts +0 -3
  448. package/dist/cjs/functions/setResolver.d.ts +0 -4
  449. package/dist/cjs/functions/transferName.d.ts +0 -5
  450. package/dist/cjs/functions/transferSubname.d.ts +0 -5
  451. package/dist/cjs/functions/unwrapName.d.ts +0 -4
  452. package/dist/cjs/functions/wrapName.d.ts +0 -6
  453. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +0 -487
  454. package/dist/cjs/generated/DNSSECImpl.d.ts +0 -402
  455. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  456. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
  457. package/dist/cjs/generated/ENSRegistry.d.ts +0 -259
  458. package/dist/cjs/generated/ETHRegistrarController.d.ts +0 -319
  459. package/dist/cjs/generated/Multicall.d.ts +0 -292
  460. package/dist/cjs/generated/NameWrapper.d.ts +0 -675
  461. package/dist/cjs/generated/PublicResolver.d.ts +0 -542
  462. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +0 -42
  463. package/dist/cjs/generated/ReverseRegistrar.d.ts +0 -259
  464. package/dist/cjs/generated/Root.d.ts +0 -173
  465. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +0 -72
  466. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +0 -42
  467. package/dist/cjs/generated/UniversalResolver.d.ts +0 -82
  468. package/dist/cjs/generated/common.d.ts +0 -21
  469. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  470. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  471. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  472. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
  473. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  474. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  475. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  476. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +0 -34
  477. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  478. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +0 -34
  479. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  480. package/dist/cjs/generated/factories/index.d.ts +0 -6
  481. package/dist/cjs/generated/index.d.ts +0 -13
  482. package/dist/cjs/index.d.ts +0 -470
  483. package/dist/cjs/utils/fuses.d.ts +0 -20
  484. package/dist/cjs/utils/normalise.d.ts +0 -2
  485. package/dist/cjs/utils/recordHelpers.d.ts +0 -13
  486. package/dist/cjs/utils/registerHelpers.d.ts +0 -26
  487. package/dist/esm/GqlManager.d.ts +0 -6
  488. package/dist/esm/GqlManager.js +0 -18
  489. package/dist/esm/contracts/baseRegistrar.d.ts +0 -3
  490. package/dist/esm/contracts/baseRegistrar.js +0 -2
  491. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  492. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
  493. package/dist/esm/contracts/ethRegistrarController.js +0 -2
  494. package/dist/esm/contracts/getContractAddress.d.ts +0 -3
  495. package/dist/esm/contracts/getContractAddress.js +0 -42
  496. package/dist/esm/contracts/index.d.ts +0 -16
  497. package/dist/esm/contracts/index.js +0 -29
  498. package/dist/esm/contracts/multicall.d.ts +0 -3
  499. package/dist/esm/contracts/multicall.js +0 -20
  500. package/dist/esm/contracts/nameWrapper.js +0 -2
  501. package/dist/esm/contracts/publicResolver.js +0 -2
  502. package/dist/esm/contracts/registry.d.ts +0 -3
  503. package/dist/esm/contracts/registry.js +0 -2
  504. package/dist/esm/contracts/reverseRegistrar.d.ts +0 -3
  505. package/dist/esm/contracts/reverseRegistrar.js +0 -2
  506. package/dist/esm/contracts/types.d.ts +0 -2
  507. package/dist/esm/contracts/types.js +0 -1
  508. package/dist/esm/contracts/universalResolver.d.ts +0 -3
  509. package/dist/esm/contracts/universalResolver.js +0 -2
  510. package/dist/esm/functions/batch.d.ts +0 -9
  511. package/dist/esm/functions/batch.js +0 -19
  512. package/dist/esm/functions/batchWrappers.js +0 -68
  513. package/dist/esm/functions/burnFuses.d.ts +0 -3
  514. package/dist/esm/functions/burnFuses.js +0 -12
  515. package/dist/esm/functions/createSubname.js +0 -38
  516. package/dist/esm/functions/deleteSubname.d.ts +0 -4
  517. package/dist/esm/functions/deleteSubname.js +0 -3
  518. package/dist/esm/functions/getExpiry.d.ts +0 -12
  519. package/dist/esm/functions/getExpiry.js +0 -43
  520. package/dist/esm/functions/getFuses.d.ts +0 -17
  521. package/dist/esm/functions/getFuses.js +0 -60
  522. package/dist/esm/functions/getHistory.d.ts +0 -54
  523. package/dist/esm/functions/getHistory.js +0 -273
  524. package/dist/esm/functions/getName.d.ts +0 -19
  525. package/dist/esm/functions/getName.js +0 -32
  526. package/dist/esm/functions/getNames.d.ts +0 -40
  527. package/dist/esm/functions/getNames.js +0 -220
  528. package/dist/esm/functions/getOwner.d.ts +0 -14
  529. package/dist/esm/functions/getOwner.js +0 -138
  530. package/dist/esm/functions/getPrice.js +0 -48
  531. package/dist/esm/functions/getProfile.js +0 -299
  532. package/dist/esm/functions/getRecords.js +0 -8
  533. package/dist/esm/functions/getResolver.d.ts +0 -9
  534. package/dist/esm/functions/getResolver.js +0 -22
  535. package/dist/esm/functions/getSpecificRecord.js +0 -265
  536. package/dist/esm/functions/getSubnames.js +0 -152
  537. package/dist/esm/functions/initialGetters.d.ts +0 -11
  538. package/dist/esm/functions/initialGetters.js +0 -11
  539. package/dist/esm/functions/setName.d.ts +0 -4
  540. package/dist/esm/functions/setName.js +0 -14
  541. package/dist/esm/functions/setRecords.d.ts +0 -3
  542. package/dist/esm/functions/setRecords.js +0 -19
  543. package/dist/esm/functions/setResolver.d.ts +0 -4
  544. package/dist/esm/functions/setResolver.js +0 -25
  545. package/dist/esm/functions/transferName.d.ts +0 -5
  546. package/dist/esm/functions/transferName.js +0 -31
  547. package/dist/esm/functions/transferSubname.d.ts +0 -5
  548. package/dist/esm/functions/transferSubname.js +0 -25
  549. package/dist/esm/functions/unwrapName.d.ts +0 -4
  550. package/dist/esm/functions/unwrapName.js +0 -25
  551. package/dist/esm/functions/wrapName.d.ts +0 -6
  552. package/dist/esm/functions/wrapName.js +0 -58
  553. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +0 -487
  554. package/dist/esm/generated/BaseRegistrarImplementation.js +0 -1
  555. package/dist/esm/generated/DNSRegistrar.d.ts +0 -220
  556. package/dist/esm/generated/DNSRegistrar.js +0 -1
  557. package/dist/esm/generated/DNSSECImpl.js +0 -1
  558. package/dist/esm/generated/DefaultReverseResolver.d.ts +0 -66
  559. package/dist/esm/generated/DefaultReverseResolver.js +0 -1
  560. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  561. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
  562. package/dist/esm/generated/ENSRegistry.d.ts +0 -259
  563. package/dist/esm/generated/ENSRegistry.js +0 -1
  564. package/dist/esm/generated/ETHRegistrarController.js +0 -1
  565. package/dist/esm/generated/Multicall.js +0 -1
  566. package/dist/esm/generated/NameWrapper.d.ts +0 -675
  567. package/dist/esm/generated/NameWrapper.js +0 -1
  568. package/dist/esm/generated/P256SHA256Algorithm.d.ts +0 -72
  569. package/dist/esm/generated/P256SHA256Algorithm.js +0 -1
  570. package/dist/esm/generated/PublicResolver.d.ts +0 -542
  571. package/dist/esm/generated/PublicResolver.js +0 -1
  572. package/dist/esm/generated/RSASHA1Algorithm.js +0 -1
  573. package/dist/esm/generated/RSASHA256Algorithm.d.ts +0 -42
  574. package/dist/esm/generated/RSASHA256Algorithm.js +0 -1
  575. package/dist/esm/generated/ReverseRegistrar.js +0 -1
  576. package/dist/esm/generated/Root.d.ts +0 -173
  577. package/dist/esm/generated/Root.js +0 -1
  578. package/dist/esm/generated/SHA1Digest.d.ts +0 -67
  579. package/dist/esm/generated/SHA1Digest.js +0 -1
  580. package/dist/esm/generated/SHA1NSEC3Digest.js +0 -1
  581. package/dist/esm/generated/SHA256Digest.d.ts +0 -67
  582. package/dist/esm/generated/SHA256Digest.js +0 -1
  583. package/dist/esm/generated/StaticMetadataService.d.ts +0 -42
  584. package/dist/esm/generated/StaticMetadataService.js +0 -1
  585. package/dist/esm/generated/TLDPublicSuffixList.js +0 -1
  586. package/dist/esm/generated/UniversalResolver.d.ts +0 -82
  587. package/dist/esm/generated/UniversalResolver.js +0 -1
  588. package/dist/esm/generated/common.js +0 -1
  589. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +0 -52
  590. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +0 -766
  591. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +0 -79
  592. package/dist/esm/generated/factories/DNSRegistrar__factory.js +0 -292
  593. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +0 -68
  594. package/dist/esm/generated/factories/DNSSECImpl__factory.js +0 -497
  595. package/dist/esm/generated/factories/DefaultReverseResolver__factory.d.ts +0 -36
  596. package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +0 -83
  597. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
  598. package/dist/esm/generated/factories/ENSRegistry__factory.d.ts +0 -52
  599. package/dist/esm/generated/factories/ENSRegistry__factory.js +0 -435
  600. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +0 -507
  601. package/dist/esm/generated/factories/Multicall__factory.d.ts +0 -42
  602. package/dist/esm/generated/factories/Multicall__factory.js +0 -453
  603. package/dist/esm/generated/factories/NameWrapper__factory.d.ts +0 -57
  604. package/dist/esm/generated/factories/NameWrapper__factory.js +0 -1196
  605. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
  606. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +0 -67
  607. package/dist/esm/generated/factories/PublicResolver__factory.d.ts +0 -46
  608. package/dist/esm/generated/factories/PublicResolver__factory.js +0 -888
  609. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
  610. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +0 -67
  611. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
  612. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +0 -67
  613. package/dist/esm/generated/factories/ReverseRegistrar__factory.d.ts +0 -46
  614. package/dist/esm/generated/factories/ReverseRegistrar__factory.js +0 -336
  615. package/dist/esm/generated/factories/Root__factory.d.ts +0 -52
  616. package/dist/esm/generated/factories/Root__factory.js +0 -239
  617. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +0 -34
  618. package/dist/esm/generated/factories/SHA1Digest__factory.js +0 -62
  619. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
  620. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +0 -67
  621. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +0 -34
  622. package/dist/esm/generated/factories/SHA256Digest__factory.js +0 -62
  623. package/dist/esm/generated/factories/StaticMetadataService__factory.js +0 -45
  624. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
  625. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +0 -57
  626. package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +0 -42
  627. package/dist/esm/generated/factories/UniversalResolver__factory.js +0 -200
  628. package/dist/esm/generated/factories/index.d.ts +0 -6
  629. package/dist/esm/generated/factories/index.js +0 -9
  630. package/dist/esm/generated/index.d.ts +0 -13
  631. package/dist/esm/generated/index.js +0 -7
  632. package/dist/esm/index.js +0 -189
  633. package/dist/esm/utils/contentHash.d.ts +0 -28
  634. package/dist/esm/utils/contentHash.js +0 -153
  635. package/dist/esm/utils/createReverseNode.d.ts +0 -2
  636. package/dist/esm/utils/createReverseNode.js +0 -1
  637. package/dist/esm/utils/format.d.ts +0 -3
  638. package/dist/esm/utils/format.js +0 -3
  639. package/dist/esm/utils/fuses.d.ts +0 -20
  640. package/dist/esm/utils/fuses.js +0 -21
  641. package/dist/esm/utils/generateFuseInput.d.ts +0 -3
  642. package/dist/esm/utils/generateFuseInput.js +0 -14
  643. package/dist/esm/utils/hexEncodedName.d.ts +0 -1
  644. package/dist/esm/utils/hexEncodedName.js +0 -2
  645. package/dist/esm/utils/labels.d.ts +0 -14
  646. package/dist/esm/utils/labels.js +0 -95
  647. package/dist/esm/utils/makeHashIndexes.d.ts +0 -2
  648. package/dist/esm/utils/makeHashIndexes.js +0 -3
  649. package/dist/esm/utils/normalise.d.ts +0 -2
  650. package/dist/esm/utils/normalise.js +0 -20
  651. package/dist/esm/utils/recordHelpers.js +0 -39
  652. package/dist/esm/utils/registerHelpers.d.ts +0 -26
  653. package/dist/esm/utils/registerHelpers.js +0 -43
  654. package/dist/esm/utils/singleCall.d.ts +0 -9
  655. package/dist/esm/utils/singleCall.js +0 -5
  656. package/dist/esm/utils/validation.d.ts +0 -8
  657. package/dist/esm/utils/validation.js +0 -67
  658. package/src/ABIs/ETHRegistrarController.json +0 -494
  659. package/src/ABIs/NameWrapper.json +0 -1183
  660. package/src/ABIs/PublicResolver.json +0 -875
  661. package/src/ABIs/ReverseRegistrar.json +0 -323
  662. package/src/ABIs/StaticMetadataService.json +0 -32
  663. package/src/ABIs/UniversalResolver.json +0 -187
  664. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
  665. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
  666. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
  667. package/src/tests/batch.test.ts +0 -36
  668. package/src/tests/batchWrappers.test.ts +0 -31
  669. package/src/tests/burnFuses.test.ts +0 -44
  670. package/src/tests/deleteSubname.test.ts +0 -71
  671. package/src/tests/getExpiry.test.ts +0 -37
  672. package/src/tests/getFuses.test.ts +0 -103
  673. package/src/tests/getHistory.test.ts +0 -101
  674. package/src/tests/getNames.test.ts +0 -247
  675. package/src/tests/getOwner.test.ts +0 -71
  676. package/src/tests/getResolver.test.ts +0 -19
  677. package/src/tests/getSubnames.test.ts +0 -31
  678. package/src/tests/setup.ts +0 -53
  679. package/src/tests/transferName.test.ts +0 -81
  680. package/src/tests/transferSubname.test.ts +0 -73
  681. package/src/tests/unwrapName.test.ts +0 -68
  682. package/src/tests/withProvider.test.ts +0 -28
  683. package/src/tests/wrapName.test.ts +0 -64
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { ethers } from 'ethers'
2
- import ContractManager from './contracts'
1
+ import type { JsonRpcSigner } from '@ethersproject/providers'
2
+ import { ContractTransaction, ethers, PopulatedTransaction } from 'ethers'
3
3
  import { getContractAddress as _getContractAddress } from './contracts/getContractAddress'
4
+ import ContractManager from './contracts/index'
4
5
  import { SupportedNetworkId } from './contracts/types'
5
6
  import type batch from './functions/batch'
6
7
  import type {
@@ -9,15 +10,13 @@ import type {
9
10
  universalWrapper,
10
11
  } from './functions/batchWrappers'
11
12
  import type burnFuses from './functions/burnFuses'
13
+ import type commitName from './functions/commitName'
12
14
  import type createSubname from './functions/createSubname'
13
15
  import type deleteSubname from './functions/deleteSubname'
16
+ import type getDNSOwner from './functions/getDNSOwner'
14
17
  import type getExpiry from './functions/getExpiry'
15
18
  import type getFuses from './functions/getFuses'
16
- import type {
17
- getHistory,
18
- getHistoryDetailForTransactionHash,
19
- getHistoryWithDetail,
20
- } from './functions/getHistory'
19
+ import type { getHistory } from './functions/getHistory'
21
20
  import type getName from './functions/getName'
22
21
  import type getNames from './functions/getNames'
23
22
  import type getOwner from './functions/getOwner'
@@ -34,7 +33,10 @@ import type {
34
33
  _getText,
35
34
  } from './functions/getSpecificRecord'
36
35
  import type getSubnames from './functions/getSubnames'
36
+ import type registerName from './functions/registerName'
37
+ import type renewNames from './functions/renewNames'
37
38
  import type setName from './functions/setName'
39
+ import type setRecord from './functions/setRecord'
38
40
  import type setRecords from './functions/setRecords'
39
41
  import type setResolver from './functions/setResolver'
40
42
  import type transferName from './functions/transferName'
@@ -43,6 +45,16 @@ import type unwrapName from './functions/unwrapName'
43
45
  import type wrapName from './functions/wrapName'
44
46
  import GqlManager from './GqlManager'
45
47
  import singleCall from './utils/singleCall'
48
+ import writeTx from './utils/writeTx'
49
+
50
+ export type {
51
+ Fuse,
52
+ FuseArrayPossibilities,
53
+ FuseObj,
54
+ NamedFusesToBurn,
55
+ UnnamedFuseType,
56
+ UnnamedFuseValues,
57
+ } from './utils/fuses'
46
58
 
47
59
  type ENSOptions = {
48
60
  graphURI?: string | null
@@ -52,6 +64,7 @@ type ENSOptions = {
52
64
  export type InternalENS = {
53
65
  options?: ENSOptions
54
66
  provider?: ethers.providers.Provider
67
+ signer: JsonRpcSigner
55
68
  graphURI?: string | null
56
69
  } & ENS
57
70
 
@@ -75,12 +88,40 @@ type FirstArg<F> = F extends (x: infer A, ...args: any[]) => any ? A : never
75
88
 
76
89
  type FunctionDeps<F> = Extract<keyof FirstArg<F>, string>[]
77
90
 
91
+ type WriteOptions = {
92
+ addressOrIndex?: string | number
93
+ signer?: JsonRpcSigner
94
+ }
95
+
96
+ type OptionalWriteOptions<F> = F extends (
97
+ x: any,
98
+ arg_0: infer Z,
99
+ options?: infer P,
100
+ ) => infer R
101
+ ? (name: Z, options?: P & WriteOptions) => R
102
+ : F extends (x: any, arg_0: infer Z, options: infer P) => infer R
103
+ ? (name: Z, options: P & WriteOptions) => R
104
+ : never
105
+
106
+ interface WriteFunction<F extends (...args: any) => any> extends Function {
107
+ (...args: Parameters<OptionalWriteOptions<F>>): Promise<
108
+ ContractTransaction & {
109
+ customData?: Record<string, any>
110
+ }
111
+ >
112
+ populateTransaction: (
113
+ ...args: Parameters<OptionalWriteOptions<F>>
114
+ ) => Promise<PopulatedTransaction>
115
+ }
116
+
117
+ /* eslint-disable @typescript-eslint/naming-convention */
78
118
  const graphURIEndpoints: Record<string, string> = {
79
119
  1: 'https://api.thegraph.com/subgraphs/name/ensdomains/ens',
80
120
  3: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensropsten',
81
121
  4: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensrinkeby',
82
122
  5: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensgoerli',
83
123
  }
124
+ /* eslint-enable @typescript-eslint/naming-convention */
84
125
 
85
126
  export type RawFunction = {
86
127
  raw: (...args: any[]) => Promise<{ to: string; data: string }>
@@ -120,12 +161,19 @@ export interface GenericGeneratedRawFunction
120
161
 
121
162
  export class ENS {
122
163
  [x: string]: any
164
+
123
165
  protected options?: ENSOptions
166
+
124
167
  protected provider?: ethers.providers.JsonRpcProvider
168
+
125
169
  protected graphURI?: string | null
170
+
126
171
  protected initialProvider?: ethers.providers.JsonRpcProvider
172
+
127
173
  contracts?: ContractManager
174
+
128
175
  getContractAddress = _getContractAddress
176
+
129
177
  gqlInstance = new GqlManager()
130
178
 
131
179
  constructor(options?: ENSOptions) {
@@ -142,7 +190,6 @@ export class ENS {
142
190
  return
143
191
  }
144
192
  await this.setProvider(this.initialProvider)
145
- return
146
193
  }
147
194
 
148
195
  /**
@@ -171,7 +218,13 @@ export class ENS {
171
218
  path: string,
172
219
  dependencies: FunctionDeps<F>,
173
220
  exportName: string = 'default',
174
- subFunc?: 'raw' | 'decode' | 'combine' | 'batch',
221
+ subFunc?:
222
+ | 'raw'
223
+ | 'decode'
224
+ | 'combine'
225
+ | 'batch'
226
+ | 'write'
227
+ | 'populateTransaction',
175
228
  passthrough?: RawFunction,
176
229
  ): Function => {
177
230
  // if batch is specified, create batch func
@@ -185,34 +238,55 @@ export class ENS {
185
238
  await thisRef.checkInitialProvider()
186
239
  // import the module dynamically
187
240
  const mod = await import(
188
- /* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true */
241
+ /* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true, webpackExclude: /.*\.ts$/ */
189
242
  `./functions/${path}`
190
243
  )
191
244
 
192
245
  // if combine isn't specified, run normally
193
246
  // otherwise, create a function from the raw and decode functions
194
247
  if (subFunc !== 'combine') {
248
+ const writeable =
249
+ subFunc === 'write' || subFunc === 'populateTransaction'
195
250
  // get the function to call
196
- const func = subFunc ? mod[exportName][subFunc] : mod[exportName]
251
+ const func =
252
+ subFunc && !writeable ? mod[exportName][subFunc] : mod[exportName]
197
253
  // get the dependencies to forward to the function as the first arg
198
- const dependenciesToForward =
254
+ let dependenciesToForward =
199
255
  thisRef.forwardDependenciesFromArray<F>(dependencies)
256
+
257
+ // if func is write func, inject signer into dependencies
258
+ if (writeable) {
259
+ const options = (args[1] || {}) as WriteOptions
260
+ const signer =
261
+ options.signer ||
262
+ thisRef.provider?.getSigner(options.addressOrIndex)
263
+ const populate = subFunc === 'populateTransaction'
264
+ if (!signer) {
265
+ throw new Error('No signer specified')
266
+ }
267
+ delete options.addressOrIndex
268
+ delete options.signer
269
+ dependenciesToForward = { ...dependenciesToForward, signer }
270
+ return func(dependenciesToForward, args[0], options).then(
271
+ writeTx(signer, populate),
272
+ )
273
+ }
274
+
200
275
  // return the function with the dependencies forwarded
201
276
  return func(dependenciesToForward, ...args)
202
- } else {
203
- // get the dependencies to forward from raw and decode functions
204
- const dependenciesToForward = thisRef.forwardDependenciesFromArray<
205
- CombineFunctionDeps<F>
206
- >(dependencies as any)
207
-
208
- // return singleCall function with dependencies forwarded
209
- return singleCall(
210
- thisRef.provider!,
211
- dependenciesToForward,
212
- mod[exportName],
213
- ...args,
214
- )
215
277
  }
278
+ // get the dependencies to forward from raw and decode functions
279
+ const dependenciesToForward = thisRef.forwardDependenciesFromArray<
280
+ CombineFunctionDeps<F>
281
+ >(dependencies as any)
282
+
283
+ // return singleCall function with dependencies forwarded
284
+ return singleCall(
285
+ thisRef.provider!,
286
+ dependenciesToForward,
287
+ mod[exportName],
288
+ ...args,
289
+ )
216
290
  }
217
291
 
218
292
  // if subfunc is combine, add raw and decode property methods to the function
@@ -236,6 +310,13 @@ export class ENS {
236
310
  'batch',
237
311
  { raw: mainFunc.raw as any, decode: mainFunc.decode as any },
238
312
  )
313
+ } else if (subFunc === 'write') {
314
+ mainFunc.populateTransaction = this.importGenerator<F>(
315
+ path,
316
+ dependencies,
317
+ exportName,
318
+ 'populateTransaction',
319
+ )
239
320
  }
240
321
 
241
322
  return mainFunc as Function
@@ -255,6 +336,25 @@ export class ENS {
255
336
  ): OmitFirstArg<F> =>
256
337
  this.importGenerator<F>(path, dependencies, exportName) as OmitFirstArg<F>
257
338
 
339
+ /**
340
+ * Generates a write wrapped function
341
+ * @param {string} path - The path of the exported function
342
+ * @param {FunctionDeps} dependencies - An array of ENS properties
343
+ * @param {string} exportName - The export name of the target function
344
+ * @returns {OmitFirstArg} - The generated wrapped function
345
+ */
346
+ private generateWriteFunction = <F extends (...args: any) => any>(
347
+ path: string,
348
+ dependencies: FunctionDeps<F>,
349
+ exportName: string = 'default',
350
+ ): WriteFunction<F> =>
351
+ this.importGenerator<F>(
352
+ path,
353
+ dependencies,
354
+ exportName,
355
+ 'write',
356
+ ) as WriteFunction<F>
357
+
258
358
  /**
259
359
  * Generates a wrapped function from raw and decode exports
260
360
  * @param {string} path - The path of the exported function
@@ -294,7 +394,6 @@ export class ENS {
294
394
  this.provider,
295
395
  this.getContractAddress(String(network) as SupportedNetworkId),
296
396
  )
297
- return
298
397
  }
299
398
 
300
399
  /**
@@ -356,22 +455,6 @@ export class ENS {
356
455
  'getHistory',
357
456
  )
358
457
 
359
- public getHistoryWithDetail = this.generateFunction<
360
- typeof getHistoryWithDetail
361
- >(
362
- 'getHistory',
363
- ['contracts', 'gqlInstance', 'provider'],
364
- 'getHistoryWithDetail',
365
- )
366
-
367
- public getHistoryDetailForTransactionHash = this.generateFunction<
368
- typeof getHistoryDetailForTransactionHash
369
- >(
370
- 'getHistory',
371
- ['contracts', 'provider'],
372
- 'getHistoryDetailForTransactionHash',
373
- )
374
-
375
458
  public getContentHash = this.generateRawFunction<typeof getContentHash>(
376
459
  'initialGetters',
377
460
  ['contracts', 'universalWrapper'],
@@ -438,6 +521,11 @@ export class ENS {
438
521
  'getPrice',
439
522
  )
440
523
 
524
+ public getDNSOwner = this.generateFunction<typeof getDNSOwner>(
525
+ 'getDNSOwner',
526
+ [],
527
+ )
528
+
441
529
  public universalWrapper = this.generateRawFunction<typeof universalWrapper>(
442
530
  'initialGetters',
443
531
  ['contracts'],
@@ -454,54 +542,72 @@ export class ENS {
454
542
  'multicallWrapper',
455
543
  )
456
544
 
457
- public setName = this.generateFunction<typeof setName>('setName', [
545
+ public setName = this.generateWriteFunction<typeof setName>('setName', [
458
546
  'contracts',
459
- 'provider',
460
547
  ])
461
548
 
462
- public setRecords = this.generateFunction<typeof setRecords>('setRecords', [
549
+ public setRecords = this.generateWriteFunction<typeof setRecords>(
550
+ 'setRecords',
551
+ ['contracts', 'provider', 'getResolver'],
552
+ )
553
+
554
+ public setRecord = this.generateWriteFunction<typeof setRecord>('setRecord', [
463
555
  'contracts',
464
556
  'provider',
465
557
  'getResolver',
466
558
  ])
467
559
 
468
- public setResolver = this.generateFunction<typeof setResolver>(
560
+ public setResolver = this.generateWriteFunction<typeof setResolver>(
469
561
  'setResolver',
470
- ['contracts', 'provider'],
562
+ ['contracts'],
471
563
  )
472
564
 
473
- public transferName = this.generateFunction<typeof transferName>(
565
+ public transferName = this.generateWriteFunction<typeof transferName>(
474
566
  'transferName',
475
- ['contracts', 'provider'],
567
+ ['contracts'],
476
568
  )
477
569
 
478
- public wrapName = this.generateFunction<typeof wrapName>('wrapName', [
570
+ public wrapName = this.generateWriteFunction<typeof wrapName>('wrapName', [
479
571
  'contracts',
480
- 'provider',
572
+ 'getExpiry',
481
573
  ])
482
574
 
483
- public unwrapName = this.generateFunction<typeof unwrapName>('unwrapName', [
484
- 'contracts',
485
- 'provider',
486
- ])
575
+ public unwrapName = this.generateWriteFunction<typeof unwrapName>(
576
+ 'unwrapName',
577
+ ['contracts'],
578
+ )
487
579
 
488
- public burnFuses = this.generateFunction<typeof burnFuses>('burnFuses', [
580
+ public burnFuses = this.generateWriteFunction<typeof burnFuses>('burnFuses', [
489
581
  'contracts',
490
- 'provider',
491
582
  ])
492
583
 
493
- public createSubname = this.generateFunction<typeof createSubname>(
584
+ public createSubname = this.generateWriteFunction<typeof createSubname>(
494
585
  'createSubname',
495
- ['contracts', 'provider'],
586
+ ['contracts', 'getExpiry'],
496
587
  )
497
588
 
498
- public deleteSubname = this.generateFunction<typeof deleteSubname>(
589
+ public deleteSubname = this.generateWriteFunction<typeof deleteSubname>(
499
590
  'deleteSubname',
500
- ['contracts', 'provider', 'transferSubname'],
591
+ ['contracts'],
501
592
  )
502
593
 
503
- public transferSubname = this.generateFunction<typeof transferSubname>(
594
+ public transferSubname = this.generateWriteFunction<typeof transferSubname>(
504
595
  'transferSubname',
505
- ['contracts', 'provider'],
596
+ ['contracts', 'getExpiry'],
597
+ )
598
+
599
+ public commitName = this.generateWriteFunction<typeof commitName>(
600
+ 'commitName',
601
+ ['contracts'],
602
+ )
603
+
604
+ public registerName = this.generateWriteFunction<typeof registerName>(
605
+ 'registerName',
606
+ ['contracts'],
607
+ )
608
+
609
+ public renewNames = this.generateWriteFunction<typeof renewNames>(
610
+ 'renewNames',
611
+ ['contracts'],
506
612
  )
507
613
  }
@@ -26,13 +26,16 @@ function matchProtocol(text: string) {
26
26
  }
27
27
 
28
28
  export function decodeContenthash(encoded: any) {
29
- let decoded, protocolType, error
29
+ let decoded
30
+ let protocolType
31
+ let error
30
32
  if (!encoded || encoded === '0x') {
31
33
  return {}
32
34
  }
33
35
  if (encoded.error) {
34
36
  return { protocolType: null, decoded: encoded.error }
35
- } else if (encoded === false) {
37
+ }
38
+ if (encoded === false) {
36
39
  return { protocolType: null, decoded: 'invalid value' }
37
40
  }
38
41
  if (encoded) {
@@ -80,12 +83,12 @@ export function isValidContenthash(encoded: any) {
80
83
  }
81
84
 
82
85
  export function getProtocolType(encoded: any) {
83
- let protocolType, decoded
86
+ let protocolType
87
+ let decoded
84
88
  try {
85
- let matched = matchProtocol(encoded)
89
+ const matched = matchProtocol(encoded)
86
90
  if (matched) {
87
- protocolType = matched[1]
88
- decoded = matched[2]
91
+ ;[, protocolType, decoded] = matched
89
92
  }
90
93
  return {
91
94
  protocolType,
@@ -101,38 +104,37 @@ export function encodeContenthash(text: string) {
101
104
  let contentType
102
105
  let encoded: string | boolean = false
103
106
  let error
104
- if (!!text) {
105
- let matched = matchProtocol(text)
107
+ if (text) {
108
+ const matched = matchProtocol(text)
106
109
  if (matched) {
107
- contentType = matched[1]
108
- content = matched[2]
110
+ ;[, contentType, content] = matched
109
111
  }
110
112
  try {
111
113
  if (contentType === 'ipfs') {
112
114
  if (content.length >= 4) {
113
- encoded = '0x' + contentHash.encode('ipfs-ns', content)
115
+ encoded = `0x${contentHash.encode('ipfs-ns', content)}`
114
116
  }
115
117
  } else if (contentType === 'ipns') {
116
- encoded = '0x' + contentHash.encode('ipns-ns', content)
118
+ encoded = `0x${contentHash.encode('ipns-ns', content)}`
117
119
  } else if (contentType === 'bzz') {
118
120
  if (content.length >= 4) {
119
- encoded = '0x' + contentHash.fromSwarm(content)
121
+ encoded = `0x${contentHash.fromSwarm(content)}`
120
122
  }
121
123
  } else if (contentType === 'onion') {
122
- if (content.length == 16) {
123
- encoded = '0x' + contentHash.encode('onion', content)
124
+ if (content.length === 16) {
125
+ encoded = `0x${contentHash.encode('onion', content)}`
124
126
  }
125
127
  } else if (contentType === 'onion3') {
126
- if (content.length == 56) {
127
- encoded = '0x' + contentHash.encode('onion3', content)
128
+ if (content.length === 56) {
129
+ encoded = `0x${contentHash.encode('onion3', content)}`
128
130
  }
129
131
  } else if (contentType === 'sia') {
130
- if (content.length == 46) {
131
- encoded = '0x' + contentHash.encode('skynet-ns', content)
132
+ if (content.length === 46) {
133
+ encoded = `0x${contentHash.encode('skynet-ns', content)}`
132
134
  }
133
135
  } else if (contentType === 'arweave') {
134
- if (content.length == 43) {
135
- encoded = '0x' + contentHash.encode('arweave-ns', content)
136
+ if (content.length === 43) {
137
+ encoded = `0x${contentHash.encode('arweave-ns', content)}`
136
138
  }
137
139
  } else {
138
140
  console.warn('Unsupported protocol or invalid value', {
@@ -144,7 +146,7 @@ export function encodeContenthash(text: string) {
144
146
  const errorMessage = 'Error encoding content hash'
145
147
  console.warn(errorMessage, { text, encoded })
146
148
  error = errorMessage
147
- //throw 'Error encoding content hash'
149
+ // throw 'Error encoding content hash'
148
150
  }
149
151
  }
150
152
  return { encoded, error }
@@ -1,2 +1,2 @@
1
1
  export default (address: string) =>
2
- address.toLowerCase().substring(2) + '.addr.reverse'
2
+ `${address.toLowerCase().substring(2)}.addr.reverse`
@@ -7,7 +7,7 @@ const CANNOT_CREATE_SUBDOMAIN = 32
7
7
  const PARENT_CANNOT_CONTROL = 64
8
8
  const CAN_DO_EVERYTHING = 0
9
9
 
10
- export const testable = {
10
+ export const fuseEnum = {
11
11
  CANNOT_UNWRAP,
12
12
  CANNOT_BURN_FUSES,
13
13
  CANNOT_TRANSFER,
@@ -15,9 +15,57 @@ export const testable = {
15
15
  CANNOT_SET_TTL,
16
16
  CANNOT_CREATE_SUBDOMAIN,
17
17
  PARENT_CANNOT_CONTROL,
18
- }
18
+ } as const
19
+
20
+ export const unnamedFuses = [
21
+ 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144,
22
+ 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864,
23
+ 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296,
24
+ ] as const
19
25
 
20
- export default {
21
- ...testable,
26
+ const fullFuseEnum = {
27
+ ...fuseEnum,
22
28
  CAN_DO_EVERYTHING,
23
29
  }
30
+
31
+ export type FuseObj = typeof fuseEnum
32
+ export type CurrentFuses = { [f in keyof FuseObj]: boolean }
33
+ export type UnnamedFuseType = typeof unnamedFuses
34
+ export type Fuse = keyof FuseObj
35
+ export type UnnamedFuseValues = UnnamedFuseType[number]
36
+
37
+ // We need this type so that the following type isn't infinite. This type limits the max length of the fuse array to 7.
38
+ export type FuseArrayPossibilities =
39
+ | [Fuse]
40
+ | [Fuse, Fuse]
41
+ | [Fuse, Fuse, Fuse]
42
+ | [Fuse, Fuse, Fuse, Fuse]
43
+ | [Fuse, Fuse, Fuse, Fuse, Fuse]
44
+ | [Fuse, Fuse, Fuse, Fuse, Fuse, Fuse]
45
+ | [Fuse, Fuse, Fuse, Fuse, Fuse, Fuse, Fuse]
46
+
47
+ /**
48
+ * This type creates a type error if there are any duplicate fuses.
49
+ * It effectively works like a reduce function, starting with 0 included types, adding a type each time, and then checking for duplicates.
50
+ *
51
+ * @template A The array to check for duplicates.
52
+ * @template B The union of all checked existing types.
53
+ */
54
+ // CLAUSE A: This extension unwraps the type as a fuse tuple.
55
+ type FusesWithoutDuplicates<A, B = never> = A extends FuseArrayPossibilities
56
+ ? // CLAUSE A > TRUE: CLAUSE B: Pick out the first item in the current array, separating the current item from the rest.
57
+ A extends [infer Head, ...infer Tail]
58
+ ? // CLAUSE B > TRUE: CLAUSE C: Check if the current item is a duplicate based on the input union.
59
+ Head extends B
60
+ ? // CLAUSE C > TRUE: Duplicate found, return an empty array to throw a type error.
61
+ []
62
+ : // CLAUSE C > FALSE: Return a new array to continue the recursion, adds the current item type to the union.
63
+ [Head, ...FusesWithoutDuplicates<Tail, Head | B>]
64
+ : // CLAUSE B > FALSE: Return the input array as there is no more array elements to check.
65
+ A
66
+ : // CLAUSE A > FALSE: Return an empty array as it isn't a fuse tuple.
67
+ []
68
+
69
+ export type NamedFusesToBurn = FusesWithoutDuplicates<FuseArrayPossibilities>
70
+
71
+ export default fullFuseEnum
@@ -1,6 +1,8 @@
1
1
  import { solidityKeccak256 } from 'ethers/lib/utils'
2
2
  import { truncateFormat } from './format'
3
3
 
4
+ const hasLocalStorage = typeof localStorage !== 'undefined'
5
+
4
6
  export const labelhash = (input: string) =>
5
7
  solidityKeccak256(['string'], [input])
6
8
 
@@ -17,7 +19,7 @@ export function decodeLabelhash(hash: string) {
17
19
  throw Error('Expected encoded labelhash to have a length of 66')
18
20
  }
19
21
 
20
- return `${hash.slice(1, -1)}`
22
+ return `0x${hash.slice(1, -1)}`
21
23
  }
22
24
 
23
25
  export function encodeLabelhash(hash: string) {
@@ -37,13 +39,13 @@ export function isEncodedLabelhash(hash: string) {
37
39
  }
38
40
 
39
41
  function getLabels() {
40
- return localStorage
42
+ return hasLocalStorage
41
43
  ? JSON.parse(localStorage.getItem('ensjs:labels') as string) || {}
42
44
  : {}
43
45
  }
44
46
 
45
47
  function _saveLabel(hash: string, label: any) {
46
- if (!localStorage) return hash
48
+ if (!hasLocalStorage) return hash
47
49
  const labels = getLabels()
48
50
  localStorage.setItem(
49
51
  'ensjs:labels',
@@ -106,7 +108,7 @@ export function decryptName(name: string) {
106
108
  export const truncateUndecryptedName = (name: string) => truncateFormat(name)
107
109
 
108
110
  export function checkLocalStorageSize() {
109
- if (!localStorage) return 'Empty (0 KB)'
111
+ if (!hasLocalStorage) return 'Empty (0 KB)'
110
112
  let allStrings = ''
111
113
  for (const key in window.localStorage) {
112
114
  if (Object.prototype.hasOwnProperty.call(window.localStorage, key)) {
@@ -1,5 +1,6 @@
1
1
  import { concat, hexlify, keccak256, toUtf8Bytes } from 'ethers/lib/utils'
2
2
  import uts46 from 'idna-uts46-hx/uts46bundle.js'
3
+ import { decodeLabelhash, isEncodedLabelhash } from './labels'
3
4
 
4
5
  const zeros = new Uint8Array(32)
5
6
  zeros.fill(0)
@@ -7,16 +8,21 @@ zeros.fill(0)
7
8
  export const normalise = (name: string) =>
8
9
  name ? uts46.toUnicode(name, { useStd3ASCII: true }) : name
9
10
 
10
- export const namehash = (inputName: string): string => {
11
+ export const namehash = (name: string): string => {
11
12
  let result: string | Uint8Array = zeros
12
13
 
13
- const name = normalise(inputName)
14
-
15
14
  if (name) {
16
15
  const labels = name.split('.')
17
16
 
18
- for (var i = labels.length - 1; i >= 0; i--) {
19
- const labelSha = keccak256(toUtf8Bytes(labels[i]))
17
+ for (let i = labels.length - 1; i >= 0; i -= 1) {
18
+ let labelSha: string
19
+ if (isEncodedLabelhash(labels[i])) {
20
+ labelSha = decodeLabelhash(labels[i])
21
+ } else {
22
+ const normalised = normalise(labels[i])
23
+ labelSha = keccak256(toUtf8Bytes(normalised))
24
+ }
25
+
20
26
  result = keccak256(concat([result, labelSha]))
21
27
  }
22
28
  } else {