@ensdomains/ensjs 3.0.0-alpha.1 → 3.0.0-alpha.12

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 (333) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/GqlManager.d.ts +3 -0
  3. package/dist/cjs/GqlManager.js +62 -2
  4. package/dist/cjs/contracts/baseRegistrar.d.ts +1 -1
  5. package/dist/cjs/contracts/index.d.ts +3 -3
  6. package/dist/cjs/contracts/multicall.d.ts +1 -1
  7. package/dist/cjs/contracts/registry.d.ts +1 -1
  8. package/dist/cjs/functions/burnFuses.d.ts +3 -2
  9. package/dist/cjs/functions/burnFuses.js +4 -8
  10. package/dist/cjs/functions/createSubname.d.ts +3 -5
  11. package/dist/cjs/functions/createSubname.js +7 -8
  12. package/dist/cjs/functions/deleteSubname.d.ts +3 -3
  13. package/dist/cjs/functions/deleteSubname.js +6 -2
  14. package/dist/cjs/functions/getDNSOwner.d.ts +7 -0
  15. package/dist/cjs/functions/getDNSOwner.js +81 -0
  16. package/dist/cjs/functions/getExpiry.d.ts +9 -2
  17. package/dist/cjs/functions/getExpiry.js +52 -7
  18. package/dist/cjs/functions/getFuses.d.ts +2 -3
  19. package/dist/cjs/functions/getFuses.js +6 -14
  20. package/dist/cjs/functions/getHistory.d.ts +0 -30
  21. package/dist/cjs/functions/getHistory.js +3 -99
  22. package/dist/cjs/functions/getName.d.ts +2 -2
  23. package/dist/cjs/functions/getName.js +1 -1
  24. package/dist/cjs/functions/getOwner.js +7 -6
  25. package/dist/cjs/functions/getProfile.d.ts +4 -1
  26. package/dist/cjs/functions/getProfile.js +102 -24
  27. package/dist/cjs/functions/getRecords.d.ts +1 -0
  28. package/dist/cjs/functions/getSpecificRecord.js +30 -6
  29. package/dist/cjs/functions/getSubnames.d.ts +1 -1
  30. package/dist/cjs/functions/getSubnames.js +7 -7
  31. package/dist/cjs/functions/setName.d.ts +4 -3
  32. package/dist/cjs/functions/setName.js +5 -10
  33. package/dist/cjs/functions/setRecord.d.ts +18 -0
  34. package/dist/cjs/functions/setRecord.js +27 -0
  35. package/dist/cjs/functions/setRecords.d.ts +4 -2
  36. package/dist/cjs/functions/setRecords.js +14 -12
  37. package/dist/cjs/functions/setResolver.d.ts +4 -4
  38. package/dist/cjs/functions/setResolver.js +6 -12
  39. package/dist/cjs/functions/transferName.d.ts +4 -3
  40. package/dist/cjs/functions/transferName.js +9 -13
  41. package/dist/cjs/functions/transferSubname.d.ts +13 -3
  42. package/dist/cjs/functions/transferSubname.js +7 -8
  43. package/dist/cjs/functions/unwrapName.d.ts +4 -3
  44. package/dist/cjs/functions/unwrapName.js +5 -9
  45. package/dist/cjs/functions/wrapName.d.ts +7 -3
  46. package/dist/cjs/functions/wrapName.js +38 -36
  47. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +222 -201
  48. package/dist/cjs/generated/DNSRegistrar.d.ts +68 -64
  49. package/dist/cjs/generated/DNSSECImpl.d.ts +111 -111
  50. package/dist/cjs/generated/DefaultReverseResolver.d.ts +17 -17
  51. package/dist/cjs/generated/ENSRegistry.d.ts +126 -111
  52. package/dist/cjs/generated/ETHRegistrarController.d.ts +111 -109
  53. package/dist/cjs/generated/Multicall.d.ts +60 -60
  54. package/dist/cjs/generated/NameWrapper.d.ts +493 -354
  55. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +11 -7
  56. package/dist/cjs/generated/PublicResolver.d.ts +259 -235
  57. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +11 -7
  58. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +11 -7
  59. package/dist/cjs/generated/ReverseRegistrar.d.ts +112 -103
  60. package/dist/cjs/generated/Root.d.ts +77 -77
  61. package/dist/cjs/generated/SHA1Digest.d.ts +7 -7
  62. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +11 -7
  63. package/dist/cjs/generated/SHA256Digest.d.ts +7 -7
  64. package/dist/cjs/generated/StaticMetadataService.d.ts +7 -7
  65. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +7 -7
  66. package/dist/cjs/generated/UniversalResolver.d.ts +31 -31
  67. package/dist/cjs/generated/common.d.ts +1 -0
  68. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +3 -15
  69. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +3 -26
  70. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +3 -15
  71. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +3 -26
  72. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +14 -4
  73. package/dist/cjs/generated/factories/NameWrapper__factory.js +210 -79
  74. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
  75. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +3 -26
  76. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
  77. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +3 -26
  78. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
  79. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +3 -26
  80. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +3 -15
  81. package/dist/cjs/generated/factories/SHA1Digest__factory.js +3 -26
  82. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
  83. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +3 -26
  84. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +3 -15
  85. package/dist/cjs/generated/factories/SHA256Digest__factory.js +3 -26
  86. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
  87. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +3 -26
  88. package/dist/cjs/generated/factories/index.d.ts +14 -0
  89. package/dist/cjs/generated/factories/index.js +29 -1
  90. package/dist/cjs/generated/index.d.ts +29 -1
  91. package/dist/cjs/generated/index.js +31 -3
  92. package/dist/cjs/index.d.ts +62 -84
  93. package/dist/cjs/index.js +44 -21
  94. package/dist/cjs/utils/labels.js +5 -4
  95. package/dist/cjs/utils/makeHashIndexes.js +2 -2
  96. package/dist/cjs/utils/normalise.d.ts +1 -0
  97. package/dist/cjs/utils/normalise.js +27 -1
  98. package/dist/cjs/utils/recordHelpers.d.ts +3 -0
  99. package/dist/cjs/utils/recordHelpers.js +42 -15
  100. package/dist/cjs/utils/registerHelpers.js +3 -4
  101. package/dist/cjs/utils/wrapperExpiry.d.ts +5 -0
  102. package/dist/cjs/utils/wrapperExpiry.js +30 -0
  103. package/dist/cjs/utils/writeTx.d.ts +4 -0
  104. package/dist/cjs/utils/writeTx.js +3 -0
  105. package/dist/esm/GqlManager.d.ts +3 -0
  106. package/dist/esm/GqlManager.js +58 -2
  107. package/dist/esm/contracts/baseRegistrar.d.ts +1 -1
  108. package/dist/esm/contracts/index.d.ts +3 -3
  109. package/dist/esm/contracts/multicall.d.ts +1 -1
  110. package/dist/esm/contracts/registry.d.ts +1 -1
  111. package/dist/esm/functions/burnFuses.d.ts +3 -2
  112. package/dist/esm/functions/burnFuses.js +4 -8
  113. package/dist/esm/functions/createSubname.d.ts +3 -5
  114. package/dist/esm/functions/createSubname.js +7 -8
  115. package/dist/esm/functions/deleteSubname.d.ts +3 -3
  116. package/dist/esm/functions/deleteSubname.js +6 -2
  117. package/dist/esm/functions/getDNSOwner.d.ts +7 -0
  118. package/dist/esm/functions/getDNSOwner.js +51 -0
  119. package/dist/esm/functions/getExpiry.d.ts +9 -2
  120. package/dist/esm/functions/getExpiry.js +52 -7
  121. package/dist/esm/functions/getFuses.d.ts +2 -3
  122. package/dist/esm/functions/getFuses.js +7 -15
  123. package/dist/esm/functions/getHistory.d.ts +0 -30
  124. package/dist/esm/functions/getHistory.js +2 -96
  125. package/dist/esm/functions/getName.d.ts +2 -2
  126. package/dist/esm/functions/getName.js +1 -1
  127. package/dist/esm/functions/getOwner.js +7 -6
  128. package/dist/esm/functions/getProfile.d.ts +4 -1
  129. package/dist/esm/functions/getProfile.js +102 -24
  130. package/dist/esm/functions/getRecords.d.ts +1 -0
  131. package/dist/esm/functions/getSpecificRecord.js +30 -6
  132. package/dist/esm/functions/getSubnames.d.ts +1 -1
  133. package/dist/esm/functions/getSubnames.js +4 -4
  134. package/dist/esm/functions/setName.d.ts +4 -3
  135. package/dist/esm/functions/setName.js +5 -10
  136. package/dist/esm/functions/setRecord.d.ts +18 -0
  137. package/dist/esm/functions/setRecord.js +24 -0
  138. package/dist/esm/functions/setRecords.d.ts +4 -2
  139. package/dist/esm/functions/setRecords.js +14 -12
  140. package/dist/esm/functions/setResolver.d.ts +4 -4
  141. package/dist/esm/functions/setResolver.js +6 -12
  142. package/dist/esm/functions/transferName.d.ts +4 -3
  143. package/dist/esm/functions/transferName.js +9 -13
  144. package/dist/esm/functions/transferSubname.d.ts +13 -3
  145. package/dist/esm/functions/transferSubname.js +7 -8
  146. package/dist/esm/functions/unwrapName.d.ts +4 -3
  147. package/dist/esm/functions/unwrapName.js +5 -9
  148. package/dist/esm/functions/wrapName.d.ts +7 -3
  149. package/dist/esm/functions/wrapName.js +38 -36
  150. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +222 -201
  151. package/dist/esm/generated/DNSRegistrar.d.ts +68 -64
  152. package/dist/esm/generated/DNSSECImpl.d.ts +111 -111
  153. package/dist/esm/generated/DefaultReverseResolver.d.ts +17 -17
  154. package/dist/esm/generated/ENSRegistry.d.ts +126 -111
  155. package/dist/esm/generated/ETHRegistrarController.d.ts +111 -109
  156. package/dist/esm/generated/Multicall.d.ts +60 -60
  157. package/dist/esm/generated/NameWrapper.d.ts +493 -354
  158. package/dist/esm/generated/P256SHA256Algorithm.d.ts +11 -7
  159. package/dist/esm/generated/PublicResolver.d.ts +259 -235
  160. package/dist/esm/generated/RSASHA1Algorithm.d.ts +11 -7
  161. package/dist/esm/generated/RSASHA256Algorithm.d.ts +11 -7
  162. package/dist/esm/generated/ReverseRegistrar.d.ts +112 -103
  163. package/dist/esm/generated/Root.d.ts +77 -77
  164. package/dist/esm/generated/SHA1Digest.d.ts +7 -7
  165. package/dist/esm/generated/SHA1NSEC3Digest.d.ts +11 -7
  166. package/dist/esm/generated/SHA256Digest.d.ts +7 -7
  167. package/dist/esm/generated/StaticMetadataService.d.ts +7 -7
  168. package/dist/esm/generated/TLDPublicSuffixList.d.ts +7 -7
  169. package/dist/esm/generated/UniversalResolver.d.ts +31 -31
  170. package/dist/esm/generated/common.d.ts +1 -0
  171. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +3 -15
  172. package/dist/esm/generated/factories/DNSRegistrar__factory.js +2 -25
  173. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +3 -15
  174. package/dist/esm/generated/factories/DNSSECImpl__factory.js +2 -25
  175. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +14 -4
  176. package/dist/esm/generated/factories/NameWrapper__factory.js +210 -79
  177. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
  178. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +2 -25
  179. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
  180. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +2 -25
  181. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
  182. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +2 -25
  183. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +3 -15
  184. package/dist/esm/generated/factories/SHA1Digest__factory.js +2 -25
  185. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
  186. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +2 -25
  187. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +3 -15
  188. package/dist/esm/generated/factories/SHA256Digest__factory.js +2 -25
  189. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
  190. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +2 -25
  191. package/dist/esm/generated/factories/index.d.ts +14 -0
  192. package/dist/esm/generated/factories/index.js +14 -0
  193. package/dist/esm/generated/index.d.ts +29 -1
  194. package/dist/esm/generated/index.js +15 -1
  195. package/dist/esm/index.d.ts +62 -84
  196. package/dist/esm/index.js +44 -21
  197. package/dist/esm/utils/labels.js +5 -4
  198. package/dist/esm/utils/makeHashIndexes.js +2 -2
  199. package/dist/esm/utils/normalise.d.ts +1 -0
  200. package/dist/esm/utils/normalise.js +25 -0
  201. package/dist/esm/utils/recordHelpers.d.ts +3 -0
  202. package/dist/esm/utils/recordHelpers.js +40 -14
  203. package/dist/esm/utils/registerHelpers.js +3 -4
  204. package/dist/esm/utils/wrapperExpiry.d.ts +5 -0
  205. package/dist/esm/utils/wrapperExpiry.js +26 -0
  206. package/dist/esm/utils/writeTx.d.ts +4 -0
  207. package/dist/esm/utils/writeTx.js +1 -0
  208. package/package.json +24 -14
  209. package/src/@types/dns-packet/index.d.ts +114 -0
  210. package/src/ABIs/Multicall.json +452 -0
  211. package/src/GqlManager.test.ts +170 -0
  212. package/src/GqlManager.ts +67 -2
  213. package/src/contracts/index.ts +1 -1
  214. package/src/{tests → functions}/batch.test.ts +7 -7
  215. package/src/{tests → functions}/batchWrappers.test.ts +6 -6
  216. package/src/{tests → functions}/burnFuses.test.ts +12 -15
  217. package/src/functions/burnFuses.ts +9 -11
  218. package/src/{tests → functions}/createSubname.test.ts +9 -17
  219. package/src/functions/createSubname.ts +20 -14
  220. package/src/{tests → functions}/deleteSubname.test.ts +12 -31
  221. package/src/functions/deleteSubname.ts +10 -12
  222. package/src/functions/getDNSOwner.test.ts +118 -0
  223. package/src/functions/getDNSOwner.ts +61 -0
  224. package/src/functions/getExpiry.test.ts +59 -0
  225. package/src/functions/getExpiry.ts +87 -9
  226. package/src/{tests → functions}/getFuses.test.ts +16 -37
  227. package/src/functions/getFuses.ts +12 -17
  228. package/src/functions/getHistory.test.ts +29 -0
  229. package/src/functions/getHistory.ts +2 -127
  230. package/src/{tests → functions}/getName.test.ts +6 -6
  231. package/src/functions/getName.ts +1 -1
  232. package/src/{tests → functions}/getNames.test.ts +98 -69
  233. package/src/{tests → functions}/getOwner.test.ts +21 -24
  234. package/src/functions/getOwner.ts +7 -7
  235. package/src/functions/getProfile.test.ts +143 -0
  236. package/src/functions/getProfile.ts +151 -24
  237. package/src/functions/getRecords.ts +1 -0
  238. package/src/functions/getResolver.test.ts +15 -0
  239. package/src/{tests → functions}/getSpecificRecord.test.ts +17 -14
  240. package/src/functions/getSpecificRecord.ts +38 -12
  241. package/src/functions/getSubnames.test.ts +35 -0
  242. package/src/functions/getSubnames.ts +76 -67
  243. package/src/{tests → functions}/makeCommitment.test.ts +2 -2
  244. package/src/functions/normalise.test.ts +22 -0
  245. package/src/{tests → functions}/setName.test.ts +11 -11
  246. package/src/functions/setName.ts +15 -17
  247. package/src/functions/setRecord.test.ts +103 -0
  248. package/src/functions/setRecord.ts +63 -0
  249. package/src/{tests → functions}/setRecords.test.ts +16 -13
  250. package/src/functions/setRecords.ts +22 -16
  251. package/src/{tests → functions}/setResolver.test.ts +13 -19
  252. package/src/functions/setResolver.ts +15 -20
  253. package/src/{tests → functions}/transferName.test.ts +20 -35
  254. package/src/functions/transferName.ts +19 -22
  255. package/src/{tests → functions}/transferSubname.test.ts +14 -33
  256. package/src/functions/transferSubname.ts +39 -13
  257. package/src/{tests → functions}/unwrapName.test.ts +16 -30
  258. package/src/functions/unwrapName.ts +20 -15
  259. package/src/functions/wrapName.test.ts +142 -0
  260. package/src/functions/wrapName.ts +63 -49
  261. package/src/generated/BaseRegistrarImplementation.ts +382 -296
  262. package/src/generated/DNSRegistrar.ts +103 -89
  263. package/src/generated/DNSSECImpl.ts +180 -149
  264. package/src/generated/DefaultReverseResolver.ts +37 -21
  265. package/src/generated/ENSRegistry.ts +257 -184
  266. package/src/generated/ETHRegistrarController.ts +252 -191
  267. package/src/generated/Multicall.ts +73 -57
  268. package/src/generated/NameWrapper.ts +979 -649
  269. package/src/generated/P256SHA256Algorithm.ts +21 -16
  270. package/src/generated/PublicResolver.ts +452 -362
  271. package/src/generated/RSASHA1Algorithm.ts +21 -16
  272. package/src/generated/RSASHA256Algorithm.ts +21 -16
  273. package/src/generated/ReverseRegistrar.ts +193 -141
  274. package/src/generated/Root.ts +146 -86
  275. package/src/generated/SHA1Digest.ts +12 -11
  276. package/src/generated/SHA1NSEC3Digest.ts +21 -16
  277. package/src/generated/SHA256Digest.ts +12 -11
  278. package/src/generated/StaticMetadataService.ts +22 -6
  279. package/src/generated/TLDPublicSuffixList.ts +10 -6
  280. package/src/generated/UniversalResolver.ts +44 -40
  281. package/src/generated/common.ts +2 -0
  282. package/src/generated/factories/DNSRegistrar__factory.ts +4 -56
  283. package/src/generated/factories/DNSSECImpl__factory.ts +4 -49
  284. package/src/generated/factories/ETHRegistrarController__factory.ts +14 -4
  285. package/src/generated/factories/NameWrapper__factory.ts +210 -79
  286. package/src/generated/factories/P256SHA256Algorithm__factory.ts +4 -40
  287. package/src/generated/factories/RSASHA1Algorithm__factory.ts +4 -40
  288. package/src/generated/factories/RSASHA256Algorithm__factory.ts +4 -40
  289. package/src/generated/factories/SHA1Digest__factory.ts +4 -40
  290. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +4 -40
  291. package/src/generated/factories/SHA256Digest__factory.ts +4 -40
  292. package/src/generated/factories/TLDPublicSuffixList__factory.ts +4 -40
  293. package/src/generated/factories/index.ts +14 -0
  294. package/src/generated/index.ts +29 -1
  295. package/src/index.ts +117 -47
  296. package/src/tests/populateTransaction.test.ts +40 -0
  297. package/src/tests/setup.ts +17 -13
  298. package/src/tests/signerInjection.test.ts +46 -0
  299. package/src/tests/withProvider.test.ts +3 -3
  300. package/src/utils/labels.ts +6 -4
  301. package/src/utils/makeHashIndexes.ts +4 -4
  302. package/src/utils/normalise.ts +29 -0
  303. package/src/utils/recordHelpers.ts +52 -18
  304. package/src/utils/registerHelpers.ts +3 -4
  305. package/src/utils/wrapperExpiry.ts +31 -0
  306. package/src/utils/writeTx.ts +6 -0
  307. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  308. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
  309. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  310. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
  311. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  312. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
  313. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  314. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
  315. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  316. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
  317. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  318. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
  319. package/src/ABIs/ETHRegistrarController.json +0 -494
  320. package/src/ABIs/NameWrapper.json +0 -1183
  321. package/src/ABIs/PublicResolver.json +0 -875
  322. package/src/ABIs/ReverseRegistrar.json +0 -323
  323. package/src/ABIs/StaticMetadataService.json +0 -32
  324. package/src/ABIs/UniversalResolver.json +0 -187
  325. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
  326. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
  327. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
  328. package/src/tests/getExpiry.test.ts +0 -37
  329. package/src/tests/getHistory.test.ts +0 -101
  330. package/src/tests/getProfile.test.ts +0 -102
  331. package/src/tests/getResolver.test.ts +0 -19
  332. package/src/tests/getSubnames.test.ts +0 -31
  333. package/src/tests/wrapName.test.ts +0 -67
