@ensdomains/ensjs 2.1.0 → 3.0.0-alpha.11

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 (538) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +651 -99
  3. package/dist/cjs/GqlManager.d.ts +9 -0
  4. package/dist/cjs/GqlManager.js +102 -0
  5. package/dist/cjs/contracts/baseRegistrar.d.ts +3 -0
  6. package/dist/cjs/contracts/baseRegistrar.js +4 -0
  7. package/dist/cjs/contracts/ethRegistrarController.d.ts +3 -0
  8. package/dist/cjs/contracts/ethRegistrarController.js +4 -0
  9. package/dist/cjs/contracts/getContractAddress.d.ts +3 -0
  10. package/dist/cjs/contracts/getContractAddress.js +46 -0
  11. package/dist/cjs/contracts/index.d.ts +16 -0
  12. package/dist/cjs/contracts/index.js +37 -0
  13. package/dist/cjs/contracts/multicall.d.ts +3 -0
  14. package/dist/cjs/contracts/multicall.js +22 -0
  15. package/dist/cjs/contracts/nameWrapper.d.ts +3 -0
  16. package/dist/cjs/contracts/nameWrapper.js +4 -0
  17. package/dist/cjs/contracts/publicResolver.d.ts +3 -0
  18. package/dist/cjs/contracts/publicResolver.js +4 -0
  19. package/dist/cjs/contracts/registry.d.ts +3 -0
  20. package/dist/cjs/contracts/registry.js +4 -0
  21. package/dist/cjs/contracts/reverseRegistrar.d.ts +3 -0
  22. package/dist/cjs/contracts/reverseRegistrar.js +4 -0
  23. package/dist/cjs/contracts/types.d.ts +2 -0
  24. package/dist/cjs/contracts/types.js +2 -0
  25. package/dist/cjs/contracts/universalResolver.d.ts +3 -0
  26. package/dist/cjs/contracts/universalResolver.js +4 -0
  27. package/dist/cjs/functions/batch.d.ts +9 -0
  28. package/dist/cjs/functions/batch.js +21 -0
  29. package/dist/cjs/functions/batchWrappers.d.ts +29 -0
  30. package/dist/cjs/functions/batchWrappers.js +71 -0
  31. package/dist/cjs/functions/burnFuses.d.ts +5 -0
  32. package/dist/cjs/functions/burnFuses.js +14 -0
  33. package/dist/cjs/functions/createSubname.d.ts +17 -0
  34. package/dist/cjs/functions/createSubname.js +42 -0
  35. package/dist/cjs/functions/deleteSubname.d.ts +4 -0
  36. package/dist/cjs/functions/deleteSubname.js +10 -0
  37. package/dist/cjs/functions/getDNSOwner.d.ts +7 -0
  38. package/dist/cjs/functions/getDNSOwner.js +81 -0
  39. package/dist/cjs/functions/getExpiry.d.ts +19 -0
  40. package/dist/cjs/functions/getExpiry.js +90 -0
  41. package/dist/cjs/functions/getFuses.d.ts +16 -0
  42. package/dist/cjs/functions/getFuses.js +53 -0
  43. package/dist/cjs/functions/getHistory.d.ts +54 -0
  44. package/dist/cjs/functions/getHistory.js +279 -0
  45. package/dist/cjs/functions/getName.d.ts +19 -0
  46. package/dist/cjs/functions/getName.js +34 -0
  47. package/dist/cjs/functions/getNames.d.ts +40 -0
  48. package/dist/cjs/functions/getNames.js +222 -0
  49. package/dist/cjs/functions/getOwner.d.ts +14 -0
  50. package/dist/cjs/functions/getOwner.js +140 -0
  51. package/dist/cjs/functions/getPrice.d.ts +13 -0
  52. package/dist/cjs/functions/getPrice.js +50 -0
  53. package/dist/cjs/functions/getProfile.d.ts +33 -0
  54. package/dist/cjs/functions/getProfile.js +346 -0
  55. package/dist/cjs/functions/getRecords.d.ts +33 -0
  56. package/dist/cjs/functions/getRecords.js +11 -0
  57. package/dist/cjs/functions/getResolver.d.ts +9 -0
  58. package/dist/cjs/functions/getResolver.js +24 -0
  59. package/dist/cjs/functions/getSpecificRecord.d.ts +73 -0
  60. package/dist/cjs/functions/getSpecificRecord.js +275 -0
  61. package/dist/cjs/functions/getSubnames.d.ts +26 -0
  62. package/dist/cjs/functions/getSubnames.js +154 -0
  63. package/dist/cjs/functions/initialGetters.d.ts +11 -0
  64. package/dist/cjs/functions/initialGetters.js +40 -0
  65. package/dist/cjs/functions/setName.d.ts +5 -0
  66. package/dist/cjs/functions/setName.js +12 -0
  67. package/dist/cjs/functions/setRecord.d.ts +18 -0
  68. package/dist/cjs/functions/setRecord.js +27 -0
  69. package/dist/cjs/functions/setRecords.d.ts +6 -0
  70. package/dist/cjs/functions/setRecords.js +24 -0
  71. package/dist/cjs/functions/setResolver.d.ts +5 -0
  72. package/dist/cjs/functions/setResolver.js +22 -0
  73. package/dist/cjs/functions/transferName.d.ts +6 -0
  74. package/dist/cjs/functions/transferName.js +29 -0
  75. package/dist/cjs/functions/transferSubname.d.ts +15 -0
  76. package/dist/cjs/functions/transferSubname.js +26 -0
  77. package/dist/cjs/functions/unwrapName.d.ts +5 -0
  78. package/dist/cjs/functions/unwrapName.js +23 -0
  79. package/dist/cjs/functions/wrapName.d.ts +10 -0
  80. package/dist/cjs/functions/wrapName.js +66 -0
  81. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +508 -0
  82. package/dist/cjs/generated/BaseRegistrarImplementation.js +2 -0
  83. package/dist/cjs/generated/DNSRegistrar.d.ts +224 -0
  84. package/dist/cjs/generated/DNSRegistrar.js +2 -0
  85. package/dist/cjs/generated/DNSSECImpl.d.ts +402 -0
  86. package/dist/cjs/generated/DNSSECImpl.js +2 -0
  87. package/dist/cjs/generated/DefaultReverseResolver.d.ts +66 -0
  88. package/dist/cjs/generated/DefaultReverseResolver.js +2 -0
  89. package/dist/cjs/generated/ENSRegistry.d.ts +274 -0
  90. package/dist/cjs/generated/ENSRegistry.js +2 -0
  91. package/dist/cjs/generated/ETHRegistrarController.d.ts +321 -0
  92. package/dist/cjs/generated/ETHRegistrarController.js +2 -0
  93. package/dist/cjs/generated/Multicall.d.ts +292 -0
  94. package/dist/cjs/generated/Multicall.js +2 -0
  95. package/dist/cjs/generated/NameWrapper.d.ts +814 -0
  96. package/dist/cjs/generated/NameWrapper.js +2 -0
  97. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +76 -0
  98. package/dist/cjs/generated/P256SHA256Algorithm.js +2 -0
  99. package/dist/cjs/generated/PublicResolver.d.ts +566 -0
  100. package/dist/cjs/generated/PublicResolver.js +2 -0
  101. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +46 -0
  102. package/dist/cjs/generated/RSASHA1Algorithm.js +2 -0
  103. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +46 -0
  104. package/dist/cjs/generated/RSASHA256Algorithm.js +2 -0
  105. package/dist/cjs/generated/ReverseRegistrar.d.ts +268 -0
  106. package/dist/cjs/generated/ReverseRegistrar.js +2 -0
  107. package/dist/cjs/generated/Root.d.ts +173 -0
  108. package/dist/cjs/generated/Root.js +2 -0
  109. package/dist/cjs/generated/SHA1Digest.d.ts +67 -0
  110. package/dist/cjs/generated/SHA1Digest.js +2 -0
  111. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +76 -0
  112. package/dist/cjs/generated/SHA1NSEC3Digest.js +2 -0
  113. package/dist/cjs/generated/SHA256Digest.d.ts +67 -0
  114. package/dist/cjs/generated/SHA256Digest.js +2 -0
  115. package/dist/cjs/generated/StaticMetadataService.d.ts +42 -0
  116. package/dist/cjs/generated/StaticMetadataService.js +2 -0
  117. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +42 -0
  118. package/dist/cjs/generated/TLDPublicSuffixList.js +2 -0
  119. package/dist/cjs/generated/UniversalResolver.d.ts +82 -0
  120. package/dist/cjs/generated/UniversalResolver.js +2 -0
  121. package/dist/cjs/generated/common.d.ts +22 -0
  122. package/dist/cjs/generated/common.js +2 -0
  123. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
  124. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +770 -0
  125. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +67 -0
  126. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +273 -0
  127. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +56 -0
  128. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +478 -0
  129. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
  130. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +87 -0
  131. package/dist/cjs/generated/factories/ENSRegistry__factory.d.ts +52 -0
  132. package/dist/cjs/generated/factories/ENSRegistry__factory.js +439 -0
  133. package/dist/cjs/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
  134. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +521 -0
  135. package/dist/cjs/generated/factories/Multicall__factory.d.ts +42 -0
  136. package/dist/cjs/generated/factories/Multicall__factory.js +457 -0
  137. package/dist/cjs/generated/factories/NameWrapper__factory.d.ts +57 -0
  138. package/dist/cjs/generated/factories/NameWrapper__factory.js +1331 -0
  139. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +22 -0
  140. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +48 -0
  141. package/dist/cjs/generated/factories/PublicResolver__factory.d.ts +46 -0
  142. package/dist/cjs/generated/factories/PublicResolver__factory.js +892 -0
  143. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +22 -0
  144. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +48 -0
  145. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +22 -0
  146. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +48 -0
  147. package/dist/cjs/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
  148. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +340 -0
  149. package/dist/cjs/generated/factories/Root__factory.d.ts +52 -0
  150. package/dist/cjs/generated/factories/Root__factory.js +243 -0
  151. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +22 -0
  152. package/dist/cjs/generated/factories/SHA1Digest__factory.js +43 -0
  153. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +22 -0
  154. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +48 -0
  155. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +22 -0
  156. package/dist/cjs/generated/factories/SHA256Digest__factory.js +43 -0
  157. package/dist/cjs/generated/factories/StaticMetadataService__factory.d.ts +32 -0
  158. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +49 -0
  159. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +22 -0
  160. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +38 -0
  161. package/dist/cjs/generated/factories/UniversalResolver__factory.d.ts +42 -0
  162. package/dist/cjs/generated/factories/UniversalResolver__factory.js +204 -0
  163. package/dist/cjs/generated/factories/index.d.ts +20 -0
  164. package/dist/cjs/generated/factories/index.js +46 -0
  165. package/dist/cjs/generated/index.d.ts +41 -0
  166. package/dist/cjs/generated/index.js +67 -0
  167. package/dist/cjs/index.d.ts +478 -0
  168. package/dist/cjs/index.js +248 -0
  169. package/dist/cjs/utils/contentHash.d.ts +28 -0
  170. package/dist/cjs/utils/contentHash.js +164 -0
  171. package/dist/cjs/utils/createReverseNode.d.ts +2 -0
  172. package/dist/cjs/utils/createReverseNode.js +3 -0
  173. package/dist/cjs/utils/format.d.ts +3 -0
  174. package/dist/cjs/utils/format.js +9 -0
  175. package/dist/cjs/utils/fuses.d.ts +20 -0
  176. package/dist/cjs/utils/fuses.js +24 -0
  177. package/dist/cjs/utils/generateFuseInput.d.ts +3 -0
  178. package/dist/cjs/utils/generateFuseInput.js +19 -0
  179. package/dist/cjs/utils/hexEncodedName.d.ts +1 -0
  180. package/dist/cjs/utils/hexEncodedName.js +9 -0
  181. package/dist/cjs/utils/labels.d.ts +14 -0
  182. package/dist/cjs/utils/labels.js +113 -0
  183. package/dist/cjs/utils/makeHashIndexes.d.ts +2 -0
  184. package/dist/cjs/utils/makeHashIndexes.js +8 -0
  185. package/dist/cjs/utils/normalise.d.ts +2 -0
  186. package/dist/cjs/utils/normalise.js +35 -0
  187. package/dist/cjs/utils/recordHelpers.d.ts +16 -0
  188. package/dist/cjs/utils/recordHelpers.js +71 -0
  189. package/dist/cjs/utils/registerHelpers.d.ts +26 -0
  190. package/dist/cjs/utils/registerHelpers.js +52 -0
  191. package/dist/cjs/utils/singleCall.d.ts +9 -0
  192. package/dist/cjs/utils/singleCall.js +7 -0
  193. package/dist/cjs/utils/validation.d.ts +8 -0
  194. package/dist/cjs/utils/validation.js +73 -0
  195. package/dist/cjs/utils/wrapperExpiry.d.ts +5 -0
  196. package/dist/cjs/utils/wrapperExpiry.js +30 -0
  197. package/dist/cjs/utils/writeTx.d.ts +4 -0
  198. package/dist/cjs/utils/writeTx.js +3 -0
  199. package/dist/esm/GqlManager.d.ts +9 -0
  200. package/dist/esm/GqlManager.js +74 -0
  201. package/dist/esm/contracts/baseRegistrar.d.ts +3 -0
  202. package/dist/esm/contracts/baseRegistrar.js +2 -0
  203. package/dist/esm/contracts/ethRegistrarController.d.ts +3 -0
  204. package/dist/esm/contracts/ethRegistrarController.js +2 -0
  205. package/dist/esm/contracts/getContractAddress.d.ts +3 -0
  206. package/dist/esm/contracts/getContractAddress.js +42 -0
  207. package/dist/esm/contracts/index.d.ts +16 -0
  208. package/dist/esm/contracts/index.js +29 -0
  209. package/dist/esm/contracts/multicall.d.ts +3 -0
  210. package/dist/esm/contracts/multicall.js +20 -0
  211. package/dist/esm/contracts/nameWrapper.d.ts +3 -0
  212. package/dist/esm/contracts/nameWrapper.js +2 -0
  213. package/dist/esm/contracts/publicResolver.d.ts +3 -0
  214. package/dist/esm/contracts/publicResolver.js +2 -0
  215. package/dist/esm/contracts/registry.d.ts +3 -0
  216. package/dist/esm/contracts/registry.js +2 -0
  217. package/dist/esm/contracts/reverseRegistrar.d.ts +3 -0
  218. package/dist/esm/contracts/reverseRegistrar.js +2 -0
  219. package/dist/esm/contracts/types.d.ts +2 -0
  220. package/dist/esm/contracts/types.js +1 -0
  221. package/dist/esm/contracts/universalResolver.d.ts +3 -0
  222. package/dist/esm/contracts/universalResolver.js +2 -0
  223. package/dist/esm/functions/batch.d.ts +9 -0
  224. package/dist/esm/functions/batch.js +19 -0
  225. package/dist/esm/functions/batchWrappers.d.ts +29 -0
  226. package/dist/esm/functions/batchWrappers.js +68 -0
  227. package/dist/esm/functions/burnFuses.d.ts +5 -0
  228. package/dist/esm/functions/burnFuses.js +8 -0
  229. package/dist/esm/functions/createSubname.d.ts +17 -0
  230. package/dist/esm/functions/createSubname.js +36 -0
  231. package/dist/esm/functions/deleteSubname.d.ts +4 -0
  232. package/dist/esm/functions/deleteSubname.js +7 -0
  233. package/dist/esm/functions/getDNSOwner.d.ts +7 -0
  234. package/dist/esm/functions/getDNSOwner.js +51 -0
  235. package/dist/esm/functions/getExpiry.d.ts +19 -0
  236. package/dist/esm/functions/getExpiry.js +88 -0
  237. package/dist/esm/functions/getFuses.d.ts +16 -0
  238. package/dist/esm/functions/getFuses.js +51 -0
  239. package/dist/esm/functions/getHistory.d.ts +54 -0
  240. package/dist/esm/functions/getHistory.js +273 -0
  241. package/dist/esm/functions/getName.d.ts +19 -0
  242. package/dist/esm/functions/getName.js +32 -0
  243. package/dist/esm/functions/getNames.d.ts +40 -0
  244. package/dist/esm/functions/getNames.js +220 -0
  245. package/dist/esm/functions/getOwner.d.ts +14 -0
  246. package/dist/esm/functions/getOwner.js +138 -0
  247. package/dist/esm/functions/getPrice.d.ts +13 -0
  248. package/dist/esm/functions/getPrice.js +48 -0
  249. package/dist/esm/functions/getProfile.d.ts +33 -0
  250. package/dist/esm/functions/getProfile.js +343 -0
  251. package/dist/esm/functions/getRecords.d.ts +33 -0
  252. package/dist/esm/functions/getRecords.js +8 -0
  253. package/dist/esm/functions/getResolver.d.ts +9 -0
  254. package/dist/esm/functions/getResolver.js +22 -0
  255. package/dist/esm/functions/getSpecificRecord.d.ts +73 -0
  256. package/dist/esm/functions/getSpecificRecord.js +272 -0
  257. package/dist/esm/functions/getSubnames.d.ts +26 -0
  258. package/dist/esm/functions/getSubnames.js +152 -0
  259. package/dist/esm/functions/initialGetters.d.ts +11 -0
  260. package/dist/esm/functions/initialGetters.js +11 -0
  261. package/dist/esm/functions/setName.d.ts +5 -0
  262. package/dist/esm/functions/setName.js +9 -0
  263. package/dist/esm/functions/setRecord.d.ts +18 -0
  264. package/dist/esm/functions/setRecord.js +24 -0
  265. package/dist/esm/functions/setRecords.d.ts +6 -0
  266. package/dist/esm/functions/setRecords.js +21 -0
  267. package/dist/esm/functions/setResolver.d.ts +5 -0
  268. package/dist/esm/functions/setResolver.js +19 -0
  269. package/dist/esm/functions/transferName.d.ts +6 -0
  270. package/dist/esm/functions/transferName.js +26 -0
  271. package/dist/esm/functions/transferSubname.d.ts +15 -0
  272. package/dist/esm/functions/transferSubname.js +23 -0
  273. package/dist/esm/functions/unwrapName.d.ts +5 -0
  274. package/dist/esm/functions/unwrapName.js +20 -0
  275. package/dist/esm/functions/wrapName.d.ts +10 -0
  276. package/dist/esm/functions/wrapName.js +60 -0
  277. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +508 -0
  278. package/dist/esm/generated/BaseRegistrarImplementation.js +1 -0
  279. package/dist/esm/generated/DNSRegistrar.d.ts +224 -0
  280. package/dist/esm/generated/DNSRegistrar.js +1 -0
  281. package/dist/esm/generated/DNSSECImpl.d.ts +402 -0
  282. package/dist/esm/generated/DNSSECImpl.js +1 -0
  283. package/dist/esm/generated/DefaultReverseResolver.d.ts +66 -0
  284. package/dist/esm/generated/DefaultReverseResolver.js +1 -0
  285. package/dist/esm/generated/ENSRegistry.d.ts +274 -0
  286. package/dist/esm/generated/ENSRegistry.js +1 -0
  287. package/dist/esm/generated/ETHRegistrarController.d.ts +321 -0
  288. package/dist/esm/generated/ETHRegistrarController.js +1 -0
  289. package/dist/esm/generated/Multicall.d.ts +292 -0
  290. package/dist/esm/generated/Multicall.js +1 -0
  291. package/dist/esm/generated/NameWrapper.d.ts +814 -0
  292. package/dist/esm/generated/NameWrapper.js +1 -0
  293. package/dist/esm/generated/P256SHA256Algorithm.d.ts +76 -0
  294. package/dist/esm/generated/P256SHA256Algorithm.js +1 -0
  295. package/dist/esm/generated/PublicResolver.d.ts +566 -0
  296. package/dist/esm/generated/PublicResolver.js +1 -0
  297. package/dist/esm/generated/RSASHA1Algorithm.d.ts +46 -0
  298. package/dist/esm/generated/RSASHA1Algorithm.js +1 -0
  299. package/dist/esm/generated/RSASHA256Algorithm.d.ts +46 -0
  300. package/dist/esm/generated/RSASHA256Algorithm.js +1 -0
  301. package/dist/esm/generated/ReverseRegistrar.d.ts +268 -0
  302. package/dist/esm/generated/ReverseRegistrar.js +1 -0
  303. package/dist/esm/generated/Root.d.ts +173 -0
  304. package/dist/esm/generated/Root.js +1 -0
  305. package/dist/esm/generated/SHA1Digest.d.ts +67 -0
  306. package/dist/esm/generated/SHA1Digest.js +1 -0
  307. package/dist/esm/generated/SHA1NSEC3Digest.d.ts +76 -0
  308. package/dist/esm/generated/SHA1NSEC3Digest.js +1 -0
  309. package/dist/esm/generated/SHA256Digest.d.ts +67 -0
  310. package/dist/esm/generated/SHA256Digest.js +1 -0
  311. package/dist/esm/generated/StaticMetadataService.d.ts +42 -0
  312. package/dist/esm/generated/StaticMetadataService.js +1 -0
  313. package/dist/esm/generated/TLDPublicSuffixList.d.ts +42 -0
  314. package/dist/esm/generated/TLDPublicSuffixList.js +1 -0
  315. package/dist/esm/generated/UniversalResolver.d.ts +82 -0
  316. package/dist/esm/generated/UniversalResolver.js +1 -0
  317. package/dist/esm/generated/common.d.ts +22 -0
  318. package/dist/esm/generated/common.js +1 -0
  319. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
  320. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +766 -0
  321. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +67 -0
  322. package/dist/esm/generated/factories/DNSRegistrar__factory.js +269 -0
  323. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +56 -0
  324. package/dist/esm/generated/factories/DNSSECImpl__factory.js +474 -0
  325. package/dist/esm/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
  326. package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +83 -0
  327. package/dist/esm/generated/factories/ENSRegistry__factory.d.ts +52 -0
  328. package/dist/esm/generated/factories/ENSRegistry__factory.js +435 -0
  329. package/dist/esm/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
  330. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +517 -0
  331. package/dist/esm/generated/factories/Multicall__factory.d.ts +42 -0
  332. package/dist/esm/generated/factories/Multicall__factory.js +453 -0
  333. package/dist/esm/generated/factories/NameWrapper__factory.d.ts +57 -0
  334. package/dist/esm/generated/factories/NameWrapper__factory.js +1327 -0
  335. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +22 -0
  336. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +44 -0
  337. package/dist/esm/generated/factories/PublicResolver__factory.d.ts +46 -0
  338. package/dist/esm/generated/factories/PublicResolver__factory.js +888 -0
  339. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +22 -0
  340. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +44 -0
  341. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +22 -0
  342. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +44 -0
  343. package/dist/esm/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
  344. package/dist/esm/generated/factories/ReverseRegistrar__factory.js +336 -0
  345. package/dist/esm/generated/factories/Root__factory.d.ts +52 -0
  346. package/dist/esm/generated/factories/Root__factory.js +239 -0
  347. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +22 -0
  348. package/dist/esm/generated/factories/SHA1Digest__factory.js +39 -0
  349. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +22 -0
  350. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +44 -0
  351. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +22 -0
  352. package/dist/esm/generated/factories/SHA256Digest__factory.js +39 -0
  353. package/dist/esm/generated/factories/StaticMetadataService__factory.d.ts +32 -0
  354. package/dist/esm/generated/factories/StaticMetadataService__factory.js +45 -0
  355. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +22 -0
  356. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +34 -0
  357. package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +42 -0
  358. package/dist/esm/generated/factories/UniversalResolver__factory.js +200 -0
  359. package/dist/esm/generated/factories/index.d.ts +20 -0
  360. package/dist/esm/generated/factories/index.js +23 -0
  361. package/dist/esm/generated/index.d.ts +41 -0
  362. package/dist/esm/generated/index.js +21 -0
  363. package/dist/esm/index.d.ts +478 -0
  364. package/dist/esm/index.js +213 -0
  365. package/dist/esm/utils/contentHash.d.ts +28 -0
  366. package/dist/esm/utils/contentHash.js +153 -0
  367. package/dist/esm/utils/createReverseNode.d.ts +2 -0
  368. package/dist/esm/utils/createReverseNode.js +1 -0
  369. package/dist/esm/utils/format.d.ts +3 -0
  370. package/dist/esm/utils/format.js +3 -0
  371. package/dist/esm/utils/fuses.d.ts +20 -0
  372. package/dist/esm/utils/fuses.js +21 -0
  373. package/dist/esm/utils/generateFuseInput.d.ts +3 -0
  374. package/dist/esm/utils/generateFuseInput.js +14 -0
  375. package/dist/esm/utils/hexEncodedName.d.ts +1 -0
  376. package/dist/esm/utils/hexEncodedName.js +2 -0
  377. package/dist/esm/utils/labels.d.ts +14 -0
  378. package/dist/esm/utils/labels.js +96 -0
  379. package/dist/esm/utils/makeHashIndexes.d.ts +2 -0
  380. package/dist/esm/utils/makeHashIndexes.js +3 -0
  381. package/dist/esm/utils/normalise.d.ts +2 -0
  382. package/dist/esm/utils/normalise.js +27 -0
  383. package/dist/esm/utils/recordHelpers.d.ts +16 -0
  384. package/dist/esm/utils/recordHelpers.js +65 -0
  385. package/dist/esm/utils/registerHelpers.d.ts +26 -0
  386. package/dist/esm/utils/registerHelpers.js +43 -0
  387. package/dist/esm/utils/singleCall.d.ts +9 -0
  388. package/dist/esm/utils/singleCall.js +5 -0
  389. package/dist/esm/utils/validation.d.ts +8 -0
  390. package/dist/esm/utils/validation.js +67 -0
  391. package/dist/esm/utils/wrapperExpiry.d.ts +5 -0
  392. package/dist/esm/utils/wrapperExpiry.js +26 -0
  393. package/dist/esm/utils/writeTx.d.ts +4 -0
  394. package/dist/esm/utils/writeTx.js +1 -0
  395. package/package.json +81 -49
  396. package/src/@types/@ensdomains/content-hash.d.ts +1 -0
  397. package/src/@types/@ensdomains/ens-contracts.d.ts +1 -0
  398. package/src/@types/FuseOptions.d.ts +9 -0
  399. package/src/@types/dns-packet/index.d.ts +114 -0
  400. package/src/@types/dns-packet.d.ts +1 -0
  401. package/src/@types/idna-uts46-hx.d.ts +1 -0
  402. package/src/ABIs/Multicall.json +452 -0
  403. package/src/GqlManager.test.ts +170 -0
  404. package/src/GqlManager.ts +83 -0
  405. package/src/contracts/baseRegistrar.ts +5 -0
  406. package/src/contracts/ethRegistrarController.ts +5 -0
  407. package/src/contracts/getContractAddress.ts +52 -0
  408. package/src/contracts/index.ts +68 -0
  409. package/src/contracts/multicall.ts +24 -0
  410. package/src/contracts/nameWrapper.ts +5 -0
  411. package/src/contracts/publicResolver.ts +5 -0
  412. package/src/contracts/registry.ts +5 -0
  413. package/src/contracts/reverseRegistrar.ts +5 -0
  414. package/src/contracts/types.ts +11 -0
  415. package/src/contracts/universalResolver.ts +5 -0
  416. package/src/functions/batch.test.ts +36 -0
  417. package/src/functions/batch.ts +36 -0
  418. package/src/functions/batchWrappers.test.ts +31 -0
  419. package/src/functions/batchWrappers.ts +91 -0
  420. package/src/functions/burnFuses.test.ts +40 -0
  421. package/src/functions/burnFuses.ts +21 -0
  422. package/src/functions/createSubname.test.ts +51 -0
  423. package/src/functions/createSubname.ts +88 -0
  424. package/src/functions/deleteSubname.test.ts +53 -0
  425. package/src/functions/deleteSubname.ts +17 -0
  426. package/src/functions/getDNSOwner.test.ts +118 -0
  427. package/src/functions/getDNSOwner.ts +61 -0
  428. package/src/functions/getExpiry.test.ts +59 -0
  429. package/src/functions/getExpiry.ts +141 -0
  430. package/src/functions/getFuses.test.ts +82 -0
  431. package/src/functions/getFuses.ts +70 -0
  432. package/src/functions/getHistory.test.ts +113 -0
  433. package/src/functions/getHistory.ts +347 -0
  434. package/src/functions/getName.test.ts +47 -0
  435. package/src/functions/getName.ts +41 -0
  436. package/src/functions/getNames.test.ts +276 -0
  437. package/src/functions/getNames.ts +275 -0
  438. package/src/functions/getOwner.test.ts +58 -0
  439. package/src/functions/getOwner.ts +202 -0
  440. package/src/functions/getPrice.ts +71 -0
  441. package/src/functions/getProfile.test.ts +143 -0
  442. package/src/functions/getProfile.ts +606 -0
  443. package/src/functions/getRecords.ts +23 -0
  444. package/src/functions/getResolver.test.ts +15 -0
  445. package/src/functions/getResolver.ts +32 -0
  446. package/src/functions/getSpecificRecord.test.ts +79 -0
  447. package/src/functions/getSpecificRecord.ts +371 -0
  448. package/src/functions/getSubnames.test.ts +35 -0
  449. package/src/functions/getSubnames.ts +197 -0
  450. package/src/functions/initialGetters.ts +11 -0
  451. package/src/functions/makeCommitment.test.ts +23 -0
  452. package/src/functions/normalise.test.ts +22 -0
  453. package/src/functions/setName.test.ts +58 -0
  454. package/src/functions/setName.ts +32 -0
  455. package/src/functions/setRecord.test.ts +103 -0
  456. package/src/functions/setRecord.ts +63 -0
  457. package/src/functions/setRecords.test.ts +61 -0
  458. package/src/functions/setRecords.ts +44 -0
  459. package/src/functions/setResolver.test.ts +54 -0
  460. package/src/functions/setResolver.ts +35 -0
  461. package/src/functions/transferName.test.ts +65 -0
  462. package/src/functions/transferName.ts +53 -0
  463. package/src/functions/transferSubname.test.ts +55 -0
  464. package/src/functions/transferSubname.ts +63 -0
  465. package/src/functions/unwrapName.test.ts +53 -0
  466. package/src/functions/unwrapName.ts +43 -0
  467. package/src/functions/wrapName.test.ts +142 -0
  468. package/src/functions/wrapName.ts +142 -0
  469. package/src/generated/BaseRegistrarImplementation.ts +1208 -0
  470. package/src/generated/DNSRegistrar.ts +459 -0
  471. package/src/generated/DNSSECImpl.ts +801 -0
  472. package/src/generated/DefaultReverseResolver.ts +153 -0
  473. package/src/generated/ENSRegistry.ts +691 -0
  474. package/src/generated/ETHRegistrarController.ts +804 -0
  475. package/src/generated/Multicall.ts +598 -0
  476. package/src/generated/NameWrapper.ts +2024 -0
  477. package/src/generated/P256SHA256Algorithm.ts +144 -0
  478. package/src/generated/PublicResolver.ts +1416 -0
  479. package/src/generated/RSASHA1Algorithm.ts +114 -0
  480. package/src/generated/RSASHA256Algorithm.ts +114 -0
  481. package/src/generated/ReverseRegistrar.ts +608 -0
  482. package/src/generated/Root.ts +437 -0
  483. package/src/generated/SHA1Digest.ts +130 -0
  484. package/src/generated/SHA1NSEC3Digest.ts +145 -0
  485. package/src/generated/SHA256Digest.ts +130 -0
  486. package/src/generated/StaticMetadataService.ts +101 -0
  487. package/src/generated/TLDPublicSuffixList.ts +103 -0
  488. package/src/generated/UniversalResolver.ts +264 -0
  489. package/src/generated/common.ts +46 -0
  490. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +781 -0
  491. package/src/generated/factories/DNSRegistrar__factory.ts +277 -0
  492. package/src/generated/factories/DNSSECImpl__factory.ts +482 -0
  493. package/src/generated/factories/DefaultReverseResolver__factory.ts +98 -0
  494. package/src/generated/factories/ENSRegistry__factory.ts +443 -0
  495. package/src/generated/factories/ETHRegistrarController__factory.ts +532 -0
  496. package/src/generated/factories/Multicall__factory.ts +461 -0
  497. package/src/generated/factories/NameWrapper__factory.ts +1335 -0
  498. package/src/generated/factories/P256SHA256Algorithm__factory.ts +55 -0
  499. package/src/generated/factories/PublicResolver__factory.ts +899 -0
  500. package/src/generated/factories/RSASHA1Algorithm__factory.ts +55 -0
  501. package/src/generated/factories/RSASHA256Algorithm__factory.ts +55 -0
  502. package/src/generated/factories/ReverseRegistrar__factory.ts +347 -0
  503. package/src/generated/factories/Root__factory.ts +244 -0
  504. package/src/generated/factories/SHA1Digest__factory.ts +47 -0
  505. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +55 -0
  506. package/src/generated/factories/SHA256Digest__factory.ts +47 -0
  507. package/src/generated/factories/StaticMetadataService__factory.ts +60 -0
  508. package/src/generated/factories/TLDPublicSuffixList__factory.ts +45 -0
  509. package/src/generated/factories/UniversalResolver__factory.ts +211 -0
  510. package/src/generated/factories/index.ts +23 -0
  511. package/src/generated/index.ts +44 -0
  512. package/src/index.ts +596 -0
  513. package/src/tests/populateTransaction.test.ts +40 -0
  514. package/src/tests/setup.ts +58 -0
  515. package/src/tests/signerInjection.test.ts +46 -0
  516. package/src/tests/withProvider.test.ts +28 -0
  517. package/src/utils/contentHash.ts +151 -0
  518. package/src/utils/createReverseNode.ts +2 -0
  519. package/src/utils/format.ts +8 -0
  520. package/src/utils/fuses.ts +23 -0
  521. package/src/utils/generateFuseInput.ts +18 -0
  522. package/src/utils/hexEncodedName.ts +4 -0
  523. package/src/utils/labels.ts +121 -0
  524. package/src/utils/makeHashIndexes.ts +9 -0
  525. package/src/utils/normalise.ts +33 -0
  526. package/src/utils/recordHelpers.ts +106 -0
  527. package/src/utils/registerHelpers.ts +87 -0
  528. package/src/utils/singleCall.ts +16 -0
  529. package/src/utils/validation.ts +73 -0
  530. package/src/utils/wrapperExpiry.ts +31 -0
  531. package/src/utils/writeTx.ts +6 -0
  532. package/dist/constants/interfaces.js +0 -13
  533. package/dist/index.js +0 -1135
  534. package/dist/utils/contents.js +0 -126
  535. package/dist/utils/index.js +0 -192
  536. package/dist/utils/labelhash.js +0 -55
  537. package/dist/utils/namehash.js +0 -39
  538. package/dist/utils/records.js +0 -56
