@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
package/src/static.ts ADDED
@@ -0,0 +1,94 @@
1
+ import type { StaticJsonRpcProvider } from '@ethersproject/providers/lib/url-json-rpc-provider'
2
+ import { gql, GraphQLClient } from 'graphql-request'
3
+ import { parse, print, visit } from 'graphql/language'
4
+ import traverse from 'traverse'
5
+ import ContractManager from './contracts/index'
6
+ import { SupportedNetworkId } from './contracts/types'
7
+ import { ENS, FunctionSubtype, graphURIEndpoints } from './index'
8
+
9
+ import type Factories from './contracts/factories'
10
+ import type FunctionTypes from './functions/types'
11
+ import { requestMiddleware, responseMiddleware } from './GqlManager'
12
+
13
+ type Options = ConstructorParameters<typeof ENS>[0] & {
14
+ functions: Partial<FunctionTypes>
15
+ contracts: Partial<Factories>
16
+ }
17
+
18
+ class StaticENS extends ENS {
19
+ private functions: Partial<FunctionTypes>
20
+
21
+ private contractsObject: Partial<Factories>
22
+
23
+ gqlInstance: {
24
+ client: GraphQLClient | { request: () => Promise<null> }
25
+ setUrl: () => Promise<void>
26
+ gql: typeof gql | ((query: TemplateStringsArray) => string)
27
+ } = {
28
+ client: { request: () => Promise.resolve(null) },
29
+ setUrl: () => Promise.resolve(),
30
+ gql: (query: TemplateStringsArray) => query.join(),
31
+ }
32
+
33
+ constructor(
34
+ provider: StaticJsonRpcProvider,
35
+ { functions, contracts, ...options }: Options,
36
+ ) {
37
+ super(options)
38
+ this.functions = functions
39
+ this.contractsObject = contracts
40
+ this.setStaticProvider(provider)
41
+ }
42
+
43
+ public setStaticProvider = (provider: StaticJsonRpcProvider) => {
44
+ this.provider = provider
45
+ const network = provider.network.chainId
46
+ if (this.options && this.options.graphURI) {
47
+ this.graphURI = this.options.graphURI
48
+ } else {
49
+ this.graphURI = graphURIEndpoints[network]
50
+ }
51
+ if (this.graphURI) {
52
+ const client = new GraphQLClient(this.graphURI, {
53
+ requestMiddleware: requestMiddleware(visit, parse, print),
54
+ responseMiddleware: responseMiddleware(traverse),
55
+ })
56
+ this.gqlInstance = {
57
+ client,
58
+ setUrl: () => Promise.resolve(),
59
+ gql,
60
+ }
61
+ }
62
+ this.contracts = new ContractManager(
63
+ provider,
64
+ this.getContractAddress(String(network) as SupportedNetworkId),
65
+ (name) =>
66
+ Promise.resolve(this.contractsObject[name as keyof Factories] as any),
67
+ )
68
+ }
69
+
70
+ public override setProvider = async (
71
+ provider: StaticJsonRpcProvider,
72
+ ): Promise<void> => {
73
+ this.setStaticProvider(provider)
74
+ }
75
+
76
+ protected override getModule = async () => this.functions
77
+
78
+ // eslint-disable-next-line class-methods-use-this
79
+ protected override getFunction = (
80
+ subFunc: FunctionSubtype | undefined,
81
+ _writeable: boolean | undefined,
82
+ exportName: string,
83
+ mod: any,
84
+ path: string,
85
+ ) => {
86
+ const base = mod[exportName === 'default' ? path : exportName]
87
+ if (subFunc === 'raw' || subFunc === 'decode') {
88
+ return base[subFunc]
89
+ }
90
+ return base
91
+ }
92
+ }
93
+
94
+ export default StaticENS
@@ -0,0 +1,149 @@
1
+ import { BigNumber } from '@ethersproject/bignumber/lib/bignumber'
2
+ import {
3
+ arrayify,
4
+ BytesLike,
5
+ hexConcat,
6
+ hexDataSlice,
7
+ } from '@ethersproject/bytes'
8
+ import type { BaseProvider, TransactionRequest } from '@ethersproject/providers'
9
+ import { toUtf8String } from '@ethersproject/strings/lib/utf8'
10
+ import type { Transaction } from '@ethersproject/transactions'
11
+
12
+ function bytesPad(value: Uint8Array): Uint8Array {
13
+ if (value.length % 32 === 0) {
14
+ return value
15
+ }
16
+
17
+ const result = new Uint8Array(Math.ceil(value.length / 32) * 32)
18
+ result.set(value)
19
+ return result
20
+ }
21
+
22
+ function numPad(value: number): Uint8Array {
23
+ const result = arrayify(value)
24
+ if (result.length > 32) {
25
+ throw new Error('internal; should not happen')
26
+ }
27
+
28
+ const padded = new Uint8Array(32)
29
+ padded.set(result, 32 - result.length)
30
+ return padded
31
+ }
32
+
33
+ // ABI Encodes a series of (bytes, bytes, ...)
34
+ function encodeBytes(datas: Array<BytesLike>) {
35
+ const result: Array<Uint8Array> = []
36
+
37
+ let byteCount = 0
38
+
39
+ // Add place-holders for pointers as we add items
40
+ for (let i = 0; i < datas.length; i += 1) {
41
+ result.push(new Uint8Array(0))
42
+ byteCount += 32
43
+ }
44
+
45
+ for (let i = 0; i < datas.length; i += 1) {
46
+ const data = arrayify(datas[i])
47
+
48
+ // Update the bytes offset
49
+ result[i] = numPad(byteCount)
50
+
51
+ // The length and padded value of data
52
+ result.push(numPad(data.length))
53
+ result.push(bytesPad(data))
54
+ byteCount += 32 + Math.ceil(data.length / 32) * 32
55
+ }
56
+
57
+ return hexConcat(result)
58
+ }
59
+
60
+ function _parseBytes(result: string, start: number): null | string {
61
+ if (result === '0x') {
62
+ return null
63
+ }
64
+
65
+ const offset = BigNumber.from(
66
+ hexDataSlice(result, start, start + 32),
67
+ ).toNumber()
68
+ const length = BigNumber.from(
69
+ hexDataSlice(result, offset, offset + 32),
70
+ ).toNumber()
71
+
72
+ return hexDataSlice(result, offset + 32, offset + 32 + length)
73
+ }
74
+
75
+ function _parseString(result: string, start: number): null | string {
76
+ try {
77
+ const bytes = _parseBytes(result, start)
78
+ if (bytes == null) return null
79
+ return toUtf8String(bytes)
80
+ } catch (error) {}
81
+ return null
82
+ }
83
+
84
+ const ccipLookup = async (
85
+ provider: BaseProvider,
86
+ transaction: TransactionRequest,
87
+ result: string,
88
+ ) => {
89
+ const txSender = transaction.to!
90
+ try {
91
+ const data = hexDataSlice(result, 4)
92
+
93
+ // Check the sender of the OffchainLookup matches the transaction
94
+ const sender = hexDataSlice(data, 0, 32)
95
+ if (!BigNumber.from(sender).eq(txSender)) {
96
+ throw new Error('CCIP Read sender did not match')
97
+ }
98
+
99
+ // Read the URLs from the response
100
+ const urls: Array<string> = []
101
+ const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber()
102
+ const urlsLength = BigNumber.from(
103
+ hexDataSlice(data, urlsOffset, urlsOffset + 32),
104
+ ).toNumber()
105
+ const urlsData = hexDataSlice(data, urlsOffset + 32)
106
+ for (let u = 0; u < urlsLength; u += 1) {
107
+ const url = _parseString(urlsData, u * 32)
108
+ if (url == null) {
109
+ throw new Error('CCIP Read contained corrupt URL string')
110
+ }
111
+ urls.push(url)
112
+ }
113
+
114
+ // Get the CCIP calldata to forward
115
+ const calldata = _parseBytes(data, 64)
116
+
117
+ // Get the callbackSelector (bytes4)
118
+ if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {
119
+ throw new Error('CCIP Read callback selected included junk')
120
+ }
121
+ const callbackSelector = hexDataSlice(data, 96, 100)
122
+
123
+ // Get the extra data to send back to the contract as context
124
+ const extraData = _parseBytes(data, 128)
125
+
126
+ const ccipResult = await provider.ccipReadFetch(
127
+ <Transaction>transaction,
128
+ calldata!,
129
+ urls,
130
+ )
131
+ if (ccipResult == null) {
132
+ throw new Error('CCIP Read disabled or provided no URLs')
133
+ }
134
+
135
+ const tx = {
136
+ to: sender,
137
+ data: hexConcat([
138
+ callbackSelector,
139
+ encodeBytes([ccipResult, extraData!]),
140
+ ]),
141
+ }
142
+
143
+ return await provider._call(tx, 'latest', 1)
144
+ } catch (error) {
145
+ console.error(error)
146
+ }
147
+ }
148
+
149
+ export default ccipLookup
@@ -0,0 +1 @@
1
+ export const EMPTY_ADDRESS = '0x0000000000000000000000000000000000000000'
@@ -1,5 +1,5 @@
1
1
  import contentHash from '@ensdomains/content-hash'