@@ -23,16 +23,44 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.UniversalResolver__factory = exports.StaticMetadataService__factory = exports.ReverseRegistrar__factory = exports.PublicResolver__factory = exports.NameWrapper__factory = exports.ETHRegistrarController__factory = exports.factories = void 0;
26
+ exports.UniversalResolver__factory = exports.StaticMetadataService__factory = exports.NameWrapper__factory = exports.Multicall__factory = exports.TLDPublicSuffixList__factory = exports.SHA256Digest__factory = exports.SHA1NSEC3Digest__factory = exports.SHA1Digest__factory = exports.RSASHA256Algorithm__factory = exports.RSASHA1Algorithm__factory = exports.Root__factory = exports.ReverseRegistrar__factory = exports.PublicResolver__factory = exports.P256SHA256Algorithm__factory = exports.ETHRegistrarController__factory = exports.ENSRegistry__factory = exports.DNSSECImpl__factory = exports.DNSRegistrar__factory = exports.DefaultReverseResolver__factory = exports.BaseRegistrarImplementation__factory = exports.factories = void 0;
27
27
  exports.factories = __importStar(require("./factories"));
28
+ var BaseRegistrarImplementation__factory_1 = require("./factories/BaseRegistrarImplementation__factory");
29
+ Object.defineProperty(exports, "BaseRegistrarImplementation__factory", { enumerable: true, get: function () { return BaseRegistrarImplementation__factory_1.BaseRegistrarImplementation__factory; } });
30
+ var DefaultReverseResolver__factory_1 = require("./factories/DefaultReverseResolver__factory");
31
+ Object.defineProperty(exports, "DefaultReverseResolver__factory", { enumerable: true, get: function () { return DefaultReverseResolver__factory_1.DefaultReverseResolver__factory; } });
32
+ var DNSRegistrar__factory_1 = require("./factories/DNSRegistrar__factory");
33
+ Object.defineProperty(exports, "DNSRegistrar__factory", { enumerable: true, get: function () { return DNSRegistrar__factory_1.DNSRegistrar__factory; } });
34
+ var DNSSECImpl__factory_1 = require("./factories/DNSSECImpl__factory");
35
+ Object.defineProperty(exports, "DNSSECImpl__factory", { enumerable: true, get: function () { return DNSSECImpl__factory_1.DNSSECImpl__factory; } });
36
+ var ENSRegistry__factory_1 = require("./factories/ENSRegistry__factory");
37
+ Object.defineProperty(exports, "ENSRegistry__factory", { enumerable: true, get: function () { return ENSRegistry__factory_1.ENSRegistry__factory; } });
28
38
  var ETHRegistrarController__factory_1 = require("./factories/ETHRegistrarController__factory");