@@ -0,0 +1,29 @@
1
+ import getBaseRegistrar from './baseRegistrar';
2
+ import getEthRegistrarController from './ethRegistrarController';
3
+ import getMulticall from './multicall';
4
+ import getNameWrapper from './nameWrapper';
5
+ import getPublicResolver from './publicResolver';
6
+ import getRegistry from './registry';
7
+ import getReverseRegistrar from './reverseRegistrar';
8
+ import getUniversalResolver from './universalResolver';
9
+ export default class ContractManager {
10
+ constructor(provider, fetchAddress) {
11
+ this.generateContractGetter = (name, func) => {
12
+ return async (passedProvider, address) => {
13
+ const inputAddress = address || this.fetchAddress(name);
14
+ const provider = passedProvider || this.provider;
15
+ return func(provider, inputAddress);
16
+ };
17
+ };
18
+ this.getPublicResolver = this.generateContractGetter('PublicResolver', getPublicResolver);
19
+ this.getUniversalResolver = this.generateContractGetter('UniversalResolver', getUniversalResolver);
20
+ this.getRegistry = this.generateContractGetter('ENSRegistryWithFallback', getRegistry);
21
+ this.getReverseRegistrar = this.generateContractGetter('ReverseRegistrar', getReverseRegistrar);
22
+ this.getNameWrapper = this.generateContractGetter('NameWrapper', getNameWrapper);
23
+ this.getBaseRegistrar = this.generateContractGetter('BaseRegistrarImplementation', getBaseRegistrar);
24
+ this.getEthRegistrarController = this.generateContractGetter('ETHRegistrarController', getEthRegistrarController);
25
+ this.getMulticall = this.generateContractGetter('Multicall', getMulticall);
26
+ this.provider = provider;
27
+ this.fetchAddress = fetchAddress;
28
+ }
29
+ }
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").Multicall;
3
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import { Multicall__factory } from '../generated/factories/Multicall__factory';
2
+ const ABI = [
3
+ 'function aggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes[] returnData)',
4
+ 'function aggregate3(tuple(address target, bool allowFailure, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)',
5
+ 'function aggregate3Value(tuple(address target, bool allowFailure, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)',
6
+ 'function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)',
7
+ 'function getBasefee() view returns (uint256 basefee)',
8
+ 'function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)',
9
+ 'function getBlockNumber() view returns (uint256 blockNumber)',
10
+ 'function getChainId() view returns (uint256 chainid)',
11
+ 'function getCurrentBlockCoinbase() view returns (address coinbase)',
12
+ 'function getCurrentBlockDifficulty() view returns (uint256 difficulty)',
13
+ 'function getCurrentBlockGasLimit() view returns (uint256 gaslimit)',
14
+ 'function getCurrentBlockTimestamp() view returns (uint256 timestamp)',
15
+ 'function getEthBalance(address addr) view returns (uint256 balance)',
16
+ 'function getLastBlockHash() view returns (bytes32 blockHash)',
17
+ 'function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)',
18
+ 'function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)',
19
+ ];
20
+ export default (provider, address) => Multicall__factory.connect(address, provider);
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").NameWrapper;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { NameWrapper__factory } from '../generated/factories/NameWrapper__factory';
2
+ export default (provider, address) => NameWrapper__factory.connect(address, provider);
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").PublicResolver;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { PublicResolver__factory } from '../generated/factories/PublicResolver__factory';
2
+ export default (provider, address) => PublicResolver__factory.connect(address, provider);
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").ENSRegistry;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { ENSRegistry__factory } from '../generated/factories/ENSRegistry__factory';
2
+ export default (provider, address) => ENSRegistry__factory.connect(address, provider);
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").ReverseRegistrar;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { ReverseRegistrar__factory } from '../generated/factories/ReverseRegistrar__factory';
2
+ export default (provider, address) => ReverseRegistrar__factory.connect(address, provider);
@@ -0,0 +1,2 @@
1
+ export declare type SupportedNetworkId = '1' | '3' | '4' | '5' | '1337';
2
+ export declare type ContractName = 'BaseRegistrarImplementation' | 'ETHRegistrarController' | 'Multicall' | 'NameWrapper' | 'PublicResolver' | 'ENSRegistryWithFallback' | 'ReverseRegistrar' | 'UniversalResolver';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").UniversalResolver;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { UniversalResolver__factory } from '../generated/factories/UniversalResolver__factory';
2
+ export default (provider, address) => UniversalResolver__factory.connect(address, provider);
@@ -0,0 +1,9 @@
1
+ import { BatchFunctionResult, ENSArgs, RawFunction } from '..';
2
+ declare const _default: {
3
+ raw: ({ multicallWrapper }: ENSArgs<"multicallWrapper">, ...items: BatchFunctionResult<RawFunction>[]) => Promise<{
4
+ to: string;
5
+ data: string;
6
+ }>;
7
+ decode: ({ multicallWrapper }: ENSArgs<"multicallWrapper">, data: string, ...items: BatchFunctionResult<RawFunction>[]) => Promise<any[] | undefined>;
8
+ };
9
+ export default _default;
@@ -0,0 +1,19 @@
1
+ const raw = async ({ multicallWrapper }, ...items) => {
2
+ const rawDataArr = await Promise.all(items.map(({ args, raw }, i) => {
3
+ if (!raw) {
4
+ throw new Error(`Function ${i} is not batchable`);
5
+ }
6
+ return raw(...args);
7
+ }));
8
+ return multicallWrapper.raw(rawDataArr);
9
+ };
10
+ const decode = async ({ multicallWrapper }, data, ...items) => {
11
+ const response = await multicallWrapper.decode(data);
12
+ if (!response)
13
+ return;
14
+ return Promise.all(response.map((ret, i) => items[i].decode(ret.returnData, ...items[i].args)));
15
+ };
16
+ export default {
17
+ raw,
18
+ decode,
19
+ };
@@ -0,0 +1,29 @@
1
+ import { ethers } from 'ethers';
2
+ import { ENSArgs } from '..';
3
+ export declare const universalWrapper: {
4
+ raw: ({ contracts }: ENSArgs<'contracts'>, name: string, data: string) => Promise<{
5
+ to: string;
6
+ data: string;
7
+ }>;
8
+ decode: ({ contracts }: ENSArgs<'contracts'>, data: string) => Promise<{
9
+ data: any;
10
+ resolver: any;
11
+ } | undefined>;
12
+ };
13
+ export declare const resolverMulticallWrapper: {
14
+ raw: ({ contracts }: ENSArgs<'contracts'>, data: {
15
+ to: string;
16
+ data: string;
17
+ }[]) => Promise<{
18
+ to: string;
19
+ data: string;
20
+ }>;
21
+ decode: ({ contracts }: ENSArgs<'contracts'>, data: string) => Promise<ethers.utils.Result | undefined>;
22
+ };
23
+ export declare const multicallWrapper: {
24
+ raw: ({ contracts }: ENSArgs<'contracts'>, transactions: ethers.providers.TransactionRequest[], requireSuccess?: boolean) => Promise<{
25
+ to: string;
26
+ data: string;
27
+ }>;
28
+ decode: ({ contracts }: ENSArgs<'contracts'>, data: string) => Promise<any>;
29
+ };
@@ -0,0 +1,68 @@
1
+ import { hexEncodeName } from '../utils/hexEncodedName';
2
+ export const universalWrapper = {
3
+ raw: async ({ contracts }, name, data) => {
4
+ const universalResolver = await contracts?.getUniversalResolver();
5
+ return {
6
+ to: universalResolver.address,
7
+ data: universalResolver.interface.encodeFunctionData('resolve', [
8
+ hexEncodeName(name),
9
+ data,
10
+ ]),
11
+ };
12
+ },
13
+ decode: async ({ contracts }, data) => {
14
+ const universalResolver = await contracts?.getUniversalResolver();
15
+ const response = universalResolver.interface.decodeFunctionResult('resolve', data);
16
+ if (!response || !response[0]) {
17
+ return;
18
+ }
19
+ return { data: response[0], resolver: response[1] };
20
+ },
21
+ };
22
+ export const resolverMulticallWrapper = {
23
+ raw: async ({ contracts }, data) => {
24
+ const publicResolver = await contracts?.getPublicResolver();
25
+ const formattedDataArr = data.map((item) => item.data);
26
+ return {
27
+ to: publicResolver.address,
28
+ data: publicResolver.interface.encodeFunctionData('multicall', [
29
+ formattedDataArr,
30
+ ]),
31
+ };
32
+ },
33
+ decode: async ({ contracts }, data) => {
34
+ const publicResolver = await contracts?.getPublicResolver();
35
+ const response = publicResolver.interface.decodeFunctionResult('multicall', data);
36
+ if (!response) {
37
+ return;
38
+ }
39
+ return response;
40
+ },
41
+ };
42
+ export const multicallWrapper = {
43
+ raw: async function ({ contracts }, transactions, requireSuccess = false) {
44
+ const multicall = await contracts?.getMulticall();
45
+ return {
46
+ to: multicall.address,
47
+ data: multicall.interface.encodeFunctionData('tryAggregate', [
48
+ requireSuccess,
49
+ transactions.map((tx) => ({
50
+ target: tx.to,
51
+ callData: tx.data,
52
+ })),
53
+ ]),
54
+ };
55
+ },
56
+ decode: async function ({ contracts }, data) {
57
+ if (!data)
58
+ return;
59
+ const multicall = await contracts?.getMulticall();
60
+ try {
61
+ const [result] = multicall.interface.decodeFunctionResult('tryAggregate', data);
62
+ return result;
63
+ }
64
+ catch {
65
+ return;
66
+ }
67
+ },
68
+ };
@@ -0,0 +1,5 @@
1
+ import { ENSArgs } from '..';
2
+ import { FuseOptions } from '../@types/FuseOptions';
3
+ export default function ({ contracts, signer }: ENSArgs<'contracts' | 'signer'>, name: string, { fusesToBurn, }: {
4
+ fusesToBurn: FuseOptions;
5
+ }): Promise<import("ethers").PopulatedTransaction>;
@@ -0,0 +1,8 @@
1
+ import generateFuseInput from '../utils/generateFuseInput';
2
+ import { namehash } from '../utils/normalise';
3
+ export default async function ({ contracts, signer }, name, { fusesToBurn, }) {
4
+ const nameWrapper = (await contracts?.getNameWrapper()).connect(signer);
5
+ const hash = namehash(name);
6
+ const encodedFuses = generateFuseInput(fusesToBurn);
7
+ return nameWrapper.populateTransaction.setFuses(hash, encodedFuses);
8
+ }
@@ -0,0 +1,17 @@
1
+ import { ethers } from 'ethers';
2
+ import { ENSArgs } from '..';
3
+ import { FuseOptions } from '../@types/FuseOptions';
4
+ import { Expiry } from '../utils/wrapperExpiry';
5
+ declare type BaseArgs = {
6
+ owner: string;
7
+ resolverAddress?: string;
8
+ contract: 'registry' | 'nameWrapper';
9
+ };
10
+ declare type NameWrapperArgs = {
11
+ contract: 'nameWrapper';
12
+ fuses?: FuseOptions;
13
+ expiry?: Expiry;
14
+ } & BaseArgs;
15
+ declare type Args = BaseArgs | NameWrapperArgs;
16
+ export default function ({ contracts, signer, getExpiry, }: ENSArgs<'contracts' | 'signer' | 'getExpiry'>, name: string, { owner, resolverAddress, contract, ...wrapperArgs }: Args): Promise<ethers.PopulatedTransaction>;
17
+ export {};
@@ -0,0 +1,36 @@
1
+ import { ethers } from 'ethers';
2
+ import generateFuseInput from '../utils/generateFuseInput';
3
+ import { namehash } from '../utils/normalise';
4
+ import { makeExpiry } from '../utils/wrapperExpiry';
5
+ export default async function ({ contracts, signer, getExpiry, }, name, { owner, resolverAddress, contract, ...wrapperArgs }) {
6
+ const labels = name.split('.');
7
+ if (labels.length === 1) {
8
+ throw new Error('Subnames in ENS.js can only be created for 2LDs, not TLDs');
9
+ }
10
+ if ('fuses' in wrapperArgs && contract === 'registry') {
11
+ throw new Error('Fuses can only be set on a wrapped name');
12
+ }
13
+ if (!resolverAddress) {
14
+ resolverAddress = (await contracts?.getPublicResolver()).address;
15
+ }
16
+ const label = labels.shift();
17
+ const labelhash = ethers.utils.solidityKeccak256(['string'], [label]);
18
+ const parentNodehash = namehash(labels.join('.'));
19
+ switch (contract) {
20
+ case 'registry': {
21
+ const registry = (await contracts?.getRegistry()).connect(signer);
22
+ return registry.populateTransaction.setSubnodeRecord(parentNodehash, labelhash, owner, resolverAddress, 0);
23
+ }
24
+ case 'nameWrapper': {
25
+ const nameWrapper = (await contracts?.getNameWrapper()).connect(signer);
26
+ const expiry = await makeExpiry({ getExpiry }, name, 'expiry' in wrapperArgs ? wrapperArgs.expiry : undefined);
27
+ const generatedFuses = 'fuses' in wrapperArgs && wrapperArgs.fuses
28
+ ? generateFuseInput(wrapperArgs.fuses)
29
+ : '0';
30
+ return nameWrapper.populateTransaction.setSubnodeRecord(parentNodehash, label, owner, resolverAddress, 0, generatedFuses, expiry);
31
+ }
32
+ default: {
33
+ throw new Error(`Unknown contract: ${contract}`);
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,4 @@
1
+ import { ENSArgs } from '..';
2
+ export default function ({ transferSubname, signer }: ENSArgs<'transferSubname' | 'signer'>, name: string, { contract, }: {
3
+ contract: 'registry' | 'nameWrapper';
4
+ }): Promise<import("ethers").PopulatedTransaction>;
@@ -0,0 +1,7 @@
1
+ export default async function ({ transferSubname, signer }, name, { contract, }) {
2
+ return transferSubname.populateTransaction(name, {
3
+ contract,
4
+ owner: '0x0000000000000000000000000000000000000000',
5
+ signer,
6
+ });
7
+ }
@@ -0,0 +1,7 @@
1
+ import * as packet from 'dns-packet';
2
+ export declare function encodeURLParams(p: {
3
+ [key: string]: string;
4
+ }): string;
5
+ export declare const getDNS: (q: packet.Packet) => Promise<packet.Packet>;
6
+ export declare const dnsQuery: (qtype: string, qname: string) => Promise<packet.Packet>;
7
+ export default function (_: any, dnsName: string): Promise<any>;
@@ -0,0 +1,51 @@
1
+ import * as packet from 'dns-packet';
2
+ export function encodeURLParams(p) {
3
+ return Object.entries(p)
4
+ .map((kv) => kv.map(encodeURIComponent).join('='))
5
+ .join('&');
6
+ }
7
+ export const getDNS = async (q) => {
8
+ const response = await global.fetch(`https://cloudflare-dns.com/dns-query?${encodeURLParams({
9
+ ct: 'application/dns-udpwireformat',
10
+ dns: packet.encode(q)?.toString('base64'),
11
+ ts: Date.now().toString(),
12
+ })}`);
13
+ const arrayBuffer = await response.arrayBuffer();
14
+ // @ts-ignore:next-line
15
+ const fromArrayBuffer = Buffer.from(arrayBuffer);
16
+ return packet.decode(fromArrayBuffer);
17
+ };
18
+ export const dnsQuery = async (qtype, qname) => {
19
+ const query = {
20
+ type: 'query',
21
+ id: 1,
22
+ flags: packet.RECURSION_DESIRED,
23
+ questions: [
24
+ {
25
+ type: qtype,
26
+ class: 'IN',
27
+ name: qname,
28
+ },
29
+ ],
30
+ additionals: [
31
+ {
32
+ type: 'OPT',
33
+ class: 'IN',
34
+ name: '.',
35
+ udpPayloadSize: 4096,
36
+ flags: packet.DNSSEC_OK,
37
+ },
38
+ ],
39
+ answers: [],
40
+ };
41
+ const response = await getDNS(query);
42
+ if (response.rcode !== 'NOERROR') {
43
+ throw new Error(`DNS query failed: ${response.rcode}`);
44
+ }
45
+ return response;
46
+ };
47
+ export default async function (_, dnsName) {
48
+ const result = await dnsQuery('TXT', `_ens.${dnsName}`);
49
+ const address = result?.answers?.[0]?.data?.[0]?.toString()?.split('=')?.[1];
50
+ return address;
51
+ }
@@ -0,0 +1,19 @@
1
+ import { ENSArgs } from '..';
2
+ declare type ContractOption = 'registrar' | 'nameWrapper';
3
+ declare type Args = {
4
+ contract?: ContractOption;
5
+ };
6
+ declare const _default: {
7
+ raw: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, name: string, { contract }?: Args) => Promise<{
8
+ to: string;
9
+ data: string;
10
+ }>;
11
+ decode: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, data: string, name: string, { contract }?: Args) => Promise<{
12
+ expiry: Date;
13
+ gracePeriod: null;
14
+ } | {
15
+ expiry: Date | null;
16
+ gracePeriod: number;
17
+ } | undefined>;
18
+ };
19
+ export default _default;
@@ -0,0 +1,88 @@
1
+ import { solidityKeccak256 } from 'ethers/lib/utils';
2
+ import { namehash } from '../utils/normalise';
3
+ const getRegistrarExpiry = async ({ contracts, multicallWrapper }, labels) => {
4
+ if (labels.length > 2 || labels[1] !== 'eth') {
5
+ throw new Error('Only .eth names have expiry dates on the registrar');
6
+ }
7
+ const baseRegistrar = await contracts?.getBaseRegistrar();
8
+ const expiryCall = baseRegistrar.interface.encodeFunctionData('nameExpires', [
9
+ solidityKeccak256(['string'], [labels[0]]),
10
+ ]);
11
+ const gracePeriodCall = baseRegistrar.interface.encodeFunctionData('GRACE_PERIOD');
12
+ return multicallWrapper.raw([
13
+ {
14
+ to: baseRegistrar.address,
15
+ data: expiryCall,
16
+ },
17
+ {
18
+ to: baseRegistrar.address,
19
+ data: gracePeriodCall,
20
+ },
21
+ ]);
22
+ };
23
+ const getWrapperExpiry = async ({ contracts }, labels) => {
24
+ const nameWrapper = await contracts?.getNameWrapper();
25
+ const expiryCall = nameWrapper.interface.encodeFunctionData('getData', [
26
+ namehash(labels.join('.')),
27
+ ]);
28
+ return {
29
+ to: nameWrapper.address,
30
+ data: expiryCall,
31
+ };
32
+ };
33
+ const getContractToUse = (contract, labels) => {
34
+ if (contract)
35
+ return contract;
36
+ if (labels.length === 2 && labels[1] === 'eth') {
37
+ return 'registrar';
38
+ }
39
+ return 'nameWrapper';
40
+ };
41
+ const raw = async (ensArgs, name, { contract } = {}) => {
42
+ const labels = name.split('.');
43
+ const contractToUse = getContractToUse(contract, labels);
44
+ return contractToUse === 'nameWrapper'
45
+ ? getWrapperExpiry(ensArgs, labels)
46
+ : getRegistrarExpiry(ensArgs, labels);
47
+ };
48
+ const decodeRegistrarExpiry = async ({ contracts, multicallWrapper }, data) => {
49
+ const result = await multicallWrapper.decode(data);
50
+ const baseRegistrar = await contracts?.getBaseRegistrar();
51
+ try {
52
+ const [nameExpires] = baseRegistrar.interface.decodeFunctionResult('nameExpires', result[0].returnData);
53
+ const [gracePeriod] = baseRegistrar.interface.decodeFunctionResult('GRACE_PERIOD', result[1].returnData);
54
+ return {
55
+ expiry: nameExpires > 0 ? new Date(nameExpires * 1000) : null,
56
+ gracePeriod: gracePeriod.toNumber() * 1000,
57
+ };
58
+ }
59
+ catch {
60
+ return;
61
+ }
62
+ };
63
+ const decodeWrapperExpiry = async ({ contracts }, data) => {
64
+ const nameWrapper = await contracts?.getNameWrapper();
65
+ try {
66
+ const [_owner, _fuses, expiry] = nameWrapper.interface.decodeFunctionResult('getData', data);
67
+ return {
68
+ expiry: new Date(expiry * 1000),
69
+ gracePeriod: null,
70
+ };
71
+ }
72
+ catch {
73
+ return;
74
+ }
75
+ };
76
+ const decode = async (ensArgs, data, name, { contract } = {}) => {
77
+ if (data === null)
78
+ return;
79
+ const labels = name.split('.');
80
+ const contractToUse = getContractToUse(contract, labels);
81
+ return contractToUse === 'nameWrapper'
82
+ ? decodeWrapperExpiry(ensArgs, data)
83
+ : decodeRegistrarExpiry(ensArgs, data);
84
+ };
85
+ export default {
86
+ raw,
87
+ decode,
88
+ };
@@ -0,0 +1,16 @@
1
+ import { BigNumber } from 'ethers';
2
+ import { ENSArgs } from '..';
3
+ declare const _default: {
4
+ raw: ({ contracts }: ENSArgs<"contracts">, name: string) => Promise<{
5
+ to: string;
6
+ data: string;
7
+ }>;
8
+ decode: ({ contracts }: ENSArgs<"contracts">, data: string, name: string) => Promise<{
9
+ fuseObj: {
10
+ [k: string]: boolean;
11
+ };
12
+ expiryDate: Date;
13
+ rawFuses: BigNumber;
14
+ } | undefined>;
15
+ };
16
+ export default _default;
@@ -0,0 +1,51 @@
1
+ import { BigNumber } from 'ethers';
2
+ import { testable as fuseEnums } from '../utils/fuses';
3
+ import { namehash } from '../utils/normalise';
4
+ const NameSafety = [
5
+ 'Safe',
6
+ 'RegistrantNotWrapped',
7
+ 'ControllerNotWrapped',
8
+ 'SubdomainReplacementAllowed',
9
+ 'Expired',
10
+ ];
11
+ const raw = async ({ contracts }, name) => {
12
+ const nameWrapper = await contracts?.getNameWrapper();
13
+ return {
14
+ to: nameWrapper.address,
15
+ data: nameWrapper.interface.encodeFunctionData('getFuses', [
16
+ namehash(name),
17
+ ]),
18
+ };
19
+ };
20
+ const decode = async ({ contracts }, data, name) => {
21
+ const nameWrapper = await contracts?.getNameWrapper();
22
+ try {
23
+ const [_fuses, expiry] = nameWrapper.interface.decodeFunctionResult('getFuses', data);
24
+ const fuses = BigNumber.from(_fuses);
25
+ const fuseObj = Object.fromEntries(Object.keys(fuseEnums).map((fuseEnum) => [
26
+ fuseEnum
27
+ .toLowerCase()
28
+ .replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', '')),
29
+ fuses.and(fuseEnums[fuseEnum]).gt(0),
30
+ ]));
31
+ if (fuses.eq(0)) {
32
+ fuseObj.canDoEverything = true;
33
+ }
34
+ else {
35
+ fuseObj.canDoEverything = false;
36
+ }
37
+ const expiryDate = new Date(expiry * 1000);
38
+ return {
39
+ fuseObj,
40
+ expiryDate,
41
+ rawFuses: fuses,
42
+ };
43
+ }
44
+ catch {
45
+ return;
46
+ }
47
+ };
48
+ export default {
49
+ raw,
50
+ decode,
51
+ };
@@ -0,0 +1,54 @@
1
+ import { ENSArgs } from '..';
2
+ export declare function getHistory({ gqlInstance }: ENSArgs<'gqlInstance'>, name: string): Promise<{
3
+ domain: {
4
+ type: any;
5
+ blockNumber: any;
6
+ transactionHash: any;
7
+ id: any;
8
+ data: Record<string, any>;
9
+ }[];
10
+ registration: {
11
+ type: any;
12
+ blockNumber: any;
13
+ transactionHash: any;
14
+ id: any;
15
+ data: Record<string, any>;
16
+ }[];
17
+ resolver: {
18
+ type: any;
19
+ blockNumber: any;
20
+ transactionHash: any;
21
+ id: any;
22
+ data: Record<string, any>;
23
+ }[];
24
+ } | undefined>;
25
+ export declare function getHistoryWithDetail({ contracts, gqlInstance, provider, }: ENSArgs<'contracts' | 'gqlInstance' | 'provider'>, name: string): Promise<{
26
+ domain: {
27
+ type: any;
28
+ blockNumber: any;
29
+ transactionHash: any;
30
+ id: any;
31
+ data: Record<string, any>;
32
+ }[];
33
+ registration: {
34
+ type: any;
35
+ blockNumber: any;
36
+ transactionHash: any;
37
+ id: any;
38
+ data: Record<string, any>;
39
+ }[];
40
+ resolver: {
41
+ type: any;
42
+ blockNumber: any;
43
+ transactionHash: any;
44
+ id: any;
45
+ data: Record<string, any>;
46
+ }[];
47
+ } | undefined>;
48
+ export declare function getHistoryDetailForTransactionHash({ contracts, provider }: ENSArgs<'contracts' | 'provider'>, hash: string, indexInTransaction?: number): Promise<({
49
+ key: any;
50
+ value: any;
51
+ } | undefined)[] | {
52
+ key: any;
53
+ value: any;
54
+ } | undefined>;