@ensdomains/ensjs 2.1.0 → 3.0.0-alpha.3

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 (539) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +651 -99
  3. package/dist/cjs/GqlManager.d.ts +6 -0
  4. package/dist/cjs/GqlManager.js +42 -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/doNotCallOnChainUniversalResolverProxy.d.ts +3 -0
  8. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +4 -0
  9. package/dist/cjs/contracts/ethRegistrarController.d.ts +3 -0
  10. package/dist/cjs/contracts/ethRegistrarController.js +4 -0
  11. package/dist/cjs/contracts/getContractAddress.d.ts +3 -0
  12. package/dist/cjs/contracts/getContractAddress.js +46 -0
  13. package/dist/cjs/contracts/index.d.ts +16 -0
  14. package/dist/cjs/contracts/index.js +37 -0
  15. package/dist/cjs/contracts/multicall.d.ts +3 -0
  16. package/dist/cjs/contracts/multicall.js +22 -0
  17. package/dist/cjs/contracts/nameWrapper.d.ts +3 -0
  18. package/dist/cjs/contracts/nameWrapper.js +4 -0
  19. package/dist/cjs/contracts/publicResolver.d.ts +3 -0
  20. package/dist/cjs/contracts/publicResolver.js +4 -0
  21. package/dist/cjs/contracts/registry.d.ts +3 -0
  22. package/dist/cjs/contracts/registry.js +4 -0
  23. package/dist/cjs/contracts/reverseRegistrar.d.ts +3 -0
  24. package/dist/cjs/contracts/reverseRegistrar.js +4 -0
  25. package/dist/cjs/contracts/types.d.ts +2 -0
  26. package/dist/cjs/contracts/types.js +2 -0
  27. package/dist/cjs/contracts/universalResolver.d.ts +3 -0
  28. package/dist/cjs/contracts/universalResolver.js +4 -0
  29. package/dist/cjs/functions/batch.d.ts +9 -0
  30. package/dist/cjs/functions/batch.js +21 -0
  31. package/dist/cjs/functions/batchWrappers.d.ts +29 -0
  32. package/dist/cjs/functions/batchWrappers.js +71 -0
  33. package/dist/cjs/functions/burnFuses.d.ts +3 -0
  34. package/dist/cjs/functions/burnFuses.js +18 -0
  35. package/dist/cjs/functions/createSubname.d.ts +19 -0
  36. package/dist/cjs/functions/createSubname.js +44 -0
  37. package/dist/cjs/functions/deleteSubname.d.ts +4 -0
  38. package/dist/cjs/functions/deleteSubname.js +6 -0
  39. package/dist/cjs/functions/getDNSOwner.d.ts +7 -0
  40. package/dist/cjs/functions/getDNSOwner.js +81 -0
  41. package/dist/cjs/functions/getExpiry.d.ts +12 -0
  42. package/dist/cjs/functions/getExpiry.js +45 -0
  43. package/dist/cjs/functions/getFuses.d.ts +17 -0
  44. package/dist/cjs/functions/getFuses.js +62 -0
  45. package/dist/cjs/functions/getHistory.d.ts +54 -0
  46. package/dist/cjs/functions/getHistory.js +279 -0
  47. package/dist/cjs/functions/getName.d.ts +19 -0
  48. package/dist/cjs/functions/getName.js +34 -0
  49. package/dist/cjs/functions/getNames.d.ts +40 -0
  50. package/dist/cjs/functions/getNames.js +222 -0
  51. package/dist/cjs/functions/getOwner.d.ts +14 -0
  52. package/dist/cjs/functions/getOwner.js +140 -0
  53. package/dist/cjs/functions/getPrice.d.ts +13 -0
  54. package/dist/cjs/functions/getPrice.js +50 -0
  55. package/dist/cjs/functions/getProfile.d.ts +30 -0
  56. package/dist/cjs/functions/getProfile.js +302 -0
  57. package/dist/cjs/functions/getRecords.d.ts +32 -0
  58. package/dist/cjs/functions/getRecords.js +11 -0
  59. package/dist/cjs/functions/getResolver.d.ts +9 -0
  60. package/dist/cjs/functions/getResolver.js +24 -0
  61. package/dist/cjs/functions/getSpecificRecord.d.ts +73 -0
  62. package/dist/cjs/functions/getSpecificRecord.js +268 -0
  63. package/dist/cjs/functions/getSubnames.d.ts +26 -0
  64. package/dist/cjs/functions/getSubnames.js +154 -0
  65. package/dist/cjs/functions/initialGetters.d.ts +11 -0
  66. package/dist/cjs/functions/initialGetters.js +40 -0
  67. package/dist/cjs/functions/setName.d.ts +4 -0
  68. package/dist/cjs/functions/setName.js +17 -0
  69. package/dist/cjs/functions/setRecords.d.ts +3 -0
  70. package/dist/cjs/functions/setRecords.js +22 -0
  71. package/dist/cjs/functions/setResolver.d.ts +4 -0
  72. package/dist/cjs/functions/setResolver.js +28 -0
  73. package/dist/cjs/functions/transferName.d.ts +5 -0
  74. package/dist/cjs/functions/transferName.js +34 -0
  75. package/dist/cjs/functions/transferSubname.d.ts +5 -0
  76. package/dist/cjs/functions/transferSubname.js +28 -0
  77. package/dist/cjs/functions/unwrapName.d.ts +4 -0
  78. package/dist/cjs/functions/unwrapName.js +28 -0
  79. package/dist/cjs/functions/wrapName.d.ts +6 -0
  80. package/dist/cjs/functions/wrapName.js +64 -0
  81. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +487 -0
  82. package/dist/cjs/generated/BaseRegistrarImplementation.js +2 -0
  83. package/dist/cjs/generated/DNSRegistrar.d.ts +220 -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/DoNotCallOnChainUniversalResolverProxy.d.ts +144 -0
  90. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +2 -0
  91. package/dist/cjs/generated/ENSRegistry.d.ts +259 -0
  92. package/dist/cjs/generated/ENSRegistry.js +2 -0
  93. package/dist/cjs/generated/ETHRegistrarController.d.ts +319 -0
  94. package/dist/cjs/generated/ETHRegistrarController.js +2 -0
  95. package/dist/cjs/generated/Multicall.d.ts +292 -0
  96. package/dist/cjs/generated/Multicall.js +2 -0
  97. package/dist/cjs/generated/NameWrapper.d.ts +675 -0
  98. package/dist/cjs/generated/NameWrapper.js +2 -0
  99. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +72 -0
  100. package/dist/cjs/generated/P256SHA256Algorithm.js +2 -0
  101. package/dist/cjs/generated/PublicResolver.d.ts +542 -0
  102. package/dist/cjs/generated/PublicResolver.js +2 -0
  103. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +42 -0
  104. package/dist/cjs/generated/RSASHA1Algorithm.js +2 -0
  105. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +42 -0
  106. package/dist/cjs/generated/RSASHA256Algorithm.js +2 -0
  107. package/dist/cjs/generated/ReverseRegistrar.d.ts +259 -0
  108. package/dist/cjs/generated/ReverseRegistrar.js +2 -0
  109. package/dist/cjs/generated/Root.d.ts +173 -0
  110. package/dist/cjs/generated/Root.js +2 -0
  111. package/dist/cjs/generated/SHA1Digest.d.ts +67 -0
  112. package/dist/cjs/generated/SHA1Digest.js +2 -0
  113. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +72 -0
  114. package/dist/cjs/generated/SHA1NSEC3Digest.js +2 -0
  115. package/dist/cjs/generated/SHA256Digest.d.ts +67 -0
  116. package/dist/cjs/generated/SHA256Digest.js +2 -0
  117. package/dist/cjs/generated/StaticMetadataService.d.ts +42 -0
  118. package/dist/cjs/generated/StaticMetadataService.js +2 -0
  119. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +42 -0
  120. package/dist/cjs/generated/TLDPublicSuffixList.js +2 -0
  121. package/dist/cjs/generated/UniversalResolver.d.ts +82 -0
  122. package/dist/cjs/generated/UniversalResolver.js +2 -0
  123. package/dist/cjs/generated/common.d.ts +21 -0
  124. package/dist/cjs/generated/common.js +2 -0
  125. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
  126. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +770 -0
  127. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +79 -0
  128. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +296 -0
  129. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +68 -0
  130. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +501 -0
  131. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
  132. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +87 -0
  133. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +56 -0
  134. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +171 -0
  135. package/dist/cjs/generated/factories/ENSRegistry__factory.d.ts +52 -0
  136. package/dist/cjs/generated/factories/ENSRegistry__factory.js +439 -0
  137. package/dist/cjs/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
  138. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +511 -0
  139. package/dist/cjs/generated/factories/Multicall__factory.d.ts +42 -0
  140. package/dist/cjs/generated/factories/Multicall__factory.js +457 -0
  141. package/dist/cjs/generated/factories/NameWrapper__factory.d.ts +57 -0
  142. package/dist/cjs/generated/factories/NameWrapper__factory.js +1200 -0
  143. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +34 -0
  144. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +71 -0
  145. package/dist/cjs/generated/factories/PublicResolver__factory.d.ts +46 -0
  146. package/dist/cjs/generated/factories/PublicResolver__factory.js +892 -0
  147. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +34 -0
  148. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +71 -0
  149. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +34 -0
  150. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +71 -0
  151. package/dist/cjs/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
  152. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +340 -0
  153. package/dist/cjs/generated/factories/Root__factory.d.ts +52 -0
  154. package/dist/cjs/generated/factories/Root__factory.js +243 -0
  155. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +34 -0
  156. package/dist/cjs/generated/factories/SHA1Digest__factory.js +66 -0
  157. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +34 -0
  158. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +71 -0
  159. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +34 -0
  160. package/dist/cjs/generated/factories/SHA256Digest__factory.js +66 -0
  161. package/dist/cjs/generated/factories/StaticMetadataService__factory.d.ts +32 -0
  162. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +49 -0
  163. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +34 -0
  164. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +61 -0
  165. package/dist/cjs/generated/factories/UniversalResolver__factory.d.ts +42 -0
  166. package/dist/cjs/generated/factories/UniversalResolver__factory.js +204 -0
  167. package/dist/cjs/generated/factories/index.d.ts +6 -0
  168. package/dist/cjs/generated/factories/index.js +18 -0
  169. package/dist/cjs/generated/index.d.ts +13 -0
  170. package/dist/cjs/generated/index.js +39 -0
  171. package/dist/cjs/index.d.ts +471 -0
  172. package/dist/cjs/index.js +228 -0
  173. package/dist/cjs/utils/contentHash.d.ts +28 -0
  174. package/dist/cjs/utils/contentHash.js +164 -0
  175. package/dist/cjs/utils/createReverseNode.d.ts +2 -0
  176. package/dist/cjs/utils/createReverseNode.js +3 -0
  177. package/dist/cjs/utils/format.d.ts +3 -0
  178. package/dist/cjs/utils/format.js +9 -0
  179. package/dist/cjs/utils/fuses.d.ts +20 -0
  180. package/dist/cjs/utils/fuses.js +24 -0
  181. package/dist/cjs/utils/generateFuseInput.d.ts +3 -0
  182. package/dist/cjs/utils/generateFuseInput.js +19 -0
  183. package/dist/cjs/utils/hexEncodedName.d.ts +1 -0
  184. package/dist/cjs/utils/hexEncodedName.js +9 -0
  185. package/dist/cjs/utils/labels.d.ts +14 -0
  186. package/dist/cjs/utils/labels.js +112 -0
  187. package/dist/cjs/utils/makeHashIndexes.d.ts +2 -0
  188. package/dist/cjs/utils/makeHashIndexes.js +8 -0
  189. package/dist/cjs/utils/normalise.d.ts +2 -0
  190. package/dist/cjs/utils/normalise.js +28 -0
  191. package/dist/cjs/utils/recordHelpers.d.ts +13 -0
  192. package/dist/cjs/utils/recordHelpers.js +44 -0
  193. package/dist/cjs/utils/registerHelpers.d.ts +26 -0
  194. package/dist/cjs/utils/registerHelpers.js +52 -0
  195. package/dist/cjs/utils/singleCall.d.ts +9 -0
  196. package/dist/cjs/utils/singleCall.js +7 -0
  197. package/dist/cjs/utils/validation.d.ts +8 -0
  198. package/dist/cjs/utils/validation.js +73 -0
  199. package/dist/esm/GqlManager.d.ts +6 -0
  200. package/dist/esm/GqlManager.js +18 -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/doNotCallOnChainUniversalResolverProxy.d.ts +3 -0
  204. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +2 -0
  205. package/dist/esm/contracts/ethRegistrarController.d.ts +3 -0
  206. package/dist/esm/contracts/ethRegistrarController.js +2 -0
  207. package/dist/esm/contracts/getContractAddress.d.ts +3 -0
  208. package/dist/esm/contracts/getContractAddress.js +42 -0
  209. package/dist/esm/contracts/index.d.ts +16 -0
  210. package/dist/esm/contracts/index.js +29 -0
  211. package/dist/esm/contracts/multicall.d.ts +3 -0
  212. package/dist/esm/contracts/multicall.js +20 -0
  213. package/dist/esm/contracts/nameWrapper.d.ts +3 -0
  214. package/dist/esm/contracts/nameWrapper.js +2 -0
  215. package/dist/esm/contracts/publicResolver.d.ts +3 -0
  216. package/dist/esm/contracts/publicResolver.js +2 -0
  217. package/dist/esm/contracts/registry.d.ts +3 -0
  218. package/dist/esm/contracts/registry.js +2 -0
  219. package/dist/esm/contracts/reverseRegistrar.d.ts +3 -0
  220. package/dist/esm/contracts/reverseRegistrar.js +2 -0
  221. package/dist/esm/contracts/types.d.ts +2 -0
  222. package/dist/esm/contracts/types.js +1 -0
  223. package/dist/esm/contracts/universalResolver.d.ts +3 -0
  224. package/dist/esm/contracts/universalResolver.js +2 -0
  225. package/dist/esm/functions/batch.d.ts +9 -0
  226. package/dist/esm/functions/batch.js +19 -0
  227. package/dist/esm/functions/batchWrappers.d.ts +29 -0
  228. package/dist/esm/functions/batchWrappers.js +68 -0
  229. package/dist/esm/functions/burnFuses.d.ts +3 -0
  230. package/dist/esm/functions/burnFuses.js +12 -0
  231. package/dist/esm/functions/createSubname.d.ts +19 -0
  232. package/dist/esm/functions/createSubname.js +38 -0
  233. package/dist/esm/functions/deleteSubname.d.ts +4 -0
  234. package/dist/esm/functions/deleteSubname.js +3 -0
  235. package/dist/esm/functions/getDNSOwner.d.ts +7 -0
  236. package/dist/esm/functions/getDNSOwner.js +51 -0
  237. package/dist/esm/functions/getExpiry.d.ts +12 -0
  238. package/dist/esm/functions/getExpiry.js +43 -0
  239. package/dist/esm/functions/getFuses.d.ts +17 -0
  240. package/dist/esm/functions/getFuses.js +60 -0
  241. package/dist/esm/functions/getHistory.d.ts +54 -0
  242. package/dist/esm/functions/getHistory.js +273 -0
  243. package/dist/esm/functions/getName.d.ts +19 -0
  244. package/dist/esm/functions/getName.js +32 -0
  245. package/dist/esm/functions/getNames.d.ts +40 -0
  246. package/dist/esm/functions/getNames.js +220 -0
  247. package/dist/esm/functions/getOwner.d.ts +14 -0
  248. package/dist/esm/functions/getOwner.js +138 -0
  249. package/dist/esm/functions/getPrice.d.ts +13 -0
  250. package/dist/esm/functions/getPrice.js +48 -0
  251. package/dist/esm/functions/getProfile.d.ts +30 -0
  252. package/dist/esm/functions/getProfile.js +299 -0
  253. package/dist/esm/functions/getRecords.d.ts +32 -0
  254. package/dist/esm/functions/getRecords.js +8 -0
  255. package/dist/esm/functions/getResolver.d.ts +9 -0
  256. package/dist/esm/functions/getResolver.js +22 -0
  257. package/dist/esm/functions/getSpecificRecord.d.ts +73 -0
  258. package/dist/esm/functions/getSpecificRecord.js +265 -0
  259. package/dist/esm/functions/getSubnames.d.ts +26 -0
  260. package/dist/esm/functions/getSubnames.js +152 -0
  261. package/dist/esm/functions/initialGetters.d.ts +11 -0
  262. package/dist/esm/functions/initialGetters.js +11 -0
  263. package/dist/esm/functions/setName.d.ts +4 -0
  264. package/dist/esm/functions/setName.js +14 -0
  265. package/dist/esm/functions/setRecords.d.ts +3 -0
  266. package/dist/esm/functions/setRecords.js +19 -0
  267. package/dist/esm/functions/setResolver.d.ts +4 -0
  268. package/dist/esm/functions/setResolver.js +25 -0
  269. package/dist/esm/functions/transferName.d.ts +5 -0
  270. package/dist/esm/functions/transferName.js +31 -0
  271. package/dist/esm/functions/transferSubname.d.ts +5 -0
  272. package/dist/esm/functions/transferSubname.js +25 -0
  273. package/dist/esm/functions/unwrapName.d.ts +4 -0
  274. package/dist/esm/functions/unwrapName.js +25 -0
  275. package/dist/esm/functions/wrapName.d.ts +6 -0
  276. package/dist/esm/functions/wrapName.js +58 -0
  277. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +487 -0
  278. package/dist/esm/generated/BaseRegistrarImplementation.js +1 -0
  279. package/dist/esm/generated/DNSRegistrar.d.ts +220 -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/DoNotCallOnChainUniversalResolverProxy.d.ts +144 -0
  286. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +1 -0
  287. package/dist/esm/generated/ENSRegistry.d.ts +259 -0
  288. package/dist/esm/generated/ENSRegistry.js +1 -0
  289. package/dist/esm/generated/ETHRegistrarController.d.ts +319 -0
  290. package/dist/esm/generated/ETHRegistrarController.js +1 -0
  291. package/dist/esm/generated/Multicall.d.ts +292 -0
  292. package/dist/esm/generated/Multicall.js +1 -0
  293. package/dist/esm/generated/NameWrapper.d.ts +675 -0
  294. package/dist/esm/generated/NameWrapper.js +1 -0
  295. package/dist/esm/generated/P256SHA256Algorithm.d.ts +72 -0
  296. package/dist/esm/generated/P256SHA256Algorithm.js +1 -0
  297. package/dist/esm/generated/PublicResolver.d.ts +542 -0
  298. package/dist/esm/generated/PublicResolver.js +1 -0
  299. package/dist/esm/generated/RSASHA1Algorithm.d.ts +42 -0
  300. package/dist/esm/generated/RSASHA1Algorithm.js +1 -0
  301. package/dist/esm/generated/RSASHA256Algorithm.d.ts +42 -0
  302. package/dist/esm/generated/RSASHA256Algorithm.js +1 -0
  303. package/dist/esm/generated/ReverseRegistrar.d.ts +259 -0
  304. package/dist/esm/generated/ReverseRegistrar.js +1 -0
  305. package/dist/esm/generated/Root.d.ts +173 -0
  306. package/dist/esm/generated/Root.js +1 -0
  307. package/dist/esm/generated/SHA1Digest.d.ts +67 -0
  308. package/dist/esm/generated/SHA1Digest.js +1 -0
  309. package/dist/esm/generated/SHA1NSEC3Digest.d.ts +72 -0
  310. package/dist/esm/generated/SHA1NSEC3Digest.js +1 -0
  311. package/dist/esm/generated/SHA256Digest.d.ts +67 -0
  312. package/dist/esm/generated/SHA256Digest.js +1 -0
  313. package/dist/esm/generated/StaticMetadataService.d.ts +42 -0
  314. package/dist/esm/generated/StaticMetadataService.js +1 -0
  315. package/dist/esm/generated/TLDPublicSuffixList.d.ts +42 -0
  316. package/dist/esm/generated/TLDPublicSuffixList.js +1 -0
  317. package/dist/esm/generated/UniversalResolver.d.ts +82 -0
  318. package/dist/esm/generated/UniversalResolver.js +1 -0
  319. package/dist/esm/generated/common.d.ts +21 -0
  320. package/dist/esm/generated/common.js +1 -0
  321. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
  322. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +766 -0
  323. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +79 -0
  324. package/dist/esm/generated/factories/DNSRegistrar__factory.js +292 -0
  325. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +68 -0
  326. package/dist/esm/generated/factories/DNSSECImpl__factory.js +497 -0
  327. package/dist/esm/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
  328. package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +83 -0
  329. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +56 -0
  330. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +167 -0
  331. package/dist/esm/generated/factories/ENSRegistry__factory.d.ts +52 -0
  332. package/dist/esm/generated/factories/ENSRegistry__factory.js +435 -0
  333. package/dist/esm/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
  334. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +507 -0
  335. package/dist/esm/generated/factories/Multicall__factory.d.ts +42 -0
  336. package/dist/esm/generated/factories/Multicall__factory.js +453 -0
  337. package/dist/esm/generated/factories/NameWrapper__factory.d.ts +57 -0
  338. package/dist/esm/generated/factories/NameWrapper__factory.js +1196 -0
  339. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +34 -0
  340. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +67 -0
  341. package/dist/esm/generated/factories/PublicResolver__factory.d.ts +46 -0
  342. package/dist/esm/generated/factories/PublicResolver__factory.js +888 -0
  343. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +34 -0
  344. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +67 -0
  345. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +34 -0
  346. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +67 -0
  347. package/dist/esm/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
  348. package/dist/esm/generated/factories/ReverseRegistrar__factory.js +336 -0
  349. package/dist/esm/generated/factories/Root__factory.d.ts +52 -0
  350. package/dist/esm/generated/factories/Root__factory.js +239 -0
  351. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +34 -0
  352. package/dist/esm/generated/factories/SHA1Digest__factory.js +62 -0
  353. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +34 -0
  354. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +67 -0
  355. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +34 -0
  356. package/dist/esm/generated/factories/SHA256Digest__factory.js +62 -0
  357. package/dist/esm/generated/factories/StaticMetadataService__factory.d.ts +32 -0
  358. package/dist/esm/generated/factories/StaticMetadataService__factory.js +45 -0
  359. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +34 -0
  360. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +57 -0
  361. package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +42 -0
  362. package/dist/esm/generated/factories/UniversalResolver__factory.js +200 -0
  363. package/dist/esm/generated/factories/index.d.ts +6 -0
  364. package/dist/esm/generated/factories/index.js +9 -0
  365. package/dist/esm/generated/index.d.ts +13 -0
  366. package/dist/esm/generated/index.js +7 -0
  367. package/dist/esm/index.d.ts +471 -0
  368. package/dist/esm/index.js +193 -0
  369. package/dist/esm/utils/contentHash.d.ts +28 -0
  370. package/dist/esm/utils/contentHash.js +153 -0
  371. package/dist/esm/utils/createReverseNode.d.ts +2 -0
  372. package/dist/esm/utils/createReverseNode.js +1 -0
  373. package/dist/esm/utils/format.d.ts +3 -0
  374. package/dist/esm/utils/format.js +3 -0
  375. package/dist/esm/utils/fuses.d.ts +20 -0
  376. package/dist/esm/utils/fuses.js +21 -0
  377. package/dist/esm/utils/generateFuseInput.d.ts +3 -0
  378. package/dist/esm/utils/generateFuseInput.js +14 -0
  379. package/dist/esm/utils/hexEncodedName.d.ts +1 -0
  380. package/dist/esm/utils/hexEncodedName.js +2 -0
  381. package/dist/esm/utils/labels.d.ts +14 -0
  382. package/dist/esm/utils/labels.js +95 -0
  383. package/dist/esm/utils/makeHashIndexes.d.ts +2 -0
  384. package/dist/esm/utils/makeHashIndexes.js +3 -0
  385. package/dist/esm/utils/normalise.d.ts +2 -0
  386. package/dist/esm/utils/normalise.js +20 -0
  387. package/dist/esm/utils/recordHelpers.d.ts +13 -0
  388. package/dist/esm/utils/recordHelpers.js +39 -0
  389. package/dist/esm/utils/registerHelpers.d.ts +26 -0
  390. package/dist/esm/utils/registerHelpers.js +43 -0
  391. package/dist/esm/utils/singleCall.d.ts +9 -0
  392. package/dist/esm/utils/singleCall.js +5 -0
  393. package/dist/esm/utils/validation.d.ts +8 -0
  394. package/dist/esm/utils/validation.js +67 -0
  395. package/package.json +77 -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/ETHRegistrarController.json +494 -0
  403. package/src/ABIs/NameWrapper.json +1183 -0
  404. package/src/ABIs/PublicResolver.json +875 -0
  405. package/src/ABIs/ReverseRegistrar.json +323 -0
  406. package/src/ABIs/StaticMetadataService.json +32 -0
  407. package/src/ABIs/UniversalResolver.json +187 -0
  408. package/src/GqlManager.ts +18 -0
  409. package/src/contracts/baseRegistrar.ts +5 -0
  410. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +5 -0
  411. package/src/contracts/ethRegistrarController.ts +5 -0
  412. package/src/contracts/getContractAddress.ts +52 -0
  413. package/src/contracts/index.ts +68 -0
  414. package/src/contracts/multicall.ts +24 -0
  415. package/src/contracts/nameWrapper.ts +5 -0
  416. package/src/contracts/publicResolver.ts +5 -0
  417. package/src/contracts/registry.ts +5 -0
  418. package/src/contracts/reverseRegistrar.ts +5 -0
  419. package/src/contracts/types.ts +11 -0
  420. package/src/contracts/universalResolver.ts +5 -0
  421. package/src/functions/batch.test.ts +36 -0
  422. package/src/functions/batch.ts +36 -0
  423. package/src/functions/batchWrappers.test.ts +31 -0
  424. package/src/functions/batchWrappers.ts +91 -0
  425. package/src/functions/burnFuses.test.ts +44 -0
  426. package/src/functions/burnFuses.ts +23 -0
  427. package/src/functions/createSubname.test.ts +58 -0
  428. package/src/functions/createSubname.ts +83 -0
  429. package/src/functions/deleteSubname.test.ts +71 -0
  430. package/src/functions/deleteSubname.ts +19 -0
  431. package/src/functions/getDNSOwner.test.ts +122 -0
  432. package/src/functions/getDNSOwner.ts +61 -0
  433. package/src/functions/getExpiry.test.ts +37 -0
  434. package/src/functions/getExpiry.ts +63 -0
  435. package/src/functions/getFuses.test.ts +103 -0
  436. package/src/functions/getFuses.ts +76 -0
  437. package/src/functions/getHistory.test.ts +101 -0
  438. package/src/functions/getHistory.ts +347 -0
  439. package/src/functions/getName.test.ts +47 -0
  440. package/src/functions/getName.ts +41 -0
  441. package/src/functions/getNames.test.ts +247 -0
  442. package/src/functions/getNames.ts +275 -0
  443. package/src/functions/getOwner.test.ts +71 -0
  444. package/src/functions/getOwner.ts +202 -0
  445. package/src/functions/getPrice.ts +71 -0
  446. package/src/functions/getProfile.test.ts +120 -0
  447. package/src/functions/getProfile.ts +543 -0
  448. package/src/functions/getRecords.ts +22 -0
  449. package/src/functions/getResolver.test.ts +19 -0
  450. package/src/functions/getResolver.ts +32 -0
  451. package/src/functions/getSpecificRecord.test.ts +76 -0
  452. package/src/functions/getSpecificRecord.ts +365 -0
  453. package/src/functions/getSubnames.test.ts +31 -0
  454. package/src/functions/getSubnames.ts +190 -0
  455. package/src/functions/initialGetters.ts +11 -0
  456. package/src/functions/makeCommitment.test.ts +23 -0
  457. package/src/functions/normalise.test.ts +22 -0
  458. package/src/functions/setName.test.ts +58 -0
  459. package/src/functions/setName.ts +34 -0
  460. package/src/functions/setRecords.test.ts +58 -0
  461. package/src/functions/setRecords.ts +38 -0
  462. package/src/functions/setResolver.test.ts +60 -0
  463. package/src/functions/setResolver.ts +40 -0
  464. package/src/functions/transferName.test.ts +81 -0
  465. package/src/functions/transferName.ts +57 -0
  466. package/src/functions/transferSubname.test.ts +73 -0
  467. package/src/functions/transferSubname.ts +38 -0
  468. package/src/functions/unwrapName.test.ts +68 -0
  469. package/src/functions/unwrapName.ts +39 -0
  470. package/src/functions/wrapName.test.ts +64 -0
  471. package/src/functions/wrapName.ts +128 -0
  472. package/src/generated/BaseRegistrarImplementation.ts +1122 -0
  473. package/src/generated/DNSRegistrar.ts +445 -0
  474. package/src/generated/DNSSECImpl.ts +770 -0
  475. package/src/generated/DefaultReverseResolver.ts +137 -0
  476. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +285 -0
  477. package/src/generated/ENSRegistry.ts +618 -0
  478. package/src/generated/ETHRegistrarController.ts +743 -0
  479. package/src/generated/Multicall.ts +582 -0
  480. package/src/generated/NameWrapper.ts +1694 -0
  481. package/src/generated/P256SHA256Algorithm.ts +139 -0
  482. package/src/generated/PublicResolver.ts +1326 -0
  483. package/src/generated/RSASHA1Algorithm.ts +109 -0
  484. package/src/generated/RSASHA256Algorithm.ts +109 -0
  485. package/src/generated/ReverseRegistrar.ts +556 -0
  486. package/src/generated/Root.ts +377 -0
  487. package/src/generated/SHA1Digest.ts +129 -0
  488. package/src/generated/SHA1NSEC3Digest.ts +140 -0
  489. package/src/generated/SHA256Digest.ts +129 -0
  490. package/src/generated/StaticMetadataService.ts +85 -0
  491. package/src/generated/TLDPublicSuffixList.ts +99 -0
  492. package/src/generated/UniversalResolver.ts +260 -0
  493. package/src/generated/common.ts +44 -0
  494. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +781 -0
  495. package/src/generated/factories/DNSRegistrar__factory.ts +329 -0
  496. package/src/generated/factories/DNSSECImpl__factory.ts +527 -0
  497. package/src/generated/factories/DefaultReverseResolver__factory.ts +98 -0
  498. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +186 -0
  499. package/src/generated/factories/ENSRegistry__factory.ts +443 -0
  500. package/src/generated/factories/ETHRegistrarController__factory.ts +522 -0
  501. package/src/generated/factories/Multicall__factory.ts +461 -0
  502. package/src/generated/factories/NameWrapper__factory.ts +1204 -0
  503. package/src/generated/factories/P256SHA256Algorithm__factory.ts +91 -0
  504. package/src/generated/factories/PublicResolver__factory.ts +899 -0
  505. package/src/generated/factories/RSASHA1Algorithm__factory.ts +91 -0
  506. package/src/generated/factories/RSASHA256Algorithm__factory.ts +91 -0
  507. package/src/generated/factories/ReverseRegistrar__factory.ts +347 -0
  508. package/src/generated/factories/Root__factory.ts +244 -0
  509. package/src/generated/factories/SHA1Digest__factory.ts +83 -0
  510. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +91 -0
  511. package/src/generated/factories/SHA256Digest__factory.ts +83 -0
  512. package/src/generated/factories/StaticMetadataService__factory.ts +60 -0
  513. package/src/generated/factories/TLDPublicSuffixList__factory.ts +81 -0
  514. package/src/generated/factories/UniversalResolver__factory.ts +211 -0
  515. package/src/generated/factories/index.ts +9 -0
  516. package/src/generated/index.ts +16 -0
  517. package/src/index.ts +516 -0
  518. package/src/tests/setup.ts +53 -0
  519. package/src/tests/withProvider.test.ts +28 -0
  520. package/src/utils/contentHash.ts +151 -0
  521. package/src/utils/createReverseNode.ts +2 -0
  522. package/src/utils/format.ts +8 -0
  523. package/src/utils/fuses.ts +23 -0
  524. package/src/utils/generateFuseInput.ts +18 -0
  525. package/src/utils/hexEncodedName.ts +4 -0
  526. package/src/utils/labels.ts +119 -0
  527. package/src/utils/makeHashIndexes.ts +9 -0
  528. package/src/utils/normalise.ts +27 -0
  529. package/src/utils/recordHelpers.ts +72 -0
  530. package/src/utils/registerHelpers.ts +87 -0
  531. package/src/utils/singleCall.ts +16 -0
  532. package/src/utils/validation.ts +73 -0
  533. package/dist/constants/interfaces.js +0 -13
  534. package/dist/index.js +0 -1135
  535. package/dist/utils/contents.js +0 -126
  536. package/dist/utils/index.js +0 -192
  537. package/dist/utils/labelhash.js +0 -55
  538. package/dist/utils/namehash.js +0 -39
  539. package/dist/utils/records.js +0 -56
