@ensdomains/ensjs 2.0.1 → 3.0.0-alpha.10

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 (553) 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/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 +5 -0
  34. package/dist/cjs/functions/burnFuses.js +14 -0
  35. package/dist/cjs/functions/createSubname.d.ts +15 -0
  36. package/dist/cjs/functions/createSubname.js +40 -0
  37. package/dist/cjs/functions/deleteSubname.d.ts +4 -0
  38. package/dist/cjs/functions/deleteSubname.js +9 -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 +33 -0
  56. package/dist/cjs/functions/getProfile.js +346 -0
  57. package/dist/cjs/functions/getRecords.d.ts +33 -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 +5 -0
  68. package/dist/cjs/functions/setName.js +12 -0
  69. package/dist/cjs/functions/setRecord.d.ts +18 -0
  70. package/dist/cjs/functions/setRecord.js +27 -0
  71. package/dist/cjs/functions/setRecords.d.ts +6 -0
  72. package/dist/cjs/functions/setRecords.js +24 -0
  73. package/dist/cjs/functions/setResolver.d.ts +5 -0
  74. package/dist/cjs/functions/setResolver.js +22 -0
  75. package/dist/cjs/functions/transferName.d.ts +6 -0
  76. package/dist/cjs/functions/transferName.js +29 -0
  77. package/dist/cjs/functions/transferSubname.d.ts +6 -0
  78. package/dist/cjs/functions/transferSubname.js +24 -0
  79. package/dist/cjs/functions/unwrapName.d.ts +5 -0
  80. package/dist/cjs/functions/unwrapName.js +23 -0
  81. package/dist/cjs/functions/wrapName.d.ts +8 -0
  82. package/dist/cjs/functions/wrapName.js +60 -0
  83. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +487 -0
  84. package/dist/cjs/generated/BaseRegistrarImplementation.js +2 -0
  85. package/dist/cjs/generated/DNSRegistrar.d.ts +220 -0
  86. package/dist/cjs/generated/DNSRegistrar.js +2 -0
  87. package/dist/cjs/generated/DNSSECImpl.d.ts +402 -0
  88. package/dist/cjs/generated/DNSSECImpl.js +2 -0
  89. package/dist/cjs/generated/DefaultReverseResolver.d.ts +66 -0
  90. package/dist/cjs/generated/DefaultReverseResolver.js +2 -0
  91. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +144 -0
  92. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +2 -0
  93. package/dist/cjs/generated/ENSRegistry.d.ts +259 -0
  94. package/dist/cjs/generated/ENSRegistry.js +2 -0
  95. package/dist/cjs/generated/ETHRegistrarController.d.ts +319 -0
  96. package/dist/cjs/generated/ETHRegistrarController.js +2 -0
  97. package/dist/cjs/generated/Multicall.d.ts +292 -0
  98. package/dist/cjs/generated/Multicall.js +2 -0
  99. package/dist/cjs/generated/NameWrapper.d.ts +675 -0
  100. package/dist/cjs/generated/NameWrapper.js +2 -0
  101. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +72 -0
  102. package/dist/cjs/generated/P256SHA256Algorithm.js +2 -0
  103. package/dist/cjs/generated/PublicResolver.d.ts +542 -0
  104. package/dist/cjs/generated/PublicResolver.js +2 -0
  105. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +42 -0
  106. package/dist/cjs/generated/RSASHA1Algorithm.js +2 -0
  107. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +42 -0
  108. package/dist/cjs/generated/RSASHA256Algorithm.js +2 -0
  109. package/dist/cjs/generated/ReverseRegistrar.d.ts +259 -0
  110. package/dist/cjs/generated/ReverseRegistrar.js +2 -0
  111. package/dist/cjs/generated/Root.d.ts +173 -0
  112. package/dist/cjs/generated/Root.js +2 -0
  113. package/dist/cjs/generated/SHA1Digest.d.ts +67 -0
  114. package/dist/cjs/generated/SHA1Digest.js +2 -0
  115. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +72 -0
  116. package/dist/cjs/generated/SHA1NSEC3Digest.js +2 -0
  117. package/dist/cjs/generated/SHA256Digest.d.ts +67 -0
  118. package/dist/cjs/generated/SHA256Digest.js +2 -0
  119. package/dist/cjs/generated/StaticMetadataService.d.ts +42 -0
  120. package/dist/cjs/generated/StaticMetadataService.js +2 -0
  121. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +42 -0
  122. package/dist/cjs/generated/TLDPublicSuffixList.js +2 -0
  123. package/dist/cjs/generated/UniversalResolver.d.ts +82 -0
  124. package/dist/cjs/generated/UniversalResolver.js +2 -0
  125. package/dist/cjs/generated/common.d.ts +21 -0
  126. package/dist/cjs/generated/common.js +2 -0
  127. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
  128. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +770 -0
  129. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +79 -0
  130. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +296 -0
  131. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +68 -0
  132. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +501 -0
  133. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
  134. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +87 -0
  135. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +56 -0
  136. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +171 -0
  137. package/dist/cjs/generated/factories/ENSRegistry__factory.d.ts +52 -0
  138. package/dist/cjs/generated/factories/ENSRegistry__factory.js +439 -0
  139. package/dist/cjs/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
  140. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +511 -0
  141. package/dist/cjs/generated/factories/Multicall__factory.d.ts +42 -0
  142. package/dist/cjs/generated/factories/Multicall__factory.js +457 -0
  143. package/dist/cjs/generated/factories/NameWrapper__factory.d.ts +57 -0
  144. package/dist/cjs/generated/factories/NameWrapper__factory.js +1200 -0
  145. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +34 -0
  146. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +71 -0
  147. package/dist/cjs/generated/factories/PublicResolver__factory.d.ts +46 -0
  148. package/dist/cjs/generated/factories/PublicResolver__factory.js +892 -0
  149. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +34 -0
  150. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +71 -0
  151. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +34 -0
  152. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +71 -0
  153. package/dist/cjs/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
  154. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +340 -0
  155. package/dist/cjs/generated/factories/Root__factory.d.ts +52 -0
  156. package/dist/cjs/generated/factories/Root__factory.js +243 -0
  157. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +34 -0
  158. package/dist/cjs/generated/factories/SHA1Digest__factory.js +66 -0
  159. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +34 -0
  160. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +71 -0
  161. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +34 -0
  162. package/dist/cjs/generated/factories/SHA256Digest__factory.js +66 -0
  163. package/dist/cjs/generated/factories/StaticMetadataService__factory.d.ts +32 -0
  164. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +49 -0
  165. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +34 -0
  166. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +61 -0
  167. package/dist/cjs/generated/factories/UniversalResolver__factory.d.ts +42 -0
  168. package/dist/cjs/generated/factories/UniversalResolver__factory.js +204 -0
  169. package/dist/cjs/generated/factories/index.d.ts +6 -0
  170. package/dist/cjs/generated/factories/index.js +18 -0
  171. package/dist/cjs/generated/index.d.ts +13 -0
  172. package/dist/cjs/generated/index.js +39 -0
  173. package/dist/cjs/index.d.ts +472 -0
  174. package/dist/cjs/index.js +247 -0
  175. package/dist/cjs/utils/contentHash.d.ts +28 -0
  176. package/dist/cjs/utils/contentHash.js +164 -0
  177. package/dist/cjs/utils/createReverseNode.d.ts +2 -0
  178. package/dist/cjs/utils/createReverseNode.js +3 -0
  179. package/dist/cjs/utils/format.d.ts +3 -0
  180. package/dist/cjs/utils/format.js +9 -0
  181. package/dist/cjs/utils/fuses.d.ts +20 -0
  182. package/dist/cjs/utils/fuses.js +24 -0
  183. package/dist/cjs/utils/generateFuseInput.d.ts +3 -0
  184. package/dist/cjs/utils/generateFuseInput.js +19 -0
  185. package/dist/cjs/utils/hexEncodedName.d.ts +1 -0
  186. package/dist/cjs/utils/hexEncodedName.js +9 -0
  187. package/dist/cjs/utils/labels.d.ts +14 -0
  188. package/dist/cjs/utils/labels.js +113 -0
  189. package/dist/cjs/utils/makeHashIndexes.d.ts +2 -0
  190. package/dist/cjs/utils/makeHashIndexes.js +8 -0
  191. package/dist/cjs/utils/normalise.d.ts +2 -0
  192. package/dist/cjs/utils/normalise.js +35 -0
  193. package/dist/cjs/utils/recordHelpers.d.ts +16 -0
  194. package/dist/cjs/utils/recordHelpers.js +71 -0
  195. package/dist/cjs/utils/registerHelpers.d.ts +26 -0
  196. package/dist/cjs/utils/registerHelpers.js +52 -0
  197. package/dist/cjs/utils/singleCall.d.ts +9 -0
  198. package/dist/cjs/utils/singleCall.js +7 -0
  199. package/dist/cjs/utils/validation.d.ts +8 -0
  200. package/dist/cjs/utils/validation.js +73 -0
  201. package/dist/cjs/utils/writeTx.d.ts +4 -0
  202. package/dist/cjs/utils/writeTx.js +3 -0
  203. package/dist/esm/GqlManager.d.ts +9 -0
  204. package/dist/esm/GqlManager.js +74 -0
  205. package/dist/esm/contracts/baseRegistrar.d.ts +3 -0
  206. package/dist/esm/contracts/baseRegistrar.js +2 -0
  207. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +3 -0
  208. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +2 -0
  209. package/dist/esm/contracts/ethRegistrarController.d.ts +3 -0
  210. package/dist/esm/contracts/ethRegistrarController.js +2 -0
  211. package/dist/esm/contracts/getContractAddress.d.ts +3 -0
  212. package/dist/esm/contracts/getContractAddress.js +42 -0
  213. package/dist/esm/contracts/index.d.ts +16 -0
  214. package/dist/esm/contracts/index.js +29 -0
  215. package/dist/esm/contracts/multicall.d.ts +3 -0
  216. package/dist/esm/contracts/multicall.js +20 -0
  217. package/dist/esm/contracts/nameWrapper.d.ts +3 -0
  218. package/dist/esm/contracts/nameWrapper.js +2 -0
  219. package/dist/esm/contracts/publicResolver.d.ts +3 -0
  220. package/dist/esm/contracts/publicResolver.js +2 -0
  221. package/dist/esm/contracts/registry.d.ts +3 -0
  222. package/dist/esm/contracts/registry.js +2 -0
  223. package/dist/esm/contracts/reverseRegistrar.d.ts +3 -0
  224. package/dist/esm/contracts/reverseRegistrar.js +2 -0
  225. package/dist/esm/contracts/types.d.ts +2 -0
  226. package/dist/esm/contracts/types.js +1 -0
  227. package/dist/esm/contracts/universalResolver.d.ts +3 -0
  228. package/dist/esm/contracts/universalResolver.js +2 -0
  229. package/dist/esm/functions/batch.d.ts +9 -0
  230. package/dist/esm/functions/batch.js +19 -0
  231. package/dist/esm/functions/batchWrappers.d.ts +29 -0
  232. package/dist/esm/functions/batchWrappers.js +68 -0
  233. package/dist/esm/functions/burnFuses.d.ts +5 -0
  234. package/dist/esm/functions/burnFuses.js +8 -0
  235. package/dist/esm/functions/createSubname.d.ts +15 -0
  236. package/dist/esm/functions/createSubname.js +34 -0
  237. package/dist/esm/functions/deleteSubname.d.ts +4 -0
  238. package/dist/esm/functions/deleteSubname.js +6 -0
  239. package/dist/esm/functions/getDNSOwner.d.ts +7 -0
  240. package/dist/esm/functions/getDNSOwner.js +51 -0
  241. package/dist/esm/functions/getExpiry.d.ts +12 -0
  242. package/dist/esm/functions/getExpiry.js +43 -0
  243. package/dist/esm/functions/getFuses.d.ts +17 -0
  244. package/dist/esm/functions/getFuses.js +60 -0
  245. package/dist/esm/functions/getHistory.d.ts +54 -0
  246. package/dist/esm/functions/getHistory.js +273 -0
  247. package/dist/esm/functions/getName.d.ts +19 -0
  248. package/dist/esm/functions/getName.js +32 -0
  249. package/dist/esm/functions/getNames.d.ts +40 -0
  250. package/dist/esm/functions/getNames.js +220 -0
  251. package/dist/esm/functions/getOwner.d.ts +14 -0
  252. package/dist/esm/functions/getOwner.js +138 -0
  253. package/dist/esm/functions/getPrice.d.ts +13 -0
  254. package/dist/esm/functions/getPrice.js +48 -0
  255. package/dist/esm/functions/getProfile.d.ts +33 -0
  256. package/dist/esm/functions/getProfile.js +343 -0
  257. package/dist/esm/functions/getRecords.d.ts +33 -0
  258. package/dist/esm/functions/getRecords.js +8 -0
  259. package/dist/esm/functions/getResolver.d.ts +9 -0
  260. package/dist/esm/functions/getResolver.js +22 -0
  261. package/dist/esm/functions/getSpecificRecord.d.ts +73 -0
  262. package/dist/esm/functions/getSpecificRecord.js +265 -0
  263. package/dist/esm/functions/getSubnames.d.ts +26 -0
  264. package/dist/esm/functions/getSubnames.js +152 -0
  265. package/dist/esm/functions/initialGetters.d.ts +11 -0
  266. package/dist/esm/functions/initialGetters.js +11 -0
  267. package/dist/esm/functions/setName.d.ts +5 -0
  268. package/dist/esm/functions/setName.js +9 -0
  269. package/dist/esm/functions/setRecord.d.ts +18 -0
  270. package/dist/esm/functions/setRecord.js +24 -0
  271. package/dist/esm/functions/setRecords.d.ts +6 -0
  272. package/dist/esm/functions/setRecords.js +21 -0
  273. package/dist/esm/functions/setResolver.d.ts +5 -0
  274. package/dist/esm/functions/setResolver.js +19 -0
  275. package/dist/esm/functions/transferName.d.ts +6 -0
  276. package/dist/esm/functions/transferName.js +26 -0
  277. package/dist/esm/functions/transferSubname.d.ts +6 -0
  278. package/dist/esm/functions/transferSubname.js +21 -0
  279. package/dist/esm/functions/unwrapName.d.ts +5 -0
  280. package/dist/esm/functions/unwrapName.js +20 -0
  281. package/dist/esm/functions/wrapName.d.ts +8 -0
  282. package/dist/esm/functions/wrapName.js +54 -0
  283. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +487 -0
  284. package/dist/esm/generated/BaseRegistrarImplementation.js +1 -0
  285. package/dist/esm/generated/DNSRegistrar.d.ts +220 -0
  286. package/dist/esm/generated/DNSRegistrar.js +1 -0
  287. package/dist/esm/generated/DNSSECImpl.d.ts +402 -0
  288. package/dist/esm/generated/DNSSECImpl.js +1 -0
  289. package/dist/esm/generated/DefaultReverseResolver.d.ts +66 -0
  290. package/dist/esm/generated/DefaultReverseResolver.js +1 -0
  291. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +144 -0
  292. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +1 -0
  293. package/dist/esm/generated/ENSRegistry.d.ts +259 -0
  294. package/dist/esm/generated/ENSRegistry.js +1 -0
  295. package/dist/esm/generated/ETHRegistrarController.d.ts +319 -0
  296. package/dist/esm/generated/ETHRegistrarController.js +1 -0
  297. package/dist/esm/generated/Multicall.d.ts +292 -0
  298. package/dist/esm/generated/Multicall.js +1 -0
  299. package/dist/esm/generated/NameWrapper.d.ts +675 -0
  300. package/dist/esm/generated/NameWrapper.js +1 -0
  301. package/dist/esm/generated/P256SHA256Algorithm.d.ts +72 -0
  302. package/dist/esm/generated/P256SHA256Algorithm.js +1 -0
  303. package/dist/esm/generated/PublicResolver.d.ts +542 -0
  304. package/dist/esm/generated/PublicResolver.js +1 -0
  305. package/dist/esm/generated/RSASHA1Algorithm.d.ts +42 -0
  306. package/dist/esm/generated/RSASHA1Algorithm.js +1 -0
  307. package/dist/esm/generated/RSASHA256Algorithm.d.ts +42 -0
  308. package/dist/esm/generated/RSASHA256Algorithm.js +1 -0
  309. package/dist/esm/generated/ReverseRegistrar.d.ts +259 -0
  310. package/dist/esm/generated/ReverseRegistrar.js +1 -0
  311. package/dist/esm/generated/Root.d.ts +173 -0
  312. package/dist/esm/generated/Root.js +1 -0
  313. package/dist/esm/generated/SHA1Digest.d.ts +67 -0
  314. package/dist/esm/generated/SHA1Digest.js +1 -0
  315. package/dist/esm/generated/SHA1NSEC3Digest.d.ts +72 -0
  316. package/dist/esm/generated/SHA1NSEC3Digest.js +1 -0
  317. package/dist/esm/generated/SHA256Digest.d.ts +67 -0
  318. package/dist/esm/generated/SHA256Digest.js +1 -0
  319. package/dist/esm/generated/StaticMetadataService.d.ts +42 -0
  320. package/dist/esm/generated/StaticMetadataService.js +1 -0
  321. package/dist/esm/generated/TLDPublicSuffixList.d.ts +42 -0
  322. package/dist/esm/generated/TLDPublicSuffixList.js +1 -0
  323. package/dist/esm/generated/UniversalResolver.d.ts +82 -0
  324. package/dist/esm/generated/UniversalResolver.js +1 -0
  325. package/dist/esm/generated/common.d.ts +21 -0
  326. package/dist/esm/generated/common.js +1 -0
  327. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
  328. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +766 -0
  329. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +79 -0
  330. package/dist/esm/generated/factories/DNSRegistrar__factory.js +292 -0
  331. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +68 -0
  332. package/dist/esm/generated/factories/DNSSECImpl__factory.js +497 -0
  333. package/dist/esm/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
  334. package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +83 -0
  335. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +56 -0
  336. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +167 -0
  337. package/dist/esm/generated/factories/ENSRegistry__factory.d.ts +52 -0
  338. package/dist/esm/generated/factories/ENSRegistry__factory.js +435 -0
  339. package/dist/esm/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
  340. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +507 -0
  341. package/dist/esm/generated/factories/Multicall__factory.d.ts +42 -0
  342. package/dist/esm/generated/factories/Multicall__factory.js +453 -0
  343. package/dist/esm/generated/factories/NameWrapper__factory.d.ts +57 -0
  344. package/dist/esm/generated/factories/NameWrapper__factory.js +1196 -0
  345. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +34 -0
  346. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +67 -0
  347. package/dist/esm/generated/factories/PublicResolver__factory.d.ts +46 -0
  348. package/dist/esm/generated/factories/PublicResolver__factory.js +888 -0
  349. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +34 -0
  350. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +67 -0
  351. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +34 -0
  352. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +67 -0
  353. package/dist/esm/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
  354. package/dist/esm/generated/factories/ReverseRegistrar__factory.js +336 -0
  355. package/dist/esm/generated/factories/Root__factory.d.ts +52 -0
  356. package/dist/esm/generated/factories/Root__factory.js +239 -0
  357. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +34 -0
  358. package/dist/esm/generated/factories/SHA1Digest__factory.js +62 -0
  359. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +34 -0
  360. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +67 -0
  361. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +34 -0
  362. package/dist/esm/generated/factories/SHA256Digest__factory.js +62 -0
  363. package/dist/esm/generated/factories/StaticMetadataService__factory.d.ts +32 -0
  364. package/dist/esm/generated/factories/StaticMetadataService__factory.js +45 -0
  365. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +34 -0
  366. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +57 -0
  367. package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +42 -0
  368. package/dist/esm/generated/factories/UniversalResolver__factory.js +200 -0
  369. package/dist/esm/generated/factories/index.d.ts +6 -0
  370. package/dist/esm/generated/factories/index.js +9 -0
  371. package/dist/esm/generated/index.d.ts +13 -0
  372. package/dist/esm/generated/index.js +7 -0
  373. package/dist/esm/index.d.ts +472 -0
  374. package/dist/esm/index.js +212 -0
  375. package/dist/esm/utils/contentHash.d.ts +28 -0
  376. package/dist/esm/utils/contentHash.js +153 -0
  377. package/dist/esm/utils/createReverseNode.d.ts +2 -0
  378. package/dist/esm/utils/createReverseNode.js +1 -0
  379. package/dist/esm/utils/format.d.ts +3 -0
  380. package/dist/esm/utils/format.js +3 -0
  381. package/dist/esm/utils/fuses.d.ts +20 -0
  382. package/dist/esm/utils/fuses.js +21 -0
  383. package/dist/esm/utils/generateFuseInput.d.ts +3 -0
  384. package/dist/esm/utils/generateFuseInput.js +14 -0
  385. package/dist/esm/utils/hexEncodedName.d.ts +1 -0
  386. package/dist/esm/utils/hexEncodedName.js +2 -0
  387. package/dist/esm/utils/labels.d.ts +14 -0
  388. package/dist/esm/utils/labels.js +96 -0
  389. package/dist/esm/utils/makeHashIndexes.d.ts +2 -0
  390. package/dist/esm/utils/makeHashIndexes.js +3 -0
  391. package/dist/esm/utils/normalise.d.ts +2 -0
  392. package/dist/esm/utils/normalise.js +27 -0
  393. package/dist/esm/utils/recordHelpers.d.ts +16 -0
  394. package/dist/esm/utils/recordHelpers.js +65 -0
  395. package/dist/esm/utils/registerHelpers.d.ts +26 -0
  396. package/dist/esm/utils/registerHelpers.js +43 -0
  397. package/dist/esm/utils/singleCall.d.ts +9 -0
  398. package/dist/esm/utils/singleCall.js +5 -0
  399. package/dist/esm/utils/validation.d.ts +8 -0
  400. package/dist/esm/utils/validation.js +67 -0
  401. package/dist/esm/utils/writeTx.d.ts +4 -0
  402. package/dist/esm/utils/writeTx.js +1 -0
  403. package/package.json +79 -48
  404. package/src/@types/@ensdomains/content-hash.d.ts +1 -0
  405. package/src/@types/@ensdomains/ens-contracts.d.ts +1 -0
  406. package/src/@types/FuseOptions.d.ts +9 -0
  407. package/src/@types/dns-packet/index.d.ts +114 -0
  408. package/src/@types/dns-packet.d.ts +1 -0
  409. package/src/@types/idna-uts46-hx.d.ts +1 -0
  410. package/src/ABIs/ETHRegistrarController.json +494 -0
  411. package/src/ABIs/NameWrapper.json +1183 -0
  412. package/src/ABIs/PublicResolver.json +875 -0
  413. package/src/ABIs/ReverseRegistrar.json +323 -0
  414. package/src/ABIs/StaticMetadataService.json +32 -0
  415. package/src/ABIs/UniversalResolver.json +187 -0
  416. package/src/GqlManager.test.ts +170 -0
  417. package/src/GqlManager.ts +83 -0
  418. package/src/contracts/baseRegistrar.ts +5 -0
  419. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +5 -0
  420. package/src/contracts/ethRegistrarController.ts +5 -0
  421. package/src/contracts/getContractAddress.ts +52 -0
  422. package/src/contracts/index.ts +68 -0
  423. package/src/contracts/multicall.ts +24 -0
  424. package/src/contracts/nameWrapper.ts +5 -0
  425. package/src/contracts/publicResolver.ts +5 -0
  426. package/src/contracts/registry.ts +5 -0
  427. package/src/contracts/reverseRegistrar.ts +5 -0
  428. package/src/contracts/types.ts +11 -0
  429. package/src/contracts/universalResolver.ts +5 -0
  430. package/src/functions/batch.test.ts +36 -0
  431. package/src/functions/batch.ts +36 -0
  432. package/src/functions/batchWrappers.test.ts +31 -0
  433. package/src/functions/batchWrappers.ts +91 -0
  434. package/src/functions/burnFuses.test.ts +45 -0
  435. package/src/functions/burnFuses.ts +21 -0
  436. package/src/functions/createSubname.test.ts +55 -0
  437. package/src/functions/createSubname.ts +76 -0
  438. package/src/functions/deleteSubname.test.ts +72 -0
  439. package/src/functions/deleteSubname.ts +16 -0
  440. package/src/functions/getDNSOwner.test.ts +122 -0
  441. package/src/functions/getDNSOwner.ts +61 -0
  442. package/src/functions/getExpiry.test.ts +37 -0
  443. package/src/functions/getExpiry.ts +63 -0
  444. package/src/functions/getFuses.test.ts +105 -0
  445. package/src/functions/getFuses.ts +76 -0
  446. package/src/functions/getHistory.test.ts +101 -0
  447. package/src/functions/getHistory.ts +347 -0
  448. package/src/functions/getName.test.ts +47 -0
  449. package/src/functions/getName.ts +41 -0
  450. package/src/functions/getNames.test.ts +247 -0
  451. package/src/functions/getNames.ts +275 -0
  452. package/src/functions/getOwner.test.ts +73 -0
  453. package/src/functions/getOwner.ts +202 -0
  454. package/src/functions/getPrice.ts +71 -0
  455. package/src/functions/getProfile.test.ts +135 -0
  456. package/src/functions/getProfile.ts +606 -0
  457. package/src/functions/getRecords.ts +23 -0
  458. package/src/functions/getResolver.test.ts +19 -0
  459. package/src/functions/getResolver.ts +32 -0
  460. package/src/functions/getSpecificRecord.test.ts +76 -0
  461. package/src/functions/getSpecificRecord.ts +365 -0
  462. package/src/functions/getSubnames.test.ts +31 -0
  463. package/src/functions/getSubnames.ts +190 -0
  464. package/src/functions/initialGetters.ts +11 -0
  465. package/src/functions/makeCommitment.test.ts +23 -0
  466. package/src/functions/normalise.test.ts +22 -0
  467. package/src/functions/setName.test.ts +59 -0
  468. package/src/functions/setName.ts +32 -0
  469. package/src/functions/setRecord.test.ts +100 -0
  470. package/src/functions/setRecord.ts +63 -0
  471. package/src/functions/setRecords.test.ts +60 -0
  472. package/src/functions/setRecords.ts +44 -0
  473. package/src/functions/setResolver.test.ts +57 -0
  474. package/src/functions/setResolver.ts +35 -0
  475. package/src/functions/transferName.test.ts +79 -0
  476. package/src/functions/transferName.ts +53 -0
  477. package/src/functions/transferSubname.test.ts +74 -0
  478. package/src/functions/transferSubname.ts +45 -0
  479. package/src/functions/unwrapName.test.ts +68 -0
  480. package/src/functions/unwrapName.ts +43 -0
  481. package/src/functions/wrapName.test.ts +67 -0
  482. package/src/functions/wrapName.ts +126 -0
  483. package/src/generated/BaseRegistrarImplementation.ts +1122 -0
  484. package/src/generated/DNSRegistrar.ts +445 -0
  485. package/src/generated/DNSSECImpl.ts +770 -0
  486. package/src/generated/DefaultReverseResolver.ts +137 -0
  487. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +285 -0
  488. package/src/generated/ENSRegistry.ts +618 -0
  489. package/src/generated/ETHRegistrarController.ts +743 -0
  490. package/src/generated/Multicall.ts +582 -0
  491. package/src/generated/NameWrapper.ts +1694 -0
  492. package/src/generated/P256SHA256Algorithm.ts +139 -0
  493. package/src/generated/PublicResolver.ts +1326 -0
  494. package/src/generated/RSASHA1Algorithm.ts +109 -0
  495. package/src/generated/RSASHA256Algorithm.ts +109 -0
  496. package/src/generated/ReverseRegistrar.ts +556 -0
  497. package/src/generated/Root.ts +377 -0
  498. package/src/generated/SHA1Digest.ts +129 -0
  499. package/src/generated/SHA1NSEC3Digest.ts +140 -0
  500. package/src/generated/SHA256Digest.ts +129 -0
  501. package/src/generated/StaticMetadataService.ts +85 -0
  502. package/src/generated/TLDPublicSuffixList.ts +99 -0
  503. package/src/generated/UniversalResolver.ts +260 -0
  504. package/src/generated/common.ts +44 -0
  505. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +781 -0
  506. package/src/generated/factories/DNSRegistrar__factory.ts +329 -0
  507. package/src/generated/factories/DNSSECImpl__factory.ts +527 -0
  508. package/src/generated/factories/DefaultReverseResolver__factory.ts +98 -0
  509. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +186 -0
  510. package/src/generated/factories/ENSRegistry__factory.ts +443 -0
  511. package/src/generated/factories/ETHRegistrarController__factory.ts +522 -0
  512. package/src/generated/factories/Multicall__factory.ts +461 -0
  513. package/src/generated/factories/NameWrapper__factory.ts +1204 -0
  514. package/src/generated/factories/P256SHA256Algorithm__factory.ts +91 -0
  515. package/src/generated/factories/PublicResolver__factory.ts +899 -0
  516. package/src/generated/factories/RSASHA1Algorithm__factory.ts +91 -0
  517. package/src/generated/factories/RSASHA256Algorithm__factory.ts +91 -0
  518. package/src/generated/factories/ReverseRegistrar__factory.ts +347 -0
  519. package/src/generated/factories/Root__factory.ts +244 -0
  520. package/src/generated/factories/SHA1Digest__factory.ts +83 -0
  521. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +91 -0
  522. package/src/generated/factories/SHA256Digest__factory.ts +83 -0
  523. package/src/generated/factories/StaticMetadataService__factory.ts +60 -0
  524. package/src/generated/factories/TLDPublicSuffixList__factory.ts +81 -0
  525. package/src/generated/factories/UniversalResolver__factory.ts +211 -0
  526. package/src/generated/factories/index.ts +9 -0
  527. package/src/generated/index.ts +16 -0
  528. package/src/index.ts +595 -0
  529. package/src/tests/populateTransaction.test.ts +40 -0
  530. package/src/tests/setup.ts +53 -0
  531. package/src/tests/signerInjection.test.ts +46 -0
  532. package/src/tests/withProvider.test.ts +28 -0
  533. package/src/utils/contentHash.ts +151 -0
  534. package/src/utils/createReverseNode.ts +2 -0
  535. package/src/utils/format.ts +8 -0
  536. package/src/utils/fuses.ts +23 -0
  537. package/src/utils/generateFuseInput.ts +18 -0
  538. package/src/utils/hexEncodedName.ts +4 -0
  539. package/src/utils/labels.ts +121 -0
  540. package/src/utils/makeHashIndexes.ts +9 -0
  541. package/src/utils/normalise.ts +33 -0
  542. package/src/utils/recordHelpers.ts +106 -0
  543. package/src/utils/registerHelpers.ts +87 -0
  544. package/src/utils/singleCall.ts +16 -0
  545. package/src/utils/validation.ts +73 -0
  546. package/src/utils/writeTx.ts +6 -0
  547. package/dist/constants/interfaces.js +0 -13
  548. package/dist/index.js +0 -1191
  549. package/dist/utils/contents.js +0 -126
  550. package/dist/utils/index.js +0 -189
  551. package/dist/utils/labelhash.js +0 -55
  552. package/dist/utils/namehash.js +0 -39
  553. package/dist/utils/records.js +0 -56