2
- import { utils } from 'ethers'
2
+ import { isHexString } from '@ethersproject/bytes'
3
3
 
4
4
  export type DecodedContentHash = {
5
5
  protocolType?: any
@@ -19,20 +19,23 @@ const supportedCodecs = [
19
19
 
20
20
  function matchProtocol(text: string) {
21
21
  return (
22
- text.match(/^(ipfs|sia|ipns|bzz|onion|onion3|arweave):\/\/(.*)/) ||
22
+ text.match(/^(ipfs|sia|ipns|bzz|onion|onion3|arweave|ar):\/\/(.*)/) ||
23
23
  text.match(/\/(ipfs)\/(.*)/) ||
24
24
  text.match(/\/(ipns)\/(.*)/)
25
25
  )
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) {
@@ -52,7 +55,7 @@ export function decodeContenthash(encoded: any) {
52
55
  } else if (codec === 'skynet-ns') {
53
56
  protocolType = 'sia'
54
57
  } else if (codec === 'arweave-ns') {
55
- protocolType = 'arweave'
58
+ protocolType = 'ar'
56
59
  } else {
57
60
  decoded = encoded
58
61
  }
@@ -73,19 +76,19 @@ export function validateContent(encoded: any) {
73
76
  export function isValidContenthash(encoded: any) {
74
77
  try {
75
78
  const codec = contentHash.getCodec(encoded)
76
- return utils.isHexString(encoded) && supportedCodecs.includes(codec)
79
+ return isHexString(encoded) && supportedCodecs.includes(codec)
77
80
  } catch (e) {
78
81
  console.log(e)
79
82
  }
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
- } else if (contentType === 'arweave') {
134
- if (content.length == 43) {
135
- encoded = '0x' + contentHash.encode('arweave-ns', content)
135
+ } else if (contentType === 'arweave' || contentType === 'ar') {
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`
@@ -1,3 +1,5 @@
1
+ import { BigNumber, BigNumberish } from '@ethersproject/bignumber/lib/bignumber'
2
+
1
3
  const CANNOT_UNWRAP = 1
2
4
  const CANNOT_BURN_FUSES = 2
3
5
  const CANNOT_TRANSFER = 4
@@ -7,7 +9,7 @@ const CANNOT_CREATE_SUBDOMAIN = 32
7
9
  const PARENT_CANNOT_CONTROL = 64
8
10
  const CAN_DO_EVERYTHING = 0
9
11
 
10
- export const testable = {
12
+ export const fuseEnum = {
11
13
  CANNOT_UNWRAP,
12
14
  CANNOT_BURN_FUSES,
13
15
  CANNOT_TRANSFER,
@@ -15,9 +17,144 @@ export const testable = {
15
17
  CANNOT_SET_TTL,
16
18
  CANNOT_CREATE_SUBDOMAIN,
17
19
  PARENT_CANNOT_CONTROL,
18
- }
20
+ } as const
21
+
22
+ export type FuseOptions = { -readonly [K in keyof typeof fuseEnum]?: boolean }
23
+
24
+ export const unnamedFuses = [
25
+ 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144,
26
+ 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864,
27
+ 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296,
28
+ ] as const
19
29
 
20
- export default {
21
- ...testable,
30
+ const fullFuseEnum = {
31
+ ...fuseEnum,
22
32
  CAN_DO_EVERYTHING,
23
33
  }
34
+
35
+ export type FuseObj = typeof fuseEnum
36
+ export type CurrentFuses = { [f in keyof FuseObj]: boolean } & {
37
+ CAN_DO_EVERYTHING: boolean
38
+ }
39
+ export type UnnamedFuseType = typeof unnamedFuses
40
+ export type Fuse = keyof FuseObj
41
+ export type UnnamedFuseValues = UnnamedFuseType[number]
42
+
43
+ // We need this type so that the following type isn't infinite. This type limits the max length of the fuse array to 7.
44
+ export type FuseArrayPossibilities =
45
+ | [Fuse]
46
+ | [Fuse, Fuse]
47
+ | [Fuse, Fuse, Fuse]
48
+ | [Fuse, Fuse, Fuse, Fuse]
49
+ | [Fuse, Fuse, Fuse, Fuse, Fuse]
50
+ | [Fuse, Fuse, Fuse, Fuse, Fuse, Fuse]
51
+ | [Fuse, Fuse, Fuse, Fuse, Fuse, Fuse, Fuse]
52
+
53
+ /**
54
+ * This type creates a type error if there are any duplicate fuses.
55
+ * It effectively works like a reduce function, starting with 0 included types, adding a type each time, and then checking for duplicates.
56
+ *
57
+ * @template A The array to check for duplicates.
58
+ * @template B The union of all checked existing types.
59
+ */
60
+ // CLAUSE A: This extension unwraps the type as a fuse tuple.
61
+ type FusesWithoutDuplicates<A, B = never> = A extends FuseArrayPossibilities
62
+ ? // CLAUSE A > TRUE: CLAUSE B: Pick out the first item in the current array, separating the current item from the rest.
63
+ A extends [infer Head, ...infer Tail]
64
+ ? // CLAUSE B > TRUE: CLAUSE C: Check if the current item is a duplicate based on the input union.
65
+ Head extends B
66
+ ? // CLAUSE C > TRUE: Duplicate found, return an empty array to throw a type error.
67
+ []
68
+ : // CLAUSE C > FALSE: Return a new array to continue the recursion, adds the current item type to the union.
69
+ [Head, ...FusesWithoutDuplicates<Tail, Head | B>]
70
+ : // CLAUSE B > FALSE: Return the input array as there is no more array elements to check.
71
+ A
72
+ : // CLAUSE A > FALSE: Return an empty array as it isn't a fuse tuple.
73
+ []
74
+
75
+ export type NamedFusesToBurn = FusesWithoutDuplicates<FuseArrayPossibilities>
76
+
77
+ export type FusePropsNamedArray = {
78
+ namedFusesToBurn: NamedFusesToBurn
79
+ }
80
+
81
+ export type FusePropsUnnamedArray = {
82
+ unnamedFusesToBurn: UnnamedFuseValues[]
83
+ }
84
+
85
+ export type FusePropsNumber = {
86
+ fuseNumberToBurn: number
87
+ }
88
+
89
+ export type FuseProps =
90
+ | (Partial<FusePropsNamedArray> & FusePropsUnnamedArray)
91
+ | (FusePropsNamedArray & Partial<FusePropsUnnamedArray>)
92
+ | FusePropsNumber
93
+
94
+ export const validateFuses = (fuses: FuseProps) => {
95
+ const isNumber = 'fuseNumberToBurn' in fuses
96
+ const hasNamedArray = 'namedFusesToBurn' in fuses
97
+ const hasUnnamedArray = 'unnamedFusesToBurn' in fuses
98
+
99
+ let encodedFuses: number = 0
100
+
101
+ if (isNumber) {
102
+ if (fuses.fuseNumberToBurn > 2 ** 32 || fuses.fuseNumberToBurn < 1) {
103
+ throw new Error(
104
+ `Fuse number must be limited to uint32, ${
105
+ fuses.fuseNumberToBurn
106
+ } was too ${fuses.fuseNumberToBurn < 1 ? 'low' : 'high'}.`,
107
+ )
108
+ } else if (fuses.fuseNumberToBurn % 1 !== 0) {
109
+ throw new Error(
110
+ `Fuse number must be an integer, ${fuses.fuseNumberToBurn} was not.`,
111
+ )
112
+ }
113
+ encodedFuses = fuses.fuseNumberToBurn
114
+ } else {
115
+ if (!hasNamedArray && !hasUnnamedArray) {
116
+ throw new Error('Please provide fuses to burn')
117
+ }
118
+ if (hasNamedArray) {
119
+ for (const fuse of fuses.namedFusesToBurn!) {
120
+ if (!(fuse in fuseEnum)) {
121
+ throw new Error(`${fuse} is not a valid named fuse.`)
122
+ }
123
+ encodedFuses |= fuseEnum[fuse]
124
+ }
125
+ }
126
+ if (hasUnnamedArray) {
127
+ for (const fuse of fuses.unnamedFusesToBurn!) {
128
+ if (!unnamedFuses.includes(fuse)) {
129
+ throw new Error(
130
+ `${fuse} is not a valid unnamed fuse. If you are trying to burn a named fuse, use the namedFusesToBurn property.`,
131
+ )
132
+ }
133
+ encodedFuses |= fuse
134
+ }
135
+ }
136
+ }
137
+
138
+ return encodedFuses
139
+ }
140
+
141
+ export const decodeFuses = (fuses: BigNumberish) => {
142
+ const bnFuses = BigNumber.from(fuses)
143
+
144
+ const fuseObj = Object.fromEntries(
145
+ Object.keys(fuseEnum).map((fuse) => [
146
+ fuse,
147
+ bnFuses.and(fuseEnum[fuse as keyof typeof fuseEnum]).gt(0),
148
+ ]),
149
+ )
150
+
151
+ if (bnFuses.eq(0)) {
152
+ fuseObj.CAN_DO_EVERYTHING = true
153
+ } else {
154
+ fuseObj.CAN_DO_EVERYTHING = false
155
+ }
156
+
157
+ return fuseObj as CurrentFuses
158
+ }
159
+
160
+ export default fullFuseEnum
@@ -1,18 +1,13 @@
1
- import { ethers } from 'ethers'
2
- import { FuseOptions } from '../@types/FuseOptions'
3
- import fuses from './fuses'
1
+ import { BigNumber } from '@ethersproject/bignumber/lib/bignumber'
2
+ import fuses, { FuseOptions } from './fuses'
4
3
 
5
4
  export default (fuseOptions: FuseOptions) => {
6
- const fuseKeys = Object.keys(fuseOptions)
7
- .filter((opt) => fuseOptions[opt as keyof FuseOptions] === true)
8
- .map((opt) =>
9
- opt
10
- .split(/(?=[A-Z])/)
11
- .join('_')
12
- .toUpperCase(),
13
- )
5
+ const fuseKeys = Object.keys(fuseOptions).filter(
6
+ (opt) => fuseOptions[opt as keyof FuseOptions] === true,
7
+ )
8
+
14
9
  const bigNumberFuses = fuseKeys.reduce((prev, curr) => {
15
10
  return prev.or(fuses[curr as keyof typeof fuses])
16
- }, ethers.BigNumber.from(0))
11
+ }, BigNumber.from(0))
17
12
  return bigNumberFuses.toHexString()
18
13
  }
@@ -1,6 +1,8 @@
1
- import { solidityKeccak256 } from 'ethers/lib/utils'
1
+ import { keccak256 as solidityKeccak256 } from '@ethersproject/solidity'
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,8 @@
1
- import { concat, hexlify, keccak256, toUtf8Bytes } from 'ethers/lib/utils'
1
+ import { concat, hexlify } from '@ethersproject/bytes'
2
+ import { keccak256 } from '@ethersproject/keccak256'
3
+ import { toUtf8Bytes } from '@ethersproject/strings/lib/utf8'
2
4
  import uts46 from 'idna-uts46-hx/uts46bundle.js'
5
+ import { decodeLabelhash, isEncodedLabelhash } from './labels'
3
6
 
4
7
  const zeros = new Uint8Array(32)
5
8
  zeros.fill(0)
@@ -7,16 +10,21 @@ zeros.fill(0)
7
10
  export const normalise = (name: string) =>
8
11
  name ? uts46.toUnicode(name, { useStd3ASCII: true }) : name
9
12
 
10
- export const namehash = (inputName: string): string => {
13
+ export const namehash = (name: string): string => {
11
14
  let result: string | Uint8Array = zeros
12
15
 
13
- const name = normalise(inputName)
14
-
15
16
  if (name) {
16
17
  const labels = name.split('.')
17
18
 
18
- for (var i = labels.length - 1; i >= 0; i--) {
19
- const labelSha = keccak256(toUtf8Bytes(labels[i]))
19
+ for (let i = labels.length - 1; i >= 0; i -= 1) {
20
+ let labelSha: string
21
+ if (isEncodedLabelhash(labels[i])) {
22
+ labelSha = decodeLabelhash(labels[i])
23
+ } else {
24
+ const normalised = normalise(labels[i])
25
+ labelSha = keccak256(toUtf8Bytes(normalised))
26
+ }
27
+
20
28
  result = keccak256(concat([result, labelSha]))
21
29
  }
22
30
  } else {