29
39
  Object.defineProperty(exports, "ETHRegistrarController__factory", { enumerable: true, get: function () { return ETHRegistrarController__factory_1.ETHRegistrarController__factory; } });
30
- var NameWrapper__factory_1 = require("./factories/NameWrapper__factory");
31
- Object.defineProperty(exports, "NameWrapper__factory", { enumerable: true, get: function () { return NameWrapper__factory_1.NameWrapper__factory; } });
40
+ var P256SHA256Algorithm__factory_1 = require("./factories/P256SHA256Algorithm__factory");
41
+ Object.defineProperty(exports, "P256SHA256Algorithm__factory", { enumerable: true, get: function () { return P256SHA256Algorithm__factory_1.P256SHA256Algorithm__factory; } });
32
42
  var PublicResolver__factory_1 = require("./factories/PublicResolver__factory");
33
43
  Object.defineProperty(exports, "PublicResolver__factory", { enumerable: true, get: function () { return PublicResolver__factory_1.PublicResolver__factory; } });
34
44
  var ReverseRegistrar__factory_1 = require("./factories/ReverseRegistrar__factory");
35
45
  Object.defineProperty(exports, "ReverseRegistrar__factory", { enumerable: true, get: function () { return ReverseRegistrar__factory_1.ReverseRegistrar__factory; } });