@@ -0,0 +1,28 @@
1
+ export declare type DecodedContentHash = {
2
+ protocolType?: any;
3
+ decoded?: any;
4
+ error?: any;
5
+ };
6
+ export declare function decodeContenthash(encoded: any): {
7
+ protocolType?: undefined;
8
+ decoded?: undefined;
9
+ error?: undefined;
10
+ } | {
11
+ protocolType: null;
12
+ decoded: any;
13
+ error?: undefined;
14
+ } | {
15
+ protocolType: string | undefined;
16
+ decoded: any;
17
+ error: any;
18
+ };
19
+ export declare function validateContent(encoded: any): any;
20
+ export declare function isValidContenthash(encoded: any): boolean | undefined;
21
+ export declare function getProtocolType(encoded: any): {
22
+ protocolType: string | undefined;
23
+ decoded: string | undefined;
24
+ } | undefined;
25
+ export declare function encodeContenthash(text: string): {
26
+ encoded: string | boolean;
27
+ error: string | undefined;
28
+ };
@@ -0,0 +1,153 @@
1
+ import contentHash from '@ensdomains/content-hash';
2
+ import { utils } from 'ethers';
3
+ const supportedCodecs = [
4
+ 'ipns-ns',
5
+ 'ipfs-ns',
6
+ 'swarm-ns',
7
+ 'onion',
8
+ 'onion3',
9
+ 'skynet-ns',
10
+ 'arweave-ns',
11
+ ];
12
+ function matchProtocol(text) {
13
+ return (text.match(/^(ipfs|sia|ipns|bzz|onion|onion3|arweave):\/\/(.*)/) ||
14
+ text.match(/\/(ipfs)\/(.*)/) ||
15
+ text.match(/\/(ipns)\/(.*)/));
16
+ }
17
+ export function decodeContenthash(encoded) {
18
+ let decoded, protocolType, error;
19
+ if (!encoded || encoded === '0x') {
20
+ return {};
21
+ }
22
+ if (encoded.error) {
23
+ return { protocolType: null, decoded: encoded.error };
24
+ }
25
+ else if (encoded === false) {
26
+ return { protocolType: null, decoded: 'invalid value' };
27
+ }
28
+ if (encoded) {
29
+ try {
30
+ decoded = contentHash.decode(encoded);
31
+ const codec = contentHash.getCodec(encoded);
32
+ if (codec === 'ipfs-ns') {
33
+ protocolType = 'ipfs';
34
+ }
35
+ else if (codec === 'ipns-ns') {
36
+ protocolType = 'ipns';
37
+ }
38
+ else if (codec === 'swarm-ns') {
39
+ protocolType = 'bzz';
40
+ }
41
+ else if (codec === 'onion') {
42
+ protocolType = 'onion';
43
+ }
44
+ else if (codec === 'onion3') {
45
+ protocolType = 'onion3';
46
+ }
47
+ else if (codec === 'skynet-ns') {
48
+ protocolType = 'sia';
49
+ }
50
+ else if (codec === 'arweave-ns') {
51
+ protocolType = 'arweave';
52
+ }
53
+ else {
54
+ decoded = encoded;
55
+ }
56
+ }
57
+ catch (e) {
58
+ error = e.message;
59
+ }
60
+ }
61
+ return { protocolType, decoded, error };
62
+ }
63
+ export function validateContent(encoded) {
64
+ return (contentHash.isHashOfType(encoded, contentHash.Types.ipfs) ||
65
+ contentHash.isHashOfType(encoded, contentHash.Types.swarm));
66
+ }
67
+ export function isValidContenthash(encoded) {
68
+ try {
69
+ const codec = contentHash.getCodec(encoded);
70
+ return utils.isHexString(encoded) && supportedCodecs.includes(codec);
71
+ }
72
+ catch (e) {
73
+ console.log(e);
74
+ }
75
+ }
76
+ export function getProtocolType(encoded) {
77
+ let protocolType, decoded;
78
+ try {
79
+ let matched = matchProtocol(encoded);
80
+ if (matched) {
81
+ protocolType = matched[1];
82
+ decoded = matched[2];
83
+ }
84
+ return {
85
+ protocolType,
86
+ decoded,
87
+ };
88
+ }
89
+ catch (e) {
90
+ console.log(e);
91
+ }
92
+ }
93
+ export function encodeContenthash(text) {
94
+ let content = text;
95
+ let contentType;
96
+ let encoded = false;
97
+ let error;
98
+ if (!!text) {
99
+ let matched = matchProtocol(text);
100
+ if (matched) {
101
+ contentType = matched[1];
102
+ content = matched[2];
103
+ }
104
+ try {
105
+ if (contentType === 'ipfs') {
106
+ if (content.length >= 4) {
107
+ encoded = '0x' + contentHash.encode('ipfs-ns', content);
108
+ }
109
+ }
110
+ else if (contentType === 'ipns') {
111
+ encoded = '0x' + contentHash.encode('ipns-ns', content);
112
+ }
113
+ else if (contentType === 'bzz') {
114
+ if (content.length >= 4) {
115
+ encoded = '0x' + contentHash.fromSwarm(content);
116
+ }
117
+ }
118
+ else if (contentType === 'onion') {
119
+ if (content.length == 16) {
120
+ encoded = '0x' + contentHash.encode('onion', content);
121
+ }
122
+ }
123
+ else if (contentType === 'onion3') {
124
+ if (content.length == 56) {
125
+ encoded = '0x' + contentHash.encode('onion3', content);
126
+ }
127
+ }
128
+ else if (contentType === 'sia') {
129
+ if (content.length == 46) {
130
+ encoded = '0x' + contentHash.encode('skynet-ns', content);
131
+ }
132
+ }
133
+ else if (contentType === 'arweave') {
134
+ if (content.length == 43) {
135
+ encoded = '0x' + contentHash.encode('arweave-ns', content);
136
+ }
137
+ }
138
+ else {
139
+ console.warn('Unsupported protocol or invalid value', {
140
+ contentType,
141
+ text,
142
+ });
143
+ }
144
+ }
145
+ catch (err) {
146
+ const errorMessage = 'Error encoding content hash';
147
+ console.warn(errorMessage, { text, encoded });
148
+ error = errorMessage;
149
+ //throw 'Error encoding content hash'
150
+ }
151
+ }
152
+ return { encoded, error };
153
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: (address: string) => string;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export default (address) => address.toLowerCase().substring(2) + '.addr.reverse';
@@ -0,0 +1,3 @@
1
+ export declare const formatHashed: (name: string) => string;
2
+ export declare const truncateFormat: (name: string) => string;
3
+ export declare const bracketFormat: (name: string) => string;
@@ -0,0 +1,3 @@
1
+ export const formatHashed = (name) => name.replace(/(\[)(.{64})(\])/g, '0x$2');
2
+ export const truncateFormat = (name) => name.replace(/(\[.{3})(.{58})(.{3}\])/g, '$1...$3');
3
+ export const bracketFormat = (name) => name.replace(/(0x)(.{64})(?=\.)/g, '[$2]');
@@ -0,0 +1,20 @@
1
+ export declare const testable: {
2
+ CANNOT_UNWRAP: number;
3
+ CANNOT_BURN_FUSES: number;
4
+ CANNOT_TRANSFER: number;
5
+ CANNOT_SET_RESOLVER: number;
6
+ CANNOT_SET_TTL: number;
7
+ CANNOT_CREATE_SUBDOMAIN: number;
8
+ PARENT_CANNOT_CONTROL: number;
9
+ };
10
+ declare const _default: {
11
+ CAN_DO_EVERYTHING: number;
12
+ CANNOT_UNWRAP: number;
13
+ CANNOT_BURN_FUSES: number;
14
+ CANNOT_TRANSFER: number;
15
+ CANNOT_SET_RESOLVER: number;
16
+ CANNOT_SET_TTL: number;
17
+ CANNOT_CREATE_SUBDOMAIN: number;
18
+ PARENT_CANNOT_CONTROL: number;
19
+ };
20
+ export default _default;
@@ -0,0 +1,21 @@
1
+ const CANNOT_UNWRAP = 1;
2
+ const CANNOT_BURN_FUSES = 2;
3
+ const CANNOT_TRANSFER = 4;
4
+ const CANNOT_SET_RESOLVER = 8;
5
+ const CANNOT_SET_TTL = 16;
6
+ const CANNOT_CREATE_SUBDOMAIN = 32;
7
+ const PARENT_CANNOT_CONTROL = 64;
8
+ const CAN_DO_EVERYTHING = 0;
9
+ export const testable = {
10
+ CANNOT_UNWRAP,
11
+ CANNOT_BURN_FUSES,
12
+ CANNOT_TRANSFER,
13
+ CANNOT_SET_RESOLVER,
14
+ CANNOT_SET_TTL,
15
+ CANNOT_CREATE_SUBDOMAIN,
16
+ PARENT_CANNOT_CONTROL,
17
+ };
18
+ export default {
19
+ ...testable,
20
+ CAN_DO_EVERYTHING,
21
+ };
@@ -0,0 +1,3 @@
1
+ import { FuseOptions } from '../@types/FuseOptions';
2
+ declare const _default: (fuseOptions: FuseOptions) => string;
3
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { ethers } from 'ethers';
2
+ import fuses from './fuses';
3
+ export default (fuseOptions) => {
4
+ const fuseKeys = Object.keys(fuseOptions)
5
+ .filter((opt) => fuseOptions[opt] === true)
6
+ .map((opt) => opt
7
+ .split(/(?=[A-Z])/)
8
+ .join('_')
9
+ .toUpperCase());
10
+ const bigNumberFuses = fuseKeys.reduce((prev, curr) => {
11
+ return prev.or(fuses[curr]);
12
+ }, ethers.BigNumber.from(0));
13
+ return bigNumberFuses.toHexString();
14
+ };
@@ -0,0 +1 @@
1
+ export declare const hexEncodeName: (name: string) => string;
@@ -0,0 +1,2 @@
1
+ import packet from 'dns-packet';
2
+ export const hexEncodeName = (name) => `0x${packet.name.encode(name).toString('hex')}`;
@@ -0,0 +1,14 @@
1
+ export declare const labelhash: (input: string) => string;
2
+ export declare const keccakFromString: (input: string) => string;
3
+ export declare function decodeLabelhash(hash: string): string;
4
+ export declare function encodeLabelhash(hash: string): string;
5
+ export declare function isEncodedLabelhash(hash: string): boolean;
6
+ export declare function saveLabel(label: string): string;
7
+ export declare function saveName(name: string): void;
8
+ export declare function checkLabel(hash: string): string | undefined;
9
+ export declare function encodeLabel(label: any): any;
10
+ export declare function parseName(name: string): string;
11
+ export declare function checkIsDecrypted(string: string | string[]): boolean;
12
+ export declare function decryptName(name: string): string;
13
+ export declare const truncateUndecryptedName: (name: string) => string;
14
+ export declare function checkLocalStorageSize(): string;
@@ -0,0 +1,96 @@
1
+ import { solidityKeccak256 } from 'ethers/lib/utils';
2
+ import { truncateFormat } from './format';
3
+ const hasLocalStorage = typeof localStorage !== 'undefined';
4
+ export const labelhash = (input) => solidityKeccak256(['string'], [input]);
5
+ export const keccakFromString = (input) => labelhash(input);
6
+ export function decodeLabelhash(hash) {
7
+ if (!(hash.startsWith('[') && hash.endsWith(']'))) {
8
+ throw Error('Expected encoded labelhash to start and end with square brackets');
9
+ }
10
+ if (hash.length !== 66) {
11
+ throw Error('Expected encoded labelhash to have a length of 66');
12
+ }
13
+ return `0x${hash.slice(1, -1)}`;
14
+ }
15
+ export function encodeLabelhash(hash) {
16
+ if (!hash.startsWith('0x')) {
17
+ throw new Error('Expected label hash to start with 0x');
18
+ }
19
+ if (hash.length !== 66) {
20
+ throw new Error('Expected label hash to have a length of 66');
21
+ }
22
+ return `[${hash.slice(2)}]`;
23
+ }
24
+ export function isEncodedLabelhash(hash) {
25
+ return hash.startsWith('[') && hash.endsWith(']') && hash.length === 66;
26
+ }
27
+ function getLabels() {
28
+ return hasLocalStorage
29
+ ? JSON.parse(localStorage.getItem('ensjs:labels')) || {}
30
+ : {};
31
+ }
32
+ function _saveLabel(hash, label) {
33
+ if (!hasLocalStorage)
34
+ return hash;
35
+ const labels = getLabels();
36
+ localStorage.setItem('ensjs:labels', JSON.stringify({
37
+ ...labels,
38
+ [hash]: label,
39
+ }));
40
+ return hash;
41
+ }
42
+ export function saveLabel(label) {
43
+ const hash = `${labelhash(label.toLowerCase())}`;
44
+ return _saveLabel(hash, label);
45
+ }
46
+ export function saveName(name) {
47
+ const nameArray = name.split('.');
48
+ nameArray.forEach((label) => {
49
+ saveLabel(label);
50
+ });
51
+ }
52
+ // eslint-disable-next-line consistent-return
53
+ export function checkLabel(hash) {
54
+ const labels = getLabels();
55
+ if (isEncodedLabelhash(hash)) {
56
+ return labels[decodeLabelhash(hash)];
57
+ }
58
+ if (hash.startsWith('0x')) {
59
+ return labels[`${hash.slice(2)}`];
60
+ }
61
+ }
62
+ export function encodeLabel(label) {
63
+ try {
64
+ return encodeLabelhash(label);
65
+ }
66
+ catch {
67
+ return label;
68
+ }
69
+ }
70
+ export function parseName(name) {
71
+ const nameArray = name.split('.');
72
+ return nameArray.map((label) => encodeLabel(label)).join('.');
73
+ }
74
+ export function checkIsDecrypted(string) {
75
+ return !string?.includes('[');
76
+ }
77
+ export function decryptName(name) {
78
+ return name
79
+ .split('.')
80
+ .map((label) => checkLabel(label) || label)
81
+ .join('.');
82
+ }
83
+ export const truncateUndecryptedName = (name) => truncateFormat(name);
84
+ export function checkLocalStorageSize() {
85
+ if (!hasLocalStorage)
86
+ return 'Empty (0 KB)';
87
+ let allStrings = '';
88
+ for (const key in window.localStorage) {
89
+ if (Object.prototype.hasOwnProperty.call(window.localStorage, key)) {
90
+ allStrings += window.localStorage[key];
91
+ }
92
+ }
93
+ return allStrings
94
+ ? `${3 + (allStrings.length * 16) / (8 * 1024)} KB`
95
+ : 'Empty (0 KB)';
96
+ }
@@ -0,0 +1,2 @@
1
+ export declare const makeOtherIndexes: (data: string, findStr: string) => number[];
2
+ export declare const makeNamehashIndexes: (data: string, name: string) => number[];
@@ -0,0 +1,3 @@
1
+ import { namehash } from './normalise';
2
+ export const makeOtherIndexes = (data, findStr) => Array.from(data.matchAll(findStr)).map((x) => x.index / 2 - 1);
3
+ export const makeNamehashIndexes = (data, name) => Array.from(data.matchAll(namehash(name).substring(2))).map((x) => x.index / 2 - 1);
@@ -0,0 +1,2 @@
1
+ export declare const normalise: (name: string) => any;
2
+ export declare const namehash: (name: string) => string;
@@ -0,0 +1,27 @@
1
+ import { concat, hexlify, keccak256, toUtf8Bytes } from 'ethers/lib/utils';
2
+ import uts46 from 'idna-uts46-hx/uts46bundle.js';
3
+ import { decodeLabelhash, isEncodedLabelhash } from './labels';
4
+ const zeros = new Uint8Array(32);
5
+ zeros.fill(0);
6
+ export const normalise = (name) => name ? uts46.toUnicode(name, { useStd3ASCII: true }) : name;
7
+ export const namehash = (name) => {
8
+ let result = zeros;
9
+ if (name) {
10
+ const labels = name.split('.');
11
+ for (var i = labels.length - 1; i >= 0; i--) {
12
+ let labelSha;
13
+ if (isEncodedLabelhash(labels[i])) {
14
+ labelSha = decodeLabelhash(labels[i]);
15
+ }
16
+ else {
17
+ const normalised = normalise(labels[i]);
18
+ labelSha = keccak256(toUtf8Bytes(normalised));
19
+ }
20
+ result = keccak256(concat([result, labelSha]));
21
+ }
22
+ }
23
+ else {
24
+ result = hexlify(zeros);
25
+ }
26
+ return result;
27
+ };
@@ -0,0 +1,16 @@
1
+ import type { PublicResolver } from '../generated';
2
+ declare type RecordItem = {
3
+ key: string;
4
+ value: string;
5
+ };
6
+ export declare type RecordOptions = {
7
+ contentHash?: string;
8
+ texts?: RecordItem[];
9
+ coinTypes?: RecordItem[];
10
+ };
11
+ export declare const generateSetAddr: (namehash: string, coinType: string, address: string, resolver: PublicResolver) => string;
12
+ export declare type RecordTypes = 'contentHash' | 'text' | 'addr';
13
+ export declare type RecordInput<T extends RecordTypes> = T extends 'contentHash' ? string : RecordItem;
14
+ export declare function generateSingleRecordCall<T extends RecordTypes>(namehash: string, resolver: PublicResolver, type: T): (record: RecordInput<T>) => string;
15
+ export declare const generateRecordCallArray: (namehash: string, records: RecordOptions, resolver: PublicResolver) => string[];
16
+ export {};
@@ -0,0 +1,65 @@
1
+ import { formatsByCoinType, formatsByName } from '@ensdomains/address-encoder';
2
+ import { encodeContenthash } from './contentHash';
3
+ export const generateSetAddr = (namehash, coinType, address, resolver) => {
4
+ let coinTypeInstance;
5
+ if (!isNaN(parseInt(coinType))) {
6
+ coinTypeInstance = formatsByCoinType[parseInt(coinType)];
7
+ }
8
+ else {
9
+ coinTypeInstance = formatsByName[coinType.toUpperCase()];
10
+ }
11
+ const inputCoinType = coinTypeInstance.coinType;
12
+ const encodedAddress = coinTypeInstance.decoder(address);
13
+ return resolver?.interface.encodeFunctionData('setAddr(bytes32,uint256,bytes)', [namehash, inputCoinType, encodedAddress]);
14
+ };
15
+ export function generateSingleRecordCall(namehash, resolver, type) {
16
+ if (type === 'contentHash') {
17
+ return (_r) => {
18
+ const record = _r;
19
+ let _contentHash = '';
20
+ if (record !== _contentHash) {
21
+ const encoded = encodeContenthash(record);
22
+ if (encoded.error)
23
+ throw new Error(encoded.error);
24
+ _contentHash = encoded.encoded;
25
+ }
26
+ return resolver.interface.encodeFunctionData('setContenthash', [
27
+ namehash,
28
+ _contentHash,
29
+ ]);
30
+ };
31
+ }
32
+ else {
33
+ return (_r) => {
34
+ const record = _r;
35
+ if (type === 'text') {
36
+ return resolver.interface.encodeFunctionData('setText', [
37
+ namehash,
38
+ record.key,
39
+ record.value,
40
+ ]);
41
+ }
42
+ else {
43
+ return generateSetAddr(namehash, record.key, record.value, resolver);
44
+ }
45
+ };
46
+ }
47
+ }
48
+ export const generateRecordCallArray = (namehash, records, resolver) => {
49
+ const calls = [];
50
+ if (records.contentHash) {
51
+ const data = generateSingleRecordCall(namehash, resolver, 'contentHash')(records.contentHash);
52
+ data && calls.push(data);
53
+ }
54
+ if (records.texts && records.texts.length > 0) {
55
+ records.texts
56
+ .map(generateSingleRecordCall(namehash, resolver, 'text'))
57
+ .forEach((call) => calls.push(call));
58
+ }
59
+ if (records.coinTypes && records.coinTypes.length > 0) {
60
+ records.coinTypes
61
+ .map(generateSingleRecordCall(namehash, resolver, 'addr'))
62
+ .forEach((call) => calls.push(call));
63
+ }
64
+ return calls;
65
+ };
@@ -0,0 +1,26 @@
1
+ import type { FuseOptions } from '../@types/FuseOptions';
2
+ import type { PublicResolver } from '../generated';
3
+ import { RecordOptions } from './recordHelpers';
4
+ export declare const randomSecret: () => string;
5
+ export declare const makeCommitment: ({ name, owner, duration, resolver, records, reverseRecord, fuses, }: {
6
+ name: string;
7
+ owner: string;
8
+ duration: number;
9
+ resolver: PublicResolver;
10
+ records?: RecordOptions | undefined;
11
+ reverseRecord?: boolean | undefined;
12
+ fuses?: FuseOptions | undefined;
13
+ }) => {
14
+ secret: string;
15
+ commitment: string;
16
+ };
17
+ export declare const _makeCommitment: ({ labelhash, owner, duration, secret, resolver, data, reverseRecord, fuses, }: {
18
+ labelhash: string;
19
+ owner: string;
20
+ duration: number;
21
+ secret: string;
22
+ resolver: string;
23
+ data: string[];
24
+ reverseRecord: boolean;
25
+ fuses: string;
26
+ }) => string;
@@ -0,0 +1,43 @@
1
+ import { utils } from 'ethers';
2
+ import generateFuseInput from './generateFuseInput';
3
+ import { labelhash } from './labels';
4
+ import { namehash } from './normalise';
5
+ import { generateRecordCallArray } from './recordHelpers';
6
+ export const randomSecret = () => {
7
+ const bytes = Buffer.allocUnsafe(32);
8
+ return '0x' + crypto.getRandomValues(bytes).toString('hex');
9
+ };
10
+ export const makeCommitment = ({ name, owner, duration, resolver, records, reverseRecord, fuses, }) => {
11
+ const label = labelhash(name.split('.')[0]);
12
+ const hash = namehash(name);
13
+ const resolverAddress = resolver.address;
14
+ const data = records ? generateRecordCallArray(hash, records, resolver) : [];
15
+ const secret = randomSecret();
16
+ const fuseData = fuses ? generateFuseInput(fuses) : '0';
17
+ const commitment = _makeCommitment({
18
+ labelhash: label,
19
+ owner,
20
+ duration,
21
+ secret,
22
+ resolver: resolverAddress,
23
+ data,
24
+ reverseRecord: !!reverseRecord,
25
+ fuses: fuseData,
26
+ });
27
+ return {
28
+ secret,
29
+ commitment,
30
+ };
31
+ };
32
+ export const _makeCommitment = ({ labelhash, owner, duration, secret, resolver, data, reverseRecord, fuses, }) => {
33
+ return utils.solidityKeccak256([
34
+ 'bytes32',
35
+ 'address',
36
+ 'uint256',
37
+ 'bytes32',
38
+ 'address',
39
+ 'bytes[]',
40
+ 'bool',
41
+ 'uint96',
42
+ ], [labelhash, owner, duration, secret, resolver, data, reverseRecord, fuses]);
43
+ };
@@ -0,0 +1,9 @@
1
+ import { ethers } from 'ethers';
2
+ declare const _default: (provider: ethers.providers.Provider, ensData: any, func: {
3
+ raw: (...args: any[]) => Promise<{
4
+ to: string;
5
+ data: string;
6
+ }>;
7
+ decode: (...args: any[]) => Promise<any>;
8
+ }, ...data: any[]) => Promise<any>;
9
+ export default _default;
@@ -0,0 +1,5 @@
1
+ export default async (provider, ensData, func, ...data) => func
2
+ .raw(ensData, ...data)
3
+ .then((rawData) => provider.call(rawData))
4
+ .catch(() => null)
5
+ .then((ret) => func.decode(ensData, ret, ...data));
@@ -0,0 +1,8 @@
1
+ export declare const validateName: (name: string) => string;
2
+ export declare const validateTLD: (name: string) => string;
3
+ declare type InputType = {
4
+ type: 'name' | 'label' | 'address' | 'unknown';
5
+ info?: 'short' | 'supported' | 'unsupported';
6
+ };
7
+ export declare const parseInputType: (input: string) => InputType;
8
+ export {};
@@ -0,0 +1,67 @@
1
+ import { isAddress } from 'ethers/lib/utils';
2
+ import { isEncodedLabelhash, saveName } from './labels';
3
+ import { normalise } from './normalise';
4
+ export const validateName = (name) => {
5
+ const nameArray = name.split('.');
6
+ const hasEmptyLabels = nameArray.some((label) => label.length == 0);
7
+ if (hasEmptyLabels)
8
+ throw new Error('Name cannot have empty labels');
9
+ const normalizedArray = nameArray.map((label) => {
10
+ if (label === '[root]') {
11
+ return label;
12
+ }
13
+ else {
14
+ return isEncodedLabelhash(label) ? label : normalise(label);
15
+ }
16
+ });
17
+ const normalizedName = normalizedArray.join('.');
18
+ saveName(normalizedName);
19
+ return normalizedName;
20
+ };
21
+ export const validateTLD = (name) => {
22
+ const labels = name.split('.');
23
+ return validateName(labels[labels.length - 1]);
24
+ };
25
+ export const parseInputType = (input) => {
26
+ const validTLD = validateTLD(input);
27
+ let regex = /[^.]+$/;
28
+ try {
29
+ validateName(input);
30
+ }
31
+ catch (e) {
32
+ return {
33
+ type: 'unknown',
34
+ };
35
+ }
36
+ if (input.indexOf('.') !== -1) {
37
+ const termArray = input.split('.');
38
+ const tld = input.match(regex) ? input.match(regex)[0] : '';
39
+ if (validTLD) {
40
+ if (tld === 'eth' && [...termArray[termArray.length - 2]].length < 3) {
41
+ // code-point length
42
+ return {
43
+ type: 'name',
44
+ info: 'short',
45
+ };
46
+ }
47
+ return {
48
+ type: 'name',
49
+ info: 'supported',
50
+ };
51
+ }
52
+ return {
53
+ type: 'name',
54
+ info: 'unsupported',
55
+ };
56
+ }
57
+ else if (isAddress(input)) {
58
+ return {
59
+ type: 'address',
60
+ };
61
+ }
62
+ else {
63
+ return {
64
+ type: 'label',
65
+ };
66
+ }
67
+ };