package/src/index.ts ADDED
@@ -0,0 +1,516 @@
1
+ import { ethers } from 'ethers'
2
+ import ContractManager from './contracts'
3
+ import { getContractAddress as _getContractAddress } from './contracts/getContractAddress'
4
+ import { SupportedNetworkId } from './contracts/types'
5
+ import type batch from './functions/batch'
6
+ import type {
7
+ multicallWrapper,
8
+ resolverMulticallWrapper,
9
+ universalWrapper,
10
+ } from './functions/batchWrappers'
11
+ import type burnFuses from './functions/burnFuses'
12
+ import type createSubname from './functions/createSubname'
13
+ import type deleteSubname from './functions/deleteSubname'
14
+ import type getExpiry from './functions/getExpiry'
15
+ import type getFuses from './functions/getFuses'
16
+ import type {
17
+ getHistory,
18
+ getHistoryDetailForTransactionHash,
19
+ getHistoryWithDetail,
20
+ } from './functions/getHistory'
21
+ import type getName from './functions/getName'
22
+ import type getNames from './functions/getNames'
23
+ import type getOwner from './functions/getOwner'
24
+ import type getPrice from './functions/getPrice'
25
+ import type getProfile from './functions/getProfile'
26
+ import type getRecords from './functions/getRecords'
27
+ import type getResolver from './functions/getResolver'
28
+ import type {
29
+ getAddr,
30
+ getContentHash,
31
+ getText,
32
+ _getAddr,
33
+ _getContentHash,
34
+ _getText,
35
+ } from './functions/getSpecificRecord'
36
+ import type getSubnames from './functions/getSubnames'
37
+ import type setName from './functions/setName'
38
+ import type setRecords from './functions/setRecords'
39
+ import type setResolver from './functions/setResolver'
40
+ import type transferName from './functions/transferName'
41
+ import type transferSubname from './functions/transferSubname'
42
+ import type unwrapName from './functions/unwrapName'
43
+ import type wrapName from './functions/wrapName'
44
+ import type getDNSOwner from './functions/getDNSOwner'
45
+ import GqlManager from './GqlManager'
46
+ import singleCall from './utils/singleCall'
47
+
48
+ type ENSOptions = {
49
+ graphURI?: string | null
50
+ getContractAddress?: typeof _getContractAddress
51
+ }
52
+
53
+ export type InternalENS = {
54
+ options?: ENSOptions
55
+ provider?: ethers.providers.Provider
56
+ graphURI?: string | null
57
+ } & ENS
58
+
59
+ export type ENSArgs<K extends keyof InternalENS> = {
60
+ [P in K]: InternalENS[P]
61
+ }
62
+
63
+ type OmitFirstArg<F> = F extends (x: any, ...args: infer P) => infer R
64
+ ? (...args: P) => R
65
+ : never
66
+
67
+ type OmitFirstTwoArgs<F> = F extends (
68
+ x: any,
69
+ y: any,
70
+ ...args: infer P
71
+ ) => infer R
72
+ ? (...args: P) => R
73
+ : never
74
+
75
+ type FirstArg<F> = F extends (x: infer A, ...args: any[]) => any ? A : never
76
+
77
+ type FunctionDeps<F> = Extract<keyof FirstArg<F>, string>[]
78
+
79
+ const graphURIEndpoints: Record<string, string> = {
80
+ 1: 'https://api.thegraph.com/subgraphs/name/ensdomains/ens',
81
+ 3: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensropsten',
82
+ 4: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensrinkeby',
83
+ 5: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensgoerli',
84
+ }
85
+
86
+ export type RawFunction = {
87
+ raw: (...args: any[]) => Promise<{ to: string; data: string }>
88
+ decode: (...args: any[]) => Promise<any>
89
+ }
90
+
91
+ export type BatchFunctionResult<F extends RawFunction> = {
92
+ args: Parameters<OmitFirstArg<F['raw']>>
93
+ raw: F['raw']
94
+ decode: F['decode']
95
+ }
96
+
97
+ type BatchFunction<F extends RawFunction> = (
98
+ ...args: Parameters<OmitFirstArg<F['raw']>>
99
+ ) => BatchFunctionResult<F>
100
+
101
+ export type RawFunctionWithBatch = {
102
+ batch: BatchFunction<any>
103
+ } & RawFunction
104
+
105
+ interface GeneratedRawFunction<F extends RawFunction>
106
+ extends Function,
107
+ RawFunction {
108
+ (...args: Parameters<OmitFirstArg<F['raw']>>): ReturnType<
109
+ OmitFirstTwoArgs<F['decode']>
110
+ >
111
+ batch: BatchFunction<F>
112
+ }
113
+
114
+ type CombineFunctionDeps<F> = F extends RawFunction
115
+ ? FunctionDeps<F['raw']> | FunctionDeps<F['decode']>
116
+ : never
117
+
118
+ export interface GenericGeneratedRawFunction
119
+ extends Function,
120
+ RawFunctionWithBatch {}
121
+
122
+ export class ENS {
123
+ [x: string]: any
124
+ protected options?: ENSOptions
125
+ protected provider?: ethers.providers.JsonRpcProvider
126
+ protected graphURI?: string | null
127
+ protected initialProvider?: ethers.providers.JsonRpcProvider
128
+ contracts?: ContractManager
129
+ getContractAddress = _getContractAddress
130
+ gqlInstance = new GqlManager()
131
+
132
+ constructor(options?: ENSOptions) {
133
+ this.options = options
134
+ this.getContractAddress = options?.getContractAddress || _getContractAddress
135
+ }
136
+
137
+ /**
138
+ * Checks for an initial provider and if it exists, sets it as the provider
139
+ * @returns {Promise<void>} - A promise that resolves when the provider is checked, and set if needed
140
+ */
141
+ private checkInitialProvider = async (): Promise<void> => {
142
+ if (!this.initialProvider) {
143
+ return
144
+ }
145
+ await this.setProvider(this.initialProvider)
146
+ return
147
+ }
148
+
149
+ /**
150
+ * Creates an object of ENS properties from an array
151
+ * @param {FunctionDeps} dependencies - An array of ENS properties
152
+ * @returns {Object} - An object of ENS properties
153
+ */
154
+ private forwardDependenciesFromArray = <F>(
155
+ dependencies: FunctionDeps<F>,
156
+ ): object =>
157
+ // Creates an object from entries of the array
158
+ Object.fromEntries(
159
+ // Maps over dependencies and create arrays for each, e.g. ['contracts', contractObj]
160
+ dependencies.map((dep) => [dep, this[dep as keyof InternalENS]]),
161
+ )
162
+
163
+ /**
164
+ * Creates a wrapper for a function to be dynamically imported, with the correct dependencies passed in
165
+ * @param {string} path - The path of the exported function
166
+ * @param {FunctionDeps} dependencies - An array of ENS properties
167
+ * @param {string} exportName - The export name of the target function
168
+ * @param {string} subFunc - The type of function being imported
169
+ * @returns {Function} - The generated wrapped function
170
+ */
171
+ private importGenerator = <F>(
172
+ path: string,
173
+ dependencies: FunctionDeps<F>,
174
+ exportName: string = 'default',
175
+ subFunc?: 'raw' | 'decode' | 'combine' | 'batch',
176
+ passthrough?: RawFunction,
177
+ ): Function => {
178
+ // if batch is specified, create batch func
179
+ if (subFunc === 'batch') {
180
+ return (...args: any[]) => ({ args, ...passthrough })
181
+ }
182
+
183
+ const thisRef = this
184
+ const mainFunc = async function (...args: any[]) {
185
+ // check the initial provider and set if it exists
186
+ await thisRef.checkInitialProvider()
187
+ // import the module dynamically
188
+ const mod = await import(
189
+ /* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true */
190
+ `./functions/${path}`
191
+ )
192
+
193
+ // if combine isn't specified, run normally
194
+ // otherwise, create a function from the raw and decode functions
195
+ if (subFunc !== 'combine') {
196
+ // get the function to call
197
+ const func = subFunc ? mod[exportName][subFunc] : mod[exportName]
198
+ if(dependencies.length === 0) {
199
+ return func(...args)
200
+ }
201
+ // get the dependencies to forward to the function as the first arg
202
+ const dependenciesToForward =
203
+ thisRef.forwardDependenciesFromArray<F>(dependencies)
204
+ // return the function with the dependencies forwarded
205
+ return func(dependenciesToForward, ...args)
206
+ } else {
207
+ // get the dependencies to forward from raw and decode functions
208
+ const dependenciesToForward = thisRef.forwardDependenciesFromArray<
209
+ CombineFunctionDeps<F>
210
+ >(dependencies as any)
211
+
212
+ // return singleCall function with dependencies forwarded
213
+ return singleCall(
214
+ thisRef.provider!,
215
+ dependenciesToForward,
216
+ mod[exportName],
217
+ ...args,
218
+ )
219
+ }
220
+ }
221
+
222
+ // if subfunc is combine, add raw and decode property methods to the function
223
+ if (subFunc === 'combine') {
224
+ mainFunc.raw = this.importGenerator<F>(
225
+ path,
226
+ dependencies,
227
+ exportName,
228
+ 'raw',
229
+ )
230
+ mainFunc.decode = this.importGenerator<F>(
231
+ path,
232
+ dependencies,
233
+ exportName,
234
+ 'decode',
235
+ ) as (data: any, ...args: any[]) => Promise<any>
236
+ mainFunc.batch = this.importGenerator<F>(
237
+ path,
238
+ dependencies,
239
+ exportName,
240
+ 'batch',
241
+ { raw: mainFunc.raw as any, decode: mainFunc.decode as any },
242
+ )
243
+ }
244
+
245
+ return mainFunc as Function
246
+ }
247
+
248
+ /**
249
+ * Generates a normal wrapped function
250
+ * @param {string} path - The path of the exported function
251
+ * @param {FunctionDeps} dependencies - An array of ENS properties
252
+ * @param {string} exportName - The export name of the target function
253
+ * @returns {OmitFirstArg} - The generated wrapped function
254
+ */
255
+ private generateFunction = <F>(
256
+ path: string,
257
+ dependencies: FunctionDeps<F>,
258
+ exportName: string = 'default',
259
+ ): OmitFirstArg<F> =>
260
+ this.importGenerator<F>(path, dependencies, exportName) as OmitFirstArg<F>
261
+
262
+ /**
263
+ * Generates a wrapped function from raw and decode exports
264
+ * @param {string} path - The path of the exported function
265
+ * @param {FunctionDeps} dependencies - An array of ENS properties
266
+ * @param {string} exportName - The export name of the target function
267
+ * @returns {GeneratedRawFunction} - The generated wrapped function
268
+ */
269
+ private generateRawFunction = <F extends RawFunction>(
270
+ path: string,
271
+ dependencies: FunctionDeps<F['raw']> | FunctionDeps<F['decode']>,
272
+ exportName: string = 'default',
273
+ ): GeneratedRawFunction<F> =>
274
+ this.importGenerator<F>(
275
+ path,
276
+ dependencies as any,
277
+ exportName,
278
+ 'combine',
279
+ ) as GeneratedRawFunction<F>
280
+
281
+ /**
282
+ * Sets the provider for the ENS class
283
+ * @param {ethers.providers.JsonRpcProvider} provider - The provider to set
284
+ * @returns {Promise<void>} - A promise that resolves when the provider is set
285
+ */
286
+ public setProvider = async (
287
+ provider: ethers.providers.JsonRpcProvider,
288
+ ): Promise<void> => {
289
+ this.provider = provider
290
+ const network = (await this.provider.getNetwork()).chainId
291
+ if (this.options && this.options.graphURI) {
292
+ this.graphURI = this.options.graphURI
293
+ } else {
294
+ this.graphURI = graphURIEndpoints[network]
295
+ }
296
+ await this.gqlInstance.setUrl(this.graphURI)
297
+ this.contracts = new ContractManager(
298
+ this.provider,
299
+ this.getContractAddress(String(network) as SupportedNetworkId),
300
+ )
301
+ return
302
+ }
303
+
304
+ /**
305
+ * Creates a new ENS instance with a different provider, ideally should be used individually with any given function
306
+ * @param {ethers.providers.JsonRpcProvider} provider - The provider to use
307
+ * @returns {ENS} - A new ENS instance with the given provider
308
+ */
309
+ public withProvider = (provider: ethers.providers.JsonRpcProvider): ENS => {
310
+ const newENS = new ENS(this.options)
311
+ newENS.initialProvider = provider
312
+ return newENS
313
+ }
314
+
315
+ public batch = this.generateRawFunction<typeof batch>(
316
+ 'initialGetters',
317
+ ['multicallWrapper'],
318
+ 'batch',
319
+ )
320
+
321
+ public getProfile = this.generateFunction<typeof getProfile>(
322
+ 'initialGetters',
323
+ [
324
+ 'contracts',
325
+ 'gqlInstance',
326
+ 'getName',
327
+ 'resolverMulticallWrapper',
328
+ 'multicallWrapper',
329
+ '_getAddr',
330
+ '_getContentHash',
331
+ '_getText',
332
+ ],
333
+ 'getProfile',
334
+ )
335
+
336
+ public getRecords = this.generateFunction<typeof getRecords>(
337
+ 'initialGetters',
338
+ ['getProfile'],
339
+ 'getRecords',
340
+ )
341
+
342
+ public getName = this.generateRawFunction<typeof getName>(
343
+ 'initialGetters',
344
+ ['contracts'],
345
+ 'getName',
346
+ )
347
+
348
+ public getResolver = this.generateRawFunction<typeof getResolver>(
349
+ 'getResolver',
350
+ ['contracts'],
351
+ )
352
+
353
+ public getFuses = this.generateRawFunction<typeof getFuses>('getFuses', [
354
+ 'contracts',
355
+ ])
356
+
357
+ public getHistory = this.generateFunction<typeof getHistory>(
358
+ 'getHistory',
359
+ ['gqlInstance'],
360
+ 'getHistory',
361
+ )
362
+
363
+ public getHistoryWithDetail = this.generateFunction<
364
+ typeof getHistoryWithDetail
365
+ >(
366
+ 'getHistory',
367
+ ['contracts', 'gqlInstance', 'provider'],
368
+ 'getHistoryWithDetail',
369
+ )
370
+
371
+ public getHistoryDetailForTransactionHash = this.generateFunction<
372
+ typeof getHistoryDetailForTransactionHash
373
+ >(
374
+ 'getHistory',
375
+ ['contracts', 'provider'],
376
+ 'getHistoryDetailForTransactionHash',
377
+ )
378
+
379
+ public getContentHash = this.generateRawFunction<typeof getContentHash>(
380
+ 'initialGetters',
381
+ ['contracts', 'universalWrapper'],
382
+ 'getContentHash',
383
+ )
384
+
385
+ public _getContentHash = this.generateRawFunction<typeof _getContentHash>(
386
+ 'initialGetters',
387
+ ['contracts'],
388
+ '_getContentHash',
389
+ )
390
+
391
+ public getAddr = this.generateRawFunction<typeof getAddr>(
392
+ 'initialGetters',
393
+ ['contracts', 'universalWrapper'],
394
+ 'getAddr',
395
+ )
396
+
397
+ public _getAddr = this.generateRawFunction<typeof _getAddr>(
398
+ 'initialGetters',
399
+ ['contracts'],
400
+ '_getAddr',
401
+ )
402
+
403
+ public getText = this.generateRawFunction<typeof getText>(
404
+ 'initialGetters',
405
+ ['contracts', 'universalWrapper'],
406
+ 'getText',
407
+ )
408
+
409
+ public _getText = this.generateRawFunction<typeof _getText>(
410
+ 'initialGetters',
411
+ ['contracts'],
412
+ '_getText',
413
+ )
414
+
415
+ public getOwner = this.generateRawFunction<typeof getOwner>(
416
+ 'initialGetters',
417
+ ['contracts', 'multicallWrapper'],
418
+ 'getOwner',
419
+ )
420
+
421
+ public getExpiry = this.generateRawFunction<typeof getExpiry>(
422
+ 'initialGetters',
423
+ ['contracts', 'multicallWrapper'],
424
+ 'getExpiry',
425
+ )
426
+
427
+ public getSubnames = this.generateFunction<typeof getSubnames>(
428
+ 'initialGetters',
429
+ ['gqlInstance'],
430
+ 'getSubnames',
431
+ )
432
+
433
+ public getNames = this.generateFunction<typeof getNames>(
434
+ 'initialGetters',
435
+ ['gqlInstance'],
436
+ 'getNames',
437
+ )
438
+
439
+ public getPrice = this.generateRawFunction<typeof getPrice>(
440
+ 'initialGetters',
441
+ ['contracts', 'multicallWrapper'],
442
+ 'getPrice',
443
+ )
444
+
445
+ public universalWrapper = this.generateRawFunction<typeof universalWrapper>(
446
+ 'initialGetters',
447
+ ['contracts'],
448
+ 'universalWrapper',
449
+ )
450
+
451
+ public resolverMulticallWrapper = this.generateRawFunction<
452
+ typeof resolverMulticallWrapper
453
+ >('initialGetters', ['contracts'], 'resolverMulticallWrapper')
454
+
455
+ public multicallWrapper = this.generateRawFunction<typeof multicallWrapper>(
456
+ 'initialGetters',
457
+ ['contracts'],
458
+ 'multicallWrapper',
459
+ )
460
+
461
+ public setName = this.generateFunction<typeof setName>('setName', [
462
+ 'contracts',
463
+ 'provider',
464
+ ])
465
+
466
+ public setRecords = this.generateFunction<typeof setRecords>('setRecords', [
467
+ 'contracts',
468
+ 'provider',
469
+ 'getResolver',
470
+ ])
471
+
472
+ public setResolver = this.generateFunction<typeof setResolver>(
473
+ 'setResolver',
474
+ ['contracts', 'provider'],
475
+ )
476
+
477
+ public transferName = this.generateFunction<typeof transferName>(
478
+ 'transferName',
479
+ ['contracts', 'provider'],
480
+ )
481
+
482
+ public wrapName = this.generateFunction<typeof wrapName>('wrapName', [
483
+ 'contracts',
484
+ 'provider',
485
+ ])
486
+
487
+ public unwrapName = this.generateFunction<typeof unwrapName>('unwrapName', [
488
+ 'contracts',
489
+ 'provider',
490
+ ])
491
+
492
+ public burnFuses = this.generateFunction<typeof burnFuses>('burnFuses', [
493
+ 'contracts',
494
+ 'provider',
495
+ ])
496
+
497
+ public createSubname = this.generateFunction<typeof createSubname>(
498
+ 'createSubname',
499
+ ['contracts', 'provider'],
500
+ )
501
+
502
+ public deleteSubname = this.generateFunction<typeof deleteSubname>(
503
+ 'deleteSubname',
504
+ ['contracts', 'provider', 'transferSubname'],
505
+ )
506
+
507
+ public transferSubname = this.generateFunction<typeof transferSubname>(
508
+ 'transferSubname',
509
+ ['contracts', 'provider'],
510
+ )
511
+
512
+ public getDNSOwner = this.generateFunction<typeof getDNSOwner>(
513
+ 'getDNSOwner',
514
+ [],
515
+ )
516
+ }
@@ -0,0 +1,53 @@
1
+ import { ethers } from 'ethers'
2
+ import { ENS } from '../'
3
+ import { ContractName, SupportedNetworkId } from '../contracts/types'
4
+
5
+ const addresses = {
6
+ BaseRegistrarImplementation: '0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85',
7
+ Multicall: '0xcA11bde05977b3631167028862bE2a173976CA11',
8
+ NameWrapper: '0xD7D9C568Bc4C2343ab286096e1F851D33eEf49Af',
9
+ PublicResolver: '0x3bAa5F3ea7bFCC8948c4140f233d72c11eBF0bdB',
10
+ ENSRegistryWithFallback: '0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e',
11
+ ReverseRegistrar: '0x4696E2f7D9f4CA187155ff50D93C00172181ddd5',
12
+ UniversalResolver: '0xAbCd01ddDa102B0C32e8C5a371D7480dFA559DC3',
13
+ }
14
+
15
+ const createENS = (graphURI: string) =>
16
+ new ENS({
17
+ graphURI,
18
+ getContractAddress:
19
+ (_: SupportedNetworkId) => (contractName: ContractName) =>
20
+ addresses[contractName],
21
+ })
22
+
23
+ export default async (useReal?: boolean) => {
24
+ const graphURI = useReal
25
+ ? 'https://api.thegraph.com/subgraphs/name/ensdomains/ensropsten'
26
+ : 'http://localhost:8000/subgraphs/name/graphprotocol/ens'
27
+
28
+ const provider = new ethers.providers.JsonRpcProvider(
29
+ 'http://localhost:8545',
30
+ 'ropsten',
31
+ )
32
+
33
+ let ENSInstance = createENS(graphURI)
34
+ await ENSInstance.setProvider(provider)
35
+
36
+ let snapshot = await provider.send('evm_snapshot', [])
37
+
38
+ const revert = async (customSnapshot?: any) => {
39
+ const snapshotToUse = customSnapshot || snapshot
40
+ await provider.send('evm_revert', [snapshotToUse])
41
+ if (parseInt(snapshot, 16) >= parseInt(snapshotToUse, 16)) {
42
+ snapshot = await provider.send('evm_snapshot', [])
43
+ }
44
+
45
+ ENSInstance = createENS(graphURI)
46
+ await ENSInstance.setProvider(provider)
47
+ return
48
+ }
49
+
50
+ const createSnapshot = async () => await provider.send('evm_snapshot', [])
51
+
52
+ return { ENSInstance, revert, createSnapshot, provider }
53
+ }
@@ -0,0 +1,28 @@
1
+ import { ethers } from 'ethers'
2
+ import { ENS } from '..'
3
+ import setup from '../tests/setup'
4
+
5
+ let ENSInstance: ENS
6
+ let providerFake: ethers.providers.JsonRpcProvider
7
+
8
+ beforeAll(async () => {
9
+ ;({ ENSInstance } = await setup())
10
+ providerFake = new ethers.providers.JsonRpcProvider(
11
+ 'http://localhost:34023',
12
+ 'ropsten',
13
+ )
14
+ })
15
+
16
+ describe('withProvider', () => {
17
+ it('should be able to use a new provider', async () => {
18
+ const addr = await ENSInstance.getAddr('jefflau.eth')
19
+ expect(addr).toBeTruthy()
20
+
21
+ try {
22
+ await ENSInstance.withProvider(providerFake).getOwner('jefflau.eth')
23
+ expect(false).toBeTruthy()
24
+ } catch {
25
+ expect(true).toBeTruthy()
26
+ }
27
+ })
28
+ })