46
+ var Root__factory_1 = require("./factories/Root__factory");
47
+ Object.defineProperty(exports, "Root__factory", { enumerable: true, get: function () { return Root__factory_1.Root__factory; } });
48
+ var RSASHA1Algorithm__factory_1 = require("./factories/RSASHA1Algorithm__factory");
49
+ Object.defineProperty(exports, "RSASHA1Algorithm__factory", { enumerable: true, get: function () { return RSASHA1Algorithm__factory_1.RSASHA1Algorithm__factory; } });
50
+ var RSASHA256Algorithm__factory_1 = require("./factories/RSASHA256Algorithm__factory");
51
+ Object.defineProperty(exports, "RSASHA256Algorithm__factory", { enumerable: true, get: function () { return RSASHA256Algorithm__factory_1.RSASHA256Algorithm__factory; } });
52
+ var SHA1Digest__factory_1 = require("./factories/SHA1Digest__factory");
53
+ Object.defineProperty(exports, "SHA1Digest__factory", { enumerable: true, get: function () { return SHA1Digest__factory_1.SHA1Digest__factory; } });
54
+ var SHA1NSEC3Digest__factory_1 = require("./factories/SHA1NSEC3Digest__factory");
55
+ Object.defineProperty(exports, "SHA1NSEC3Digest__factory", { enumerable: true, get: function () { return SHA1NSEC3Digest__factory_1.SHA1NSEC3Digest__factory; } });
56
+ var SHA256Digest__factory_1 = require("./factories/SHA256Digest__factory");
57
+ Object.defineProperty(exports, "SHA256Digest__factory", { enumerable: true, get: function () { return SHA256Digest__factory_1.SHA256Digest__factory; } });
58
+ var TLDPublicSuffixList__factory_1 = require("./factories/TLDPublicSuffixList__factory");
59
+ Object.defineProperty(exports, "TLDPublicSuffixList__factory", { enumerable: true, get: function () { return TLDPublicSuffixList__factory_1.TLDPublicSuffixList__factory; } });
60
+ var Multicall__factory_1 = require("./factories/Multicall__factory");
61
+ Object.defineProperty(exports, "Multicall__factory", { enumerable: true, get: function () { return Multicall__factory_1.Multicall__factory; } });
62
+ var NameWrapper__factory_1 = require("./factories/NameWrapper__factory");
63
+ Object.defineProperty(exports, "NameWrapper__factory", { enumerable: true, get: function () { return NameWrapper__factory_1.NameWrapper__factory; } });
36
64
  var StaticMetadataService__factory_1 = require("./factories/StaticMetadataService__factory");
37
65
  Object.defineProperty(exports, "StaticMetadataService__factory", { enumerable: true, get: function () { return StaticMetadataService__factory_1.StaticMetadataService__factory; } });
38
66
  var UniversalResolver__factory_1 = require("./factories/UniversalResolver__factory");
@@ -1,7 +1,19 @@
1
- import { ethers } from 'ethers';
1
+ import { JsonRpcSigner } from '@ethersproject/providers';
2
+ import { ContractTransaction, ethers, PopulatedTransaction } from 'ethers';
2
3
  import ContractManager from './contracts';
3
4
  import { getContractAddress as _getContractAddress } from './contracts/getContractAddress';
4
5
  import { SupportedNetworkId } from './contracts/types';
6
+ import type burnFuses from './functions/burnFuses';
7
+ import type createSubname from './functions/createSubname';
8
+ import type deleteSubname from './functions/deleteSubname';
9
+ import type setName from './functions/setName';
10
+ import type setRecord from './functions/setRecord';
11
+ import type setRecords from './functions/setRecords';
12
+ import type setResolver from './functions/setResolver';
13
+ import type transferName from './functions/transferName';
14
+ import type transferSubname from './functions/transferSubname';
15
+ import type unwrapName from './functions/unwrapName';
16
+ import type wrapName from './functions/wrapName';
5
17
  import GqlManager from './GqlManager';
6
18
  declare type ENSOptions = {
7
19
  graphURI?: string | null;
@@ -10,6 +22,7 @@ declare type ENSOptions = {
10
22
  export declare type InternalENS = {
11
23
  options?: ENSOptions;
12
24
  provider?: ethers.providers.Provider;
25
+ signer: JsonRpcSigner;
13
26
  graphURI?: string | null;
14
27
  } & ENS;
15
28
  export declare type ENSArgs<K extends keyof InternalENS> = {
@@ -17,6 +30,15 @@ export declare type ENSArgs<K extends keyof InternalENS> = {
17
30
  };
18
31
  declare type OmitFirstArg<F> = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;
19
32
  declare type OmitFirstTwoArgs<F> = F extends (x: any, y: any, ...args: infer P) => infer R ? (...args: P) => R : never;
33
+ declare type WriteOptions = {
34
+ addressOrIndex?: string | number;
35
+ signer?: JsonRpcSigner;
36
+ };
37
+ declare type OptionalWriteOptions<F> = F extends (x: any, arg_0: infer Z, options?: infer P) => infer R ? (name: Z, options?: P & WriteOptions) => R : F extends (x: any, arg_0: infer Z, options: infer P) => infer R ? (name: Z, options: P & WriteOptions) => R : never;
38
+ interface WriteFunction<F extends (...args: any) => any> extends Function {
39
+ (...args: Parameters<OptionalWriteOptions<F>>): Promise<ContractTransaction>;
40
+ populateTransaction: (...args: Parameters<OptionalWriteOptions<F>>) => Promise<PopulatedTransaction>;
41
+ }
20
42
  export declare type RawFunction = {
21
43
  raw: (...args: any[]) => Promise<{
22
44
  to: string;
@@ -77,6 +99,14 @@ export declare class ENS {
77
99
  * @returns {OmitFirstArg} - The generated wrapped function
78
100
  */
79
101
  private generateFunction;
102
+ /**
103
+ * Generates a write wrapped function
104
+ * @param {string} path - The path of the exported function
105
+ * @param {FunctionDeps} dependencies - An array of ENS properties
106
+ * @param {string} exportName - The export name of the target function
107
+ * @returns {OmitFirstArg} - The generated wrapped function
108
+ */
109
+ private generateWriteFunction;
80
110
  /**
81
111
  * Generates a wrapped function from raw and decode exports
82
112
  * @param {string} path - The path of the exported function
@@ -104,11 +134,13 @@ export declare class ENS {
104
134
  }>;
105
135
  decode: ({ multicallWrapper }: ENSArgs<"multicallWrapper">, data: string, ...items: BatchFunctionResult<RawFunction>[]) => Promise<any[] | undefined>;
106
136
  }>;
107
- getProfile: (nameOrAddress: string, options?: {
137
+ getProfile: (nameOrAddress: string, options?: ({
108
138
  contentHash?: boolean | undefined;
109
139
  texts?: boolean | string[] | undefined;
110
140
  coinTypes?: boolean | string[] | undefined;
111
- } | undefined) => Promise<{
141
+ } & {
142
+ resolverAddress?: string | undefined;
143
+ }) | undefined) => Promise<{
112
144
  isMigrated: boolean | null;
113
145
  createdAt: string | null;
114
146
  address?: string | undefined;
@@ -137,6 +169,7 @@ export declare class ENS {
137
169
  contentHash?: boolean | undefined;
138
170
  texts?: boolean | string[] | undefined;
139
171
  coinTypes?: boolean | string[] | undefined;
172
+ resolverAddress?: string | undefined;
140
173
  } | undefined) => Promise<{
141
174
  isMigrated: boolean | null;
142
175
  createdAt: string | null;
@@ -173,8 +206,8 @@ export declare class ENS {
173
206
  reverseResolverAddress: any;
174
207
  resolverAddress: any;
175
208
  } | {
176
- name: null;
177
- match: boolean;
209
+ name: undefined;
210
+ match?: undefined;
178
211
  reverseResolverAddress?: undefined;
179
212
  resolverAddress?: undefined;
180
213
  } | undefined>;
@@ -193,10 +226,9 @@ export declare class ENS {
193
226
  }>;
194
227
  decode: ({ contracts }: ENSArgs<"contracts">, data: string, name: string) => Promise<{
195
228
  fuseObj: {
196
- [k: string]: any;
229
+ [k: string]: boolean;
197
230
  };
198
- vulnerability: any;
199
- vulnerableNode: null;
231
+ expiryDate: Date;
200
232
  rawFuses: ethers.BigNumber;
201
233
  } | undefined>;
202
234
  }>;
@@ -223,36 +255,6 @@ export declare class ENS {
223
255
  data: Record<string, any>;
224
256
  }[];
225
257
  } | undefined>;
226
- getHistoryWithDetail: (name: string) => Promise<{
227
- domain: {
228
- type: any;
229
- blockNumber: any;
230
- transactionHash: any;
231
- id: any;
232
- data: Record<string, any>;
233
- }[];
234
- registration: {
235
- type: any;
236
- blockNumber: any;
237
- transactionHash: any;
238
- id: any;
239
- data: Record<string, any>;
240
- }[];
241
- resolver: {
242
- type: any;
243
- blockNumber: any;
244
- transactionHash: any;
245
- id: any;
246
- data: Record<string, any>;
247
- }[];
248
- } | undefined>;
249
- getHistoryDetailForTransactionHash: (hash: string, indexInTransaction?: number | undefined) => Promise<({
250
- key: any;
251
- value: any;
252
- } | undefined)[] | {
253
- key: any;
254
- value: any;
255
- } | undefined>;
256
258
  getContentHash: GeneratedRawFunction<{
257
259
  raw: ({ contracts, universalWrapper }: ENSArgs<"contracts" | "universalWrapper">, name: string) => Promise<{
258
260
  to: string;
@@ -337,11 +339,18 @@ export declare class ENS {
337
339
  } | undefined>;
338
340
  }>;
339
341
  getExpiry: GeneratedRawFunction<{
340
- raw: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, name: string) => Promise<{
342
+ raw: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, name: string, { contract }?: {
343
+ contract?: ("nameWrapper" | "registrar") | undefined;
344
+ }) => Promise<{
341
345
  to: string;
342
346
  data: string;
343
347
  }>;
344
- decode: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, data: string) => Promise<{
348
+ decode: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, data: string, name: string, { contract }?: {
349
+ contract?: ("nameWrapper" | "registrar") | undefined;
350
+ }) => Promise<{
351
+ expiry: Date;
352
+ gracePeriod: null;
353
+ } | {
345
354
  expiry: Date | null;
346
355
  gracePeriod: number;
347
356
  } | undefined>;
@@ -352,7 +361,7 @@ export declare class ENS {
352
361
  pageSize?: number | undefined;
353
362
  orderDirection?: "asc" | "desc" | undefined;
354
363
  orderBy?: "labelName" | "createdAt" | undefined;
355
- lastSubnames: any[];
364
+ lastSubnames?: any[] | undefined;
356
365
  isLargeQuery?: boolean | undefined;
357
366
  }) => Promise<{
358
367
  subnames: {
@@ -423,48 +432,17 @@ export declare class ENS {
423
432
  }>;
424
433
  decode: ({ contracts }: ENSArgs<"contracts">, data: string) => Promise<any>;
425
434
  }>;
426
- setName: (name: string, address?: string | undefined, resolver?: string | undefined, options?: {
427
- addressOrIndex?: string | number | undefined;
428
- } | undefined) => Promise<ethers.ContractTransaction | undefined>;
429
- setRecords: (name: string, records: import("./utils/recordHelpers").RecordOptions) => Promise<ethers.ContractTransaction | undefined>;
430
- setResolver: (name: string, contract: "nameWrapper" | "registry", resolver?: string | undefined, options?: {
431
- addressOrIndex?: string | number | undefined;
432
- } | undefined) => Promise<ethers.ContractTransaction>;
433
- transferName: (name: string, newOwner: string, contract: "nameWrapper" | "registry" | "baseRegistrar", options?: {
434
- addressOrIndex?: string | number | undefined;
435
- } | undefined) => Promise<ethers.ContractTransaction>;
436
- wrapName: (name: string, wrappedOwner: string, fuseOptions?: string | number | import("./@types/FuseOptions").FuseOptions | undefined, resolverAddress?: string | undefined, options?: {
437
- addressOrIndex?: string | number | undefined;
438
- } | undefined) => Promise<ethers.ContractTransaction>;
439
- unwrapName: (name: string, newController: string, newRegistrant?: string | undefined, options?: {
440
- addressOrIndex?: string | number | undefined;
441
- } | undefined) => Promise<ethers.ContractTransaction>;
442
- burnFuses: (name: string, fusesToBurn: import("./@types/FuseOptions").FuseOptions) => Promise<ethers.ContractTransaction>;
443
- createSubname: (args_0: {
444
- name: string;
445
- owner: string;
446
- resolverAddress?: string | undefined;
447
- contract: "nameWrapper" | "registry";
448
- options?: {
449
- addressOrIndex?: string | number | undefined;
450
- } | undefined;
451
- } | ({
452
- contract: "nameWrapper";
453
- fuses?: import("./@types/FuseOptions").FuseOptions | undefined;
454
- } & {
455
- name: string;
456
- owner: string;
457
- resolverAddress?: string | undefined;
458
- contract: "nameWrapper" | "registry";
459
- options?: {
460
- addressOrIndex?: string | number | undefined;
461
- } | undefined;
462
- })) => Promise<ethers.ContractTransaction>;
463
- deleteSubname: (name: string, contract: "nameWrapper" | "registry", options?: {
464
- addressOrIndex?: string | number | undefined;
465
- } | undefined) => Promise<ethers.ContractTransaction>;
466
- transferSubname: (name: string, contract: "nameWrapper" | "registry", address: string, options?: {
467
- addressOrIndex?: string | number | undefined;
468
- } | undefined) => Promise<ethers.ContractTransaction>;
435
+ setName: WriteFunction<typeof setName>;
436
+ setRecords: WriteFunction<typeof setRecords>;
437
+ setRecord: WriteFunction<typeof setRecord>;
438
+ setResolver: WriteFunction<typeof setResolver>;
439
+ transferName: WriteFunction<typeof transferName>;
440
+ wrapName: WriteFunction<typeof wrapName>;
441
+ unwrapName: WriteFunction<typeof unwrapName>;
442
+ burnFuses: WriteFunction<typeof burnFuses>;
443
+ createSubname: WriteFunction<typeof createSubname>;
444
+ deleteSubname: WriteFunction<typeof deleteSubname>;
445
+ transferSubname: WriteFunction<typeof transferSubname>;
446
+ getDNSOwner: (dnsName: string) => Promise<any>;
469
447
  }
470
448
  export {};
package/dist/cjs/index.js CHANGED
@@ -31,6 +31,7 @@ const contracts_1 = __importDefault(require("./contracts"));
31
31
  const getContractAddress_1 = require("./contracts/getContractAddress");
32
32
  const GqlManager_1 = __importDefault(require("./GqlManager"));
33
33
  const singleCall_1 = __importDefault(require("./utils/singleCall"));
34
+ const writeTx_1 = __importDefault(require("./utils/writeTx"));
34
35
  const graphURIEndpoints = {
35
36
  1: 'https://api.thegraph.com/subgraphs/name/ensdomains/ens',
36
37
  3: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensropsten',
@@ -89,15 +90,30 @@ class ENS {
89
90
  await thisRef.checkInitialProvider();
90
91
  // import the module dynamically
91
92
  const mod = await Promise.resolve().then(() => __importStar(require(
92
- /* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true */
93
+ /* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true, webpackExclude: /.*\.ts$/ */
93
94
  `./functions/${path}`)));
94
95
  // if combine isn't specified, run normally
95
96
  // otherwise, create a function from the raw and decode functions
96
97
  if (subFunc !== 'combine') {
98
+ const writeable = subFunc === 'write' || subFunc === 'populateTransaction';
97
99
  // get the function to call
98
- const func = subFunc ? mod[exportName][subFunc] : mod[exportName];
100
+ const func = subFunc && !writeable ? mod[exportName][subFunc] : mod[exportName];
99
101
  // get the dependencies to forward to the function as the first arg
100
- const dependenciesToForward = thisRef.forwardDependenciesFromArray(dependencies);
102
+ let dependenciesToForward = thisRef.forwardDependenciesFromArray(dependencies);
103
+ // if func is write func, inject signer into dependencies
104
+ if (writeable) {
105
+ const options = (args[1] || {});
106
+ const signer = options.signer ||
107
+ thisRef.provider?.getSigner(options.addressOrIndex);
108
+ const populate = subFunc === 'populateTransaction';
109
+ if (!signer) {
110
+ throw new Error('No signer specified');
111
+ }
112
+ delete options.addressOrIndex;
113
+ delete options.signer;
114
+ dependenciesToForward = { ...dependenciesToForward, signer };
115
+ return func(dependenciesToForward, args[0], options).then((0, writeTx_1.default)(signer, populate));
116
+ }
101
117
  // return the function with the dependencies forwarded
102
118
  return func(dependenciesToForward, ...args);
103
119
  }
@@ -114,6 +130,9 @@ class ENS {
114
130
  mainFunc.decode = this.importGenerator(path, dependencies, exportName, 'decode');
115
131
  mainFunc.batch = this.importGenerator(path, dependencies, exportName, 'batch', { raw: mainFunc.raw, decode: mainFunc.decode });
116
132
  }
133
+ else if (subFunc === 'write') {
134
+ mainFunc.populateTransaction = this.importGenerator(path, dependencies, exportName, 'populateTransaction');
135
+ }
117
136
  return mainFunc;
118
137
  };
119
138
  /**
@@ -124,6 +143,14 @@ class ENS {
124
143
  * @returns {OmitFirstArg} - The generated wrapped function
125
144
  */
126
145
  generateFunction = (path, dependencies, exportName = 'default') => this.importGenerator(path, dependencies, exportName);
146
+ /**
147
+ * Generates a write wrapped function
148
+ * @param {string} path - The path of the exported function
149
+ * @param {FunctionDeps} dependencies - An array of ENS properties
150
+ * @param {string} exportName - The export name of the target function
151
+ * @returns {OmitFirstArg} - The generated wrapped function
152
+ */
153
+ generateWriteFunction = (path, dependencies, exportName = 'default') => this.importGenerator(path, dependencies, exportName, 'write');
127
154
  /**
128
155
  * Generates a wrapped function from raw and decode exports
129
156
  * @param {string} path - The path of the exported function
@@ -166,6 +193,7 @@ class ENS {
166
193
  'gqlInstance',
167
194
  'getName',
168
195
  'resolverMulticallWrapper',
196
+ 'multicallWrapper',
169
197
  '_getAddr',
170
198
  '_getContentHash',
171
199
  '_getText',
@@ -177,8 +205,6 @@ class ENS {
177
205
  'contracts',
178
206
  ]);
179
207
  getHistory = this.generateFunction('getHistory', ['gqlInstance'], 'getHistory');
180
- getHistoryWithDetail = this.generateFunction('getHistory', ['contracts', 'gqlInstance', 'provider'], 'getHistoryWithDetail');
181
- getHistoryDetailForTransactionHash = this.generateFunction('getHistory', ['contracts', 'provider'], 'getHistoryDetailForTransactionHash');
182
208
  getContentHash = this.generateRawFunction('initialGetters', ['contracts', 'universalWrapper'], 'getContentHash');
183
209
  _getContentHash = this.generateRawFunction('initialGetters', ['contracts'], '_getContentHash');
184
210
  getAddr = this.generateRawFunction('initialGetters', ['contracts', 'universalWrapper'], 'getAddr');
@@ -193,31 +219,28 @@ class ENS {
193
219
  universalWrapper = this.generateRawFunction('initialGetters', ['contracts'], 'universalWrapper');
194
220
  resolverMulticallWrapper = this.generateRawFunction('initialGetters', ['contracts'], 'resolverMulticallWrapper');
195
221
  multicallWrapper = this.generateRawFunction('initialGetters', ['contracts'], 'multicallWrapper');
196
- setName = this.generateFunction('setName', [
222
+ setName = this.generateWriteFunction('setName', [
197
223
  'contracts',
198
- 'provider',
199
224
  ]);
200
- setRecords = this.generateFunction('setRecords', [
225
+ setRecords = this.generateWriteFunction('setRecords', ['contracts', 'provider', 'getResolver']);
226
+ setRecord = this.generateWriteFunction('setRecord', [
201
227
  'contracts',
202
228
  'provider',
203
229
  'getResolver',
204
230
  ]);
205
- setResolver = this.generateFunction('setResolver', ['contracts', 'provider']);
206
- transferName = this.generateFunction('transferName', ['contracts', 'provider']);
207
- wrapName = this.generateFunction('wrapName', [
231
+ setResolver = this.generateWriteFunction('setResolver', ['contracts']);
232
+ transferName = this.generateWriteFunction('transferName', ['contracts']);
233
+ wrapName = this.generateWriteFunction('wrapName', [
208
234
  'contracts',
209
- 'provider',
235
+ 'getExpiry',
210
236
  ]);
211
- unwrapName = this.generateFunction('unwrapName', [
237
+ unwrapName = this.generateWriteFunction('unwrapName', ['contracts']);
238
+ burnFuses = this.generateWriteFunction('burnFuses', [
212
239
  'contracts',
213
- 'provider',
214
- ]);
215
- burnFuses = this.generateFunction('burnFuses', [
216
- 'contracts',
217
- 'provider',
218
240
  ]);
219
- createSubname = this.generateFunction('createSubname', ['contracts', 'provider']);
220
- deleteSubname = this.generateFunction('deleteSubname', ['contracts', 'provider', 'transferSubname']);
221
- transferSubname = this.generateFunction('transferSubname', ['contracts', 'provider']);
241
+ createSubname = this.generateWriteFunction('createSubname', ['contracts', 'getExpiry']);
242
+ deleteSubname = this.generateWriteFunction('deleteSubname', ['transferSubname']);
243
+ transferSubname = this.generateWriteFunction('transferSubname', ['contracts', 'getExpiry']);
244
+ getDNSOwner = this.generateFunction('getDNSOwner', []);
222
245
  }
223
246
  exports.ENS = ENS;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkLocalStorageSize = exports.truncateUndecryptedName = exports.decryptName = exports.checkIsDecrypted = exports.parseName = exports.encodeLabel = exports.checkLabel = exports.saveName = exports.saveLabel = exports.isEncodedLabelhash = exports.encodeLabelhash = exports.decodeLabelhash = exports.keccakFromString = exports.labelhash = void 0;
4
4
  const utils_1 = require("ethers/lib/utils");
5
5
  const format_1 = require("./format");
6
+ const hasLocalStorage = typeof localStorage !== 'undefined';
6
7
  const labelhash = (input) => (0, utils_1.solidityKeccak256)(['string'], [input]);
7
8
  exports.labelhash = labelhash;
8
9
  const keccakFromString = (input) => (0, exports.labelhash)(input);
@@ -14,7 +15,7 @@ function decodeLabelhash(hash) {
14
15
  if (hash.length !== 66) {
15
16
  throw Error('Expected encoded labelhash to have a length of 66');
16
17
  }
17
- return `${hash.slice(1, -1)}`;
18
+ return `0x${hash.slice(1, -1)}`;
18
19
  }
19
20
  exports.decodeLabelhash = decodeLabelhash;
20
21
  function encodeLabelhash(hash) {
@@ -32,12 +33,12 @@ function isEncodedLabelhash(hash) {
32
33
  }
33
34
  exports.isEncodedLabelhash = isEncodedLabelhash;
34
35
  function getLabels() {
35
- return localStorage
36
+ return hasLocalStorage
36
37
  ? JSON.parse(localStorage.getItem('ensjs:labels')) || {}
37
38
  : {};
38
39
  }
39
40
  function _saveLabel(hash, label) {
40
- if (!localStorage)
41
+ if (!hasLocalStorage)
41
42
  return hash;
42
43
  const labels = getLabels();
43
44
  localStorage.setItem('ensjs:labels', JSON.stringify({
@@ -97,7 +98,7 @@ exports.decryptName = decryptName;
97
98
  const truncateUndecryptedName = (name) => (0, format_1.truncateFormat)(name);
98
99
  exports.truncateUndecryptedName = truncateUndecryptedName;
99
100
  function checkLocalStorageSize() {
100
- if (!localStorage)
101
+ if (!hasLocalStorage)
101
102
  return 'Empty (0 KB)';
102
103
  let allStrings = '';
103
104
  for (const key in window.localStorage) {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeNamehashIndexes = exports.makeOtherIndexes = void 0;
4
- const ethers_1 = require("ethers");
4
+ const normalise_1 = require("./normalise");
5
5
  const makeOtherIndexes = (data, findStr) => Array.from(data.matchAll(findStr)).map((x) => x.index / 2 - 1);
6
6
  exports.makeOtherIndexes = makeOtherIndexes;
7
- const makeNamehashIndexes = (data, name) => Array.from(data.matchAll(ethers_1.ethers.utils.namehash(name).substring(2))).map((x) => x.index / 2 - 1);
7
+ const makeNamehashIndexes = (data, name) => Array.from(data.matchAll((0, normalise_1.namehash)(name).substring(2))).map((x) => x.index / 2 - 1);
8
8
  exports.makeNamehashIndexes = makeNamehashIndexes;
@@ -1 +1,2 @@
1
1
  export declare const normalise: (name: string) => any;
2
+ export declare const namehash: (name: string) => string;
@@ -3,7 +3,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.normalise = void 0;
6
+ exports.namehash = exports.normalise = void 0;
7
+ const utils_1 = require("ethers/lib/utils");
7
8
  const uts46bundle_js_1 = __importDefault(require("idna-uts46-hx/uts46bundle.js"));
9
+ const labels_1 = require("./labels");
10
+ const zeros = new Uint8Array(32);
11
+ zeros.fill(0);
8
12
  const normalise = (name) => name ? uts46bundle_js_1.default.toUnicode(name, { useStd3ASCII: true }) : name;
9
13
  exports.normalise = normalise;
14
+ const namehash = (name) => {
15
+ let result = zeros;
16
+ if (name) {
17
+ const labels = name.split('.');
18
+ for (var i = labels.length - 1; i >= 0; i--) {
19
+ let labelSha;
20
+ if ((0, labels_1.isEncodedLabelhash)(labels[i])) {
21
+ labelSha = (0, labels_1.decodeLabelhash)(labels[i]);
22
+ }
23
+ else {
24
+ const normalised = (0, exports.normalise)(labels[i]);
25
+ labelSha = (0, utils_1.keccak256)((0, utils_1.toUtf8Bytes)(normalised));
26
+ }
27
+ result = (0, utils_1.keccak256)((0, utils_1.concat)([result, labelSha]));
28
+ }
29
+ }
30
+ else {
31
+ result = (0, utils_1.hexlify)(zeros);
32
+ }
33
+ return result;
34
+ };
35
+ exports.namehash = namehash;
@@ -9,5 +9,8 @@ export declare type RecordOptions = {
9
9
  coinTypes?: RecordItem[];
10
10
  };
11
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;
12
15
  export declare const generateRecordCallArray: (namehash: string, records: RecordOptions, resolver: PublicResolver) => string[];
13
16
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateRecordCallArray = exports.generateSetAddr = void 0;
3
+ exports.generateRecordCallArray = exports.generateSingleRecordCall = exports.generateSetAddr = void 0;
4
4
  const address_encoder_1 = require("@ensdomains/address-encoder");
5
5
  const contentHash_1 = require("./contentHash");
6
6
  const generateSetAddr = (namehash, coinType, address, resolver) => {
@@ -16,28 +16,55 @@ const generateSetAddr = (namehash, coinType, address, resolver) => {
16
16
  return resolver?.interface.encodeFunctionData('setAddr(bytes32,uint256,bytes)', [namehash, inputCoinType, encodedAddress]);
17
17
  };
18
18
  exports.generateSetAddr = generateSetAddr;
19
+ function generateSingleRecordCall(namehash, resolver, type) {
20
+ if (type === 'contentHash') {
21
+ return (_r) => {
22
+ const record = _r;
23
+ let _contentHash = '';
24
+ if (record !== _contentHash) {
25
+ const encoded = (0, contentHash_1.encodeContenthash)(record);
26
+ if (encoded.error)
27
+ throw new Error(encoded.error);
28
+ _contentHash = encoded.encoded;
29
+ }
30
+ return resolver.interface.encodeFunctionData('setContenthash', [
31
+ namehash,
32
+ _contentHash,
33
+ ]);
34
+ };
35
+ }
36
+ else {
37
+ return (_r) => {
38
+ const record = _r;
39
+ if (type === 'text') {
40
+ return resolver.interface.encodeFunctionData('setText', [
41
+ namehash,
42
+ record.key,
43
+ record.value,
44
+ ]);
45
+ }
46
+ else {
47
+ return (0, exports.generateSetAddr)(namehash, record.key, record.value, resolver);
48
+ }
49
+ };
50
+ }
51
+ }
52
+ exports.generateSingleRecordCall = generateSingleRecordCall;
19
53
  const generateRecordCallArray = (namehash, records, resolver) => {
20
54
  const calls = [];
21
55
  if (records.contentHash) {
22
- const contentHash = records.contentHash === '' ? '' : (0, contentHash_1.encodeContenthash)(records.contentHash);
23
- const data = resolver?.interface.encodeFunctionData('setContenthash', [namehash, contentHash]);
56
+ const data = generateSingleRecordCall(namehash, resolver, 'contentHash')(records.contentHash);
24
57
  data && calls.push(data);
25
58
  }
26
59
  if (records.texts && records.texts.length > 0) {
27
- records.texts.forEach(({ key, value }) => {
28
- const data = resolver?.interface.encodeFunctionData('setText', [
29
- namehash,
30
- key,
31
- value,
32
- ]);
33
- data && calls.push(data);
34
- });
60
+ records.texts
61
+ .map(generateSingleRecordCall(namehash, resolver, 'text'))
62
+ .forEach((call) => calls.push(call));
35
63
  }
36
64
  if (records.coinTypes && records.coinTypes.length > 0) {
37
- records.coinTypes.forEach(({ key, value }) => {
38
- const data = (0, exports.generateSetAddr)(namehash, key, value, resolver);
39
- data && calls.push(data);
40
- });
65
+ records.coinTypes
66
+ .map(generateSingleRecordCall(namehash, resolver, 'addr'))
67
+ .forEach((call) => calls.push(call));
41
68
  }
42
69
  return calls;
43
70
  };
@@ -7,6 +7,7 @@ exports._makeCommitment = exports.makeCommitment = exports.randomSecret = void 0
7
7
  const ethers_1 = require("ethers");
8
8
  const generateFuseInput_1 = __importDefault(require("./generateFuseInput"));
9
9
  const labels_1 = require("./labels");
10
+ const normalise_1 = require("./normalise");
10
11
  const recordHelpers_1 = require("./recordHelpers");
11
12
  const randomSecret = () => {
12
13
  const bytes = Buffer.allocUnsafe(32);
@@ -15,11 +16,9 @@ const randomSecret = () => {
15
16
  exports.randomSecret = randomSecret;
16
17
  const makeCommitment = ({ name, owner, duration, resolver, records, reverseRecord, fuses, }) => {
17
18
  const label = (0, labels_1.labelhash)(name.split('.')[0]);
18
- const namehash = ethers_1.utils.namehash(name);
19
+ const hash = (0, normalise_1.namehash)(name);
19
20
  const resolverAddress = resolver.address;
20
- const data = records
21
- ? (0, recordHelpers_1.generateRecordCallArray)(namehash, records, resolver)
22
- : [];
21
+ const data = records ? (0, recordHelpers_1.generateRecordCallArray)(hash, records, resolver) : [];
23
22
  const secret = (0, exports.randomSecret)();
24
23
  const fuseData = fuses ? (0, generateFuseInput_1.default)(fuses) : '0';
25
24
  const commitment = (0, exports._makeCommitment)({
@@ -0,0 +1,5 @@
1
+ import { BigNumber } from 'ethers';
2
+ import { ENSArgs } from '..';
3
+ export declare type Expiry = string | number | Date | BigNumber;
4
+ export declare const MAX_EXPIRY: BigNumber;
5
+ export declare const makeExpiry: ({ getExpiry }: ENSArgs<'getExpiry'>, name: string, expiry?: Expiry | undefined) => Promise<BigNumber>;