@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
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getHistoryDetailForTransactionHash = exports.getHistoryWithDetail = exports.getHistory = void 0;
3
+ exports.getHistory = void 0;
4
4
  const address_encoder_1 = require("@ensdomains/address-encoder");
5
5
  const ethers_1 = require("ethers");
6
6
  const contentHash_1 = require("../utils/contentHash");
7
- const makeHashIndexes_1 = require("../utils/makeHashIndexes");
8
7
  const eventFormat = {
9
8
  Domain: {
10
9
  NewOwner: (args) => ({ owner: args.owner.id }),
@@ -46,7 +45,7 @@ const eventFormat = {
46
45
  NameChanged: (args) => ({ name: args.name }),
47
46
  AbiChanged: (args) => ({ contentType: args.contentType }),
48
47
  PubkeyChanged: (args) => ({ x: args.x, y: args.y }),
49
- TextChanged: (args) => ({ key: args.key }),
48
+ TextChanged: (args) => ({ key: args.key, value: args.value }),
50
49
  ContenthashChanged: (args) => ({ hash: (0, contentHash_1.decodeContenthash)(args.hash) }),
51
50
  InterfaceChanged: (args) => ({
52
51
  interfaceId: args.interfaceId,
@@ -66,31 +65,6 @@ const mapEvents = (eventArray, type) => eventArray.map((event) => ({
66
65
  id: event.id,
67
66
  data: eventFormat[type][event.__typename](event),
68
67
  }));
69
- const mapResultDetailDecode = (publicResolver) => (result) => {
70
- const hashIndexes = (0, makeHashIndexes_1.makeOtherIndexes)(result.input, '10f13a8c');
71
- const abiLengths = hashIndexes.map((x) => ({
72
- index: x,
73
- length: x === 0
74
- ? ethers_1.ethers.utils.hexDataLength(result.input)
75
- : parseInt(ethers_1.ethers.utils.hexDataSlice(result.input, x - 32, x), 16),
76
- }));
77
- const ABIs = abiLengths.map(({ index, length }) => ethers_1.ethers.utils.hexDataSlice(result.input, index, index + length));
78
- return ABIs.map((abi) => {
79
- try {
80
- return publicResolver.interface.decodeFunctionData('setText(bytes32,string,string)', abi);
81
- }
82
- catch {
83
- return;
84
- }
85
- });
86
- };
87
- const expandDecode = (prev, curr) => {
88
- if (!curr)
89
- return [...prev, { value: null }];
90
- if (!curr.length)
91
- return [...prev, curr];
92
- return [...prev, ...curr];
93
- };
94
68
  async function getHistory({ gqlInstance }, name) {
95
69
  const client = gqlInstance.client;
96
70
  const query = gqlInstance.gql `
@@ -171,6 +145,7 @@ async function getHistory({ gqlInstance }, name) {
171
145
  }
172
146
  ...on TextChanged {
173
147
  key
148
+ value
174
149
  }
175
150
  ...on ContenthashChanged {
176
151
  hash
@@ -206,74 +181,3 @@ async function getHistory({ gqlInstance }, name) {
206
181
  };
207
182
  }
208
183
  exports.getHistory = getHistory;
209
- async function getHistoryWithDetail({ contracts, gqlInstance, provider, }, name) {
210
- const historyRes = await getHistory({ gqlInstance }, name);
211
- if (!historyRes)
212
- return;
213
- const { domain, registration, resolver: resolverHistory } = historyRes;
214
- const textEvents = resolverHistory.filter((event) => event.type === 'TextChanged');
215
- const transactions = textEvents.reduce((prev, curr) => {
216
- if (prev.includes(curr.transactionHash)) {
217
- return prev;
218
- }
219
- return [...prev, curr.transactionHash];
220
- }, []);
221
- const publicResolver = await contracts?.getPublicResolver();
222
- const fetchResult = (await ethers_1.ethers.utils.fetchJson(provider.connection, JSON.stringify(transactions.map((tx, i) => ({
223
- jsonrpc: '2.0',
224
- id: i,
225
- method: 'eth_getTransactionByHash',
226
- params: [tx],
227
- })))))
228
- .map((result) => result.result)
229
- .map(mapResultDetailDecode(publicResolver))
230
- .reduce(expandDecode, []);
231
- const detailedResolverHistory = resolverHistory.map((event) => {
232
- if (event.type !== 'TextChanged')
233
- return event;
234
- const { id } = event;
235
- const matchedTextInx = textEvents.findIndex((x) => x.id === id);
236
- return {
237
- ...event,
238
- data: {
239
- ...event.data,
240
- value: fetchResult[matchedTextInx] && fetchResult[matchedTextInx].value,
241
- },
242
- };
243
- });
244
- return {
245
- domain,
246
- registration,
247
- resolver: detailedResolverHistory,
248
- };
249
- }
250
- exports.getHistoryWithDetail = getHistoryWithDetail;
251
- async function getHistoryDetailForTransactionHash({ contracts, provider }, hash, indexInTransaction) {
252
- const publicResolver = await contracts?.getPublicResolver();
253
- const transaction = await provider.getTransaction(hash);
254
- if (!transaction)
255
- return;
256
- const result = mapResultDetailDecode(publicResolver)({
257
- input: transaction.data,
258
- });
259
- if (!result || !result.length)
260
- return;
261
- if (typeof indexInTransaction === 'number') {
262
- if (indexInTransaction + 1 > result.length)
263
- return;
264
- const resultItem = result[indexInTransaction];
265
- if (!resultItem ||
266
- !resultItem.key ||
267
- (!resultItem.value && resultItem.value !== ''))
268
- return;
269
- return { key: resultItem.key, value: resultItem.value };
270
- }
271
- return result.map((item) => {
272
- if (!item.key)
273
- return;
274
- if (!item.value && item.value !== '')
275
- return { key: item.key, value: null };
276
- return { key: item.key, value: item.value };
277
- });
278
- }
279
- exports.getHistoryDetailForTransactionHash = getHistoryDetailForTransactionHash;
@@ -10,8 +10,8 @@ declare const _default: {
10
10
  reverseResolverAddress: any;
11
11
  resolverAddress: any;
12
12
  } | {
13
- name: null;
14
- match: boolean;
13
+ name: undefined;
14
+ match?: undefined;
15
15
  reverseResolverAddress?: undefined;
16
16
  resolverAddress?: undefined;
17
17
  } | undefined>;
@@ -25,7 +25,7 @@ const decode = async ({ contracts }, data, address) => {
25
25
  };
26
26
  }
27
27
  catch {
28
- return { name: null, match: false };
28
+ return { name: undefined };
29
29
  }
30
30
  };
31
31
  exports.default = {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ethers_1 = require("ethers");
4
4
  const labels_1 = require("../utils/labels");
5
+ const normalise_1 = require("../utils/normalise");
5
6
  const singleContractOwnerRaw = async ({ contracts }, contract, namehash, labels) => {
6
7
  switch (contract) {
7
8
  case 'nameWrapper': {
@@ -30,10 +31,10 @@ const singleContractOwnerRaw = async ({ contracts }, contract, namehash, labels)
30
31
  }
31
32
  };
32
33
  const raw = async ({ contracts, multicallWrapper }, name, contract) => {
33
- const namehash = ethers_1.ethers.utils.namehash(name);
34
+ const namehash = (0, normalise_1.namehash)(name);
34
35
  const labels = name.split('.');
35
- if (contract) {
36
- return await singleContractOwnerRaw({ contracts }, contract, namehash, labels);
36
+ if (contract || labels.length === 1) {
37
+ return await singleContractOwnerRaw({ contracts }, contract || 'registry', namehash, labels);
37
38
  }
38
39
  const registryData = await singleContractOwnerRaw({ contracts }, 'registry', namehash, labels);
39
40
  const nameWrapperData = await singleContractOwnerRaw({ contracts }, 'nameWrapper', namehash, labels);
@@ -48,10 +49,11 @@ const singleContractOwnerDecode = (data) => ethers_1.ethers.utils.defaultAbiCode
48
49
  const decode = async ({ contracts, multicallWrapper }, data, name, contract) => {
49
50
  if (data === null)
50
51
  return;
51
- if (contract) {
52
+ const labels = name.split('.');
53
+ if (contract || labels.length === 1) {
52
54
  const singleOwner = singleContractOwnerDecode(data);
53
55
  let obj = {
54
- ownershipLevel: contract,
56
+ ownershipLevel: contract || 'registry',
55
57
  };
56
58
  if (contract === 'registrar') {
57
59
  return {
@@ -76,7 +78,6 @@ const decode = async ({ contracts, multicallWrapper }, data, name, contract) =>
76
78
  const registryOwner = decodedData[0][0];
77
79
  const nameWrapperOwner = decodedData[1][0];
78
80
  const registrarOwner = decodedData[2]?.[0];
79
- const labels = name.split('.');
80
81
  // check for only .eth names
81
82
  if (labels[labels.length - 1] === 'eth') {
82
83
  // if the owner on the registrar is the namewrapper, then the namewrapper owner is the owner
@@ -26,5 +26,8 @@ declare type ProfileOptions = {
26
26
  texts?: boolean | string[];
27
27
  coinTypes?: boolean | string[];
28
28
  };
29
- export default function ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }: ENSArgs<'contracts' | 'gqlInstance' | 'getName' | '_getText' | '_getAddr' | '_getContentHash' | 'resolverMulticallWrapper'>, nameOrAddress: string, options?: ProfileOptions): Promise<ResolvedProfile | undefined>;
29
+ declare type InputProfileOptions = ProfileOptions & {
30
+ resolverAddress?: string;
31
+ };
32
+ export default function ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }: ENSArgs<'contracts' | 'gqlInstance' | 'getName' | '_getText' | '_getAddr' | '_getContentHash' | 'resolverMulticallWrapper' | 'multicallWrapper'>, nameOrAddress: string, options?: InputProfileOptions): Promise<ResolvedProfile | undefined>;
30
33
  export {};
@@ -4,6 +4,7 @@ const address_encoder_1 = require("@ensdomains/address-encoder");
4
4
  const ethers_1 = require("ethers");
5
5
  const contentHash_1 = require("../utils/contentHash");
6
6
  const hexEncodedName_1 = require("../utils/hexEncodedName");
7
+ const normalise_1 = require("../utils/normalise");
7
8
  const validation_1 = require("../utils/validation");
8
9
  const makeMulticallData = async ({ _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, name, options) => {
9
10
  let calls = [];
@@ -42,23 +43,51 @@ const makeMulticallData = async ({ _getAddr, _getContentHash, _getText, resolver
42
43
  const prRawData = await resolverMulticallWrapper.raw(calls.map((x) => x.data));
43
44
  return { data: prRawData.data, calls };
44
45
  };
45
- const makeHashIndexes = (data, name) => [...data.matchAll(ethers_1.ethers.utils.namehash(name).substring(2))].map((x) => x.index / 2 - 1);
46
- const getDataForName = async ({ contracts, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, name, options) => {
46
+ const fetchWithoutResolverMulticall = async ({ multicallWrapper }, calls, resolverAddress) => {
47
+ const callsWithResolver = calls.map((call) => ({
48
+ to: resolverAddress,
49
+ data: call.data.data,
50
+ }));
51
+ return (await multicallWrapper(callsWithResolver)).map((x) => x[1]);
52
+ };
53
+ const getDataForName = async ({ contracts, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, name, options, fallbackResolver, specificResolver) => {
47
54
  const universalResolver = await contracts?.getUniversalResolver();
48
55
  const { data, calls } = await makeMulticallData({ _getAddr, _getContentHash, _getText, resolverMulticallWrapper }, name, options);
49
- let resolver;
56
+ let resolvedData;
57
+ let useFallbackResolver = false;
50
58
  try {
51
- resolver = await universalResolver?.resolve((0, hexEncodedName_1.hexEncodeName)(name), data);
59
+ if (specificResolver) {
60
+ const publicResolver = await contracts?.getPublicResolver(undefined, specificResolver);
61
+ resolvedData = await publicResolver?.callStatic.multicall(calls.map((x) => x.data));
62
+ }
63
+ else {
64
+ resolvedData = await universalResolver?.resolve((0, hexEncodedName_1.hexEncodeName)(name), data);
65
+ }
52
66
  }
53
67
  catch {
54
- return;
68
+ useFallbackResolver = true;
69
+ }
70
+ let resolverAddress;
71
+ let recordData;
72
+ if (useFallbackResolver) {
73
+ resolverAddress = specificResolver || fallbackResolver;
74
+ recordData = await fetchWithoutResolverMulticall({ multicallWrapper }, calls, resolverAddress);
75
+ }
76
+ else {
77
+ resolverAddress = specificResolver || resolvedData['1'];
78
+ if (specificResolver) {
79
+ recordData = resolvedData;
80
+ }
81
+ else {
82
+ ;
83
+ [recordData] = await resolverMulticallWrapper.decode(resolvedData['0']);
84
+ }
55
85
  }
56
- const [recordData] = await resolverMulticallWrapper.decode(resolver['0']);
57
86
  const matchAddress = recordData[calls.findIndex((x) => x.key === '60')];
58
87
  return {
59
88
  address: matchAddress && (await _getAddr.decode(matchAddress)),
60
89
  records: await formatRecords({ _getAddr, _getContentHash, _getText }, recordData, calls, options),
61
- resolverAddress: resolver['1'],
90
+ resolverAddress,
62
91
  };
63
92
  };
64
93
  const formatRecords = async ({ _getText, _getAddr, _getContentHash, }, data, calls, options) => {
@@ -68,7 +97,7 @@ const formatRecords = async ({ _getText, _getAddr, _getContentHash, }, data, cal
68
97
  key: calls[i].key,
69
98
  type: calls[i].type,
70
99
  };
71
- if (itemRet.type === 'addr' || itemRet.type === 'contenthash') {
100
+ if (itemRet.type === 'contenthash') {
72
101
  decodedFromAbi = ethers_1.ethers.utils.defaultAbiCoder.decode(['bytes'], item)[0];
73
102
  if (ethers_1.ethers.utils.hexStripZeros(decodedFromAbi) === '0x') {
74
103
  return;
@@ -144,10 +173,10 @@ const formatRecords = async ({ _getText, _getAddr, _getContentHash, }, data, cal
144
173
  }
145
174
  return returnedResponse;
146
175
  };
147
- const graphFetch = async ({ gqlInstance }, name, wantedRecords) => {
176
+ const graphFetch = async ({ gqlInstance }, name, wantedRecords, resolverAddress) => {
148
177
  const query = gqlInstance.gql `
149
- query getRecords($name: String!) {
150
- domains(where: { name: $name }) {
178
+ query getRecords($id: String!) {
179
+ domain(id: $id) {
151
180
  isMigrated
152
181
  createdAt
153
182
  resolver {
@@ -157,18 +186,52 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords) => {
157
186
  addr {
158
187
  id
159
188
  }
189
+ address
190
+ }
191
+ }
192
+ }
193
+ `;
194
+ const customResolverQuery = gqlInstance.gql `
195
+ query getRecordsWithCustomResolver($id: String!, $resolverId: String!) {
196
+ domain(id: $id) {
197
+ isMigrated
198
+ createdAt
199
+ }
200
+ resolver(id: $resolverId) {
201
+ texts
202
+ coinTypes
203
+ contentHash
204
+ addr {
205
+ id
160
206
  }
161
207
  }
162
208
  }
163
209
  `;
164
210
  const client = gqlInstance.client;
165
- const { domains } = await client.request(query, { name });
166
- if (!domains || domains.length === 0)
211
+ const id = (0, normalise_1.namehash)(name);
212
+ let domain;
213
+ let resolverResponse;
214
+ if (!resolverAddress) {
215
+ ;
216
+ ({ domain } = await client.request(query, { id }));
217
+ resolverResponse = domain?.resolver;
218
+ }
219
+ else {
220
+ const resolverId = `${resolverAddress}-${id}`;
221
+ ({ resolver: resolverResponse, domain } = await client.request(customResolverQuery, { id, resolverId }));
222
+ }
223
+ if (!domain)
167
224
  return;
168
- const [{ resolver: resolverResponse, isMigrated, createdAt }] = domains;
225
+ const { isMigrated, createdAt } = domain;
169
226
  let returnedRecords = {};
170
- if (!wantedRecords)
227
+ if (!resolverResponse)
171
228
  return { isMigrated, createdAt };
229
+ if (!wantedRecords)
230
+ return {
231
+ isMigrated,
232
+ createdAt,
233
+ graphResolverAddress: resolverResponse.address || resolverAddress,
234
+ };
172
235
  Object.keys(wantedRecords).forEach((key) => {
173
236
  const data = wantedRecords[key];
174
237
  if (typeof data === 'boolean' && data) {
@@ -180,28 +243,40 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords) => {
180
243
  }
181
244
  }
182
245
  });
183
- return { ...returnedRecords, isMigrated, createdAt };
246
+ return {
247
+ ...returnedRecords,
248
+ isMigrated,
249
+ createdAt,
250
+ graphResolverAddress: resolverResponse.address || resolverAddress,
251
+ };
184
252
  };
185
- const getProfileFromName = async ({ contracts, gqlInstance, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, name, options) => {
186
- const usingOptions = !options || options?.texts === true || options?.coinTypes === true
187
- ? options || { contentHash: true, texts: true, coinTypes: true }
253
+ const getProfileFromName = async ({ contracts, gqlInstance, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, name, options) => {
254
+ const { resolverAddress, ..._options } = options || {};
255
+ const optsLength = Object.keys(_options).length;
256
+ const usingOptions = !optsLength || _options?.texts === true || _options?.coinTypes === true
257
+ ? optsLength
258
+ ? _options
259
+ : { contentHash: true, texts: true, coinTypes: true }
188
260
  : undefined;
189
- const graphResult = await graphFetch({ gqlInstance }, name, usingOptions);
261
+ const graphResult = await graphFetch({ gqlInstance }, name, usingOptions, resolverAddress);
190
262
  if (!graphResult)
191
263
  return;
192
- const { isMigrated, createdAt, ...wantedRecords } = graphResult;
264
+ const { isMigrated, createdAt, graphResolverAddress, ...wantedRecords } = graphResult;
265
+ if (!graphResolverAddress && !options?.resolverAddress)
266
+ return { isMigrated, createdAt, message: "Name doesn't have a resolver" };
193
267
  const result = await getDataForName({
194
268
  contracts,
195
269
  _getAddr,
196
270
  _getContentHash,
197
271
  _getText,
198
272
  resolverMulticallWrapper,
199
- }, name, usingOptions ? wantedRecords : options);
273
+ multicallWrapper,
274
+ }, name, usingOptions ? wantedRecords : options, graphResolverAddress, options?.resolverAddress);
200
275
  if (!result)
201
276
  return { isMigrated, createdAt, message: "Records fetch didn't complete" };
202
277
  return { ...result, isMigrated, createdAt, message: undefined };
203
278
  };
204
- const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, address, options) => {
279
+ const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, address, options) => {
205
280
  let name;
206
281
  try {
207
282
  name = await getName(address);
@@ -220,6 +295,7 @@ const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr
220
295
  _getContentHash,
221
296
  _getText,
222
297
  resolverMulticallWrapper,
298
+ multicallWrapper,
223
299
  }, name.name, options);
224
300
  if (!result || result.message)
225
301
  return;
@@ -230,7 +306,7 @@ const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr
230
306
  message: undefined,
231
307
  };
232
308
  };
233
- async function default_1({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, nameOrAddress, options) {
309
+ async function default_1({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, nameOrAddress, options) {
234
310
  if (options && options.coinTypes && typeof options.coinTypes !== 'boolean') {
235
311
  options.coinTypes = options.coinTypes.map((coin) => {
236
312
  if (!isNaN(parseInt(coin))) {
@@ -254,6 +330,7 @@ async function default_1({ contracts, gqlInstance, getName, _getAddr, _getConten
254
330
  _getContentHash,
255
331
  _getText,
256
332
  resolverMulticallWrapper,
333
+ multicallWrapper,
257
334
  }, nameOrAddress, options);
258
335
  }
259
336
  return getProfileFromName({
@@ -263,6 +340,7 @@ async function default_1({ contracts, gqlInstance, getName, _getAddr, _getConten
263
340
  _getContentHash,
264
341
  _getText,
265
342
  resolverMulticallWrapper,
343
+ multicallWrapper,
266
344
  }, nameOrAddress, options);
267
345
  }
268
346
  exports.default = default_1;
@@ -3,6 +3,7 @@ declare type ProfileOptions = {
3
3
  contentHash?: boolean;
4
4
  texts?: boolean | string[];
5
5
  coinTypes?: boolean | string[];
6
+ resolverAddress?: string;
6
7
  };
7
8
  export default function ({ getProfile }: ENSArgs<'getProfile'>, name: string, options?: ProfileOptions): Promise<{
8
9
  isMigrated: boolean | null;
@@ -4,19 +4,27 @@ exports.getAddr = exports._getAddr = exports.getText = exports._getText = export
4
4
  const address_encoder_1 = require("@ensdomains/address-encoder");
5
5
  const ethers_1 = require("ethers");
6
6
  const contentHash_1 = require("../utils/contentHash");
7
+ const normalise_1 = require("../utils/normalise");
7
8
  exports._getContentHash = {
8
9
  raw: async ({ contracts }, name) => {
9
10
  const publicResolver = await contracts?.getPublicResolver();
10
11
  return {
11
12
  to: '0x0000000000000000000000000000000000000000',
12
13
  data: publicResolver.interface.encodeFunctionData('contenthash', [
13
- ethers_1.ethers.utils.namehash(name),
14
+ (0, normalise_1.namehash)(name),
14
15
  ]),
15
16
  };
16
17
  },
17
18
  decode: async ({ contracts }, data) => {
19
+ let response;
18
20
  const publicResolver = await contracts?.getPublicResolver();
19
- const [response] = publicResolver.interface.decodeFunctionResult('contenthash', data);
21
+ try {
22
+ ;
23
+ [response] = publicResolver.interface.decodeFunctionResult('contenthash', data);
24
+ }
25
+ catch {
26
+ return;
27
+ }
20
28
  if (!response) {
21
29
  return;
22
30
  }
@@ -48,7 +56,7 @@ exports._getText = {
48
56
  return {
49
57
  to: '0x0000000000000000000000000000000000000000',
50
58
  data: publicResolver.interface.encodeFunctionData('text', [
51
- ethers_1.ethers.utils.namehash(name),
59
+ (0, normalise_1.namehash)(name),
52
60
  key,
53
61
  ]),
54
62
  };
@@ -80,10 +88,18 @@ exports._getAddr = {
80
88
  coinType = 60;
81
89
  }
82
90
  const publicResolver = await contracts?.getPublicResolver();
91
+ if (coinType === 60 || coinType === '60') {
92
+ return {
93
+ to: '0x0000000000000000000000000000000000000000',
94
+ data: publicResolver.interface.encodeFunctionData('addr(bytes32)', [
95
+ (0, normalise_1.namehash)(name),
96
+ ]),
97
+ };
98
+ }
83
99
  if (bypassFormat) {
84
100
  return {
85
101
  to: '0x0000000000000000000000000000000000000000',
86
- data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [ethers_1.ethers.utils.namehash(name), coinType]),
102
+ data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [(0, normalise_1.namehash)(name), coinType]),
87
103
  };
88
104
  }
89
105
  const formatter = typeof coinType === 'string' && isNaN(parseInt(coinType))
@@ -94,7 +110,7 @@ exports._getAddr = {
94
110
  }
95
111
  return {
96
112
  to: '0x0000000000000000000000000000000000000000',
97
- data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [ethers_1.ethers.utils.namehash(name), formatter.coinType]),
113
+ data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [(0, normalise_1.namehash)(name), formatter.coinType]),
98
114
  };
99
115
  },
100
116
  decode: async ({ contracts }, data, _name, coinType) => {
@@ -107,7 +123,15 @@ exports._getAddr = {
107
123
  const formatter = typeof coinType === 'string' && isNaN(parseInt(coinType))
108
124
  ? address_encoder_1.formatsByName[coinType]
109
125
  : address_encoder_1.formatsByCoinType[typeof coinType === 'number' ? coinType : parseInt(coinType)];
110
- const [response] = publicResolver.interface.decodeFunctionResult('addr(bytes32,uint256)', data);
126
+ let response;
127
+ if (coinType === 60 || coinType === '60') {
128
+ ;
129
+ [response] = publicResolver.interface.decodeFunctionResult('addr(bytes32)', data);
130
+ }
131
+ else {
132
+ ;
133
+ [response] = publicResolver.interface.decodeFunctionResult('addr(bytes32,uint256)', data);
134
+ }
111
135
  if (!response)
112
136
  return;
113
137
  if (ethers_1.ethers.utils.hexStripZeros(response) === '0x') {
@@ -16,7 +16,7 @@ declare type Params = {
16
16
  pageSize?: number;
17
17
  orderDirection?: 'asc' | 'desc';
18
18
  orderBy?: 'createdAt' | 'labelName';
19
- lastSubnames: Array<any>;
19
+ lastSubnames?: Array<any>;
20
20
  isLargeQuery?: boolean;
21
21
  };
22
22
  declare const getSubnames: (injected: ENSArgs<'gqlInstance'>, functionArgs: Params) => Promise<{
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("ethers/lib/utils");
4
3
  const format_1 = require("../utils/format");
5
4
  const labels_1 = require("../utils/labels");
6
- const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDirection, orderBy, lastSubnames }) => {
5
+ const normalise_1 = require("../utils/normalise");
6
+ const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDirection, orderBy, lastSubnames = [], }) => {
7
7
  const client = gqlInstance.client;
8
8
  let finalQuery = gqlInstance.gql `
9
9
  query getSubnames(
@@ -38,7 +38,7 @@ const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
38
38
  }
39
39
  `;
40
40
  let queryVars = {
41
- id: (0, utils_1.namehash)(name),
41
+ id: (0, normalise_1.namehash)(name),
42
42
  first: pageSize,
43
43
  lastCreatedAt: lastSubnames[lastSubnames.length - 1]?.createdAt,
44
44
  orderBy,
@@ -55,7 +55,7 @@ const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
55
55
  });
56
56
  return {
57
57
  subnames: subdomains,
58
- subnameCount: domain.subdomainCount
58
+ subnameCount: domain.subdomainCount,
59
59
  };
60
60
  };
61
61
  const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDirection, orderBy }) => {
@@ -94,7 +94,7 @@ const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
94
94
  }
95
95
  `;
96
96
  queryVars = {
97
- id: (0, utils_1.namehash)(name),
97
+ id: (0, normalise_1.namehash)(name),
98
98
  orderBy,
99
99
  orderDirection,
100
100
  };
@@ -124,7 +124,7 @@ const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
124
124
  }
125
125
  `;
126
126
  queryVars = {
127
- id: (0, utils_1.namehash)(name),
127
+ id: (0, normalise_1.namehash)(name),
128
128
  first: pageSize,
129
129
  skip: (page || 0) * pageSize,
130
130
  orderBy,
@@ -142,7 +142,7 @@ const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
142
142
  });
143
143
  return {
144
144
  subnames: subdomains,
145
- subnameCount: domain.subdomainCount
145
+ subnameCount: domain.subdomainCount,
146
146
  };
147
147
  };
148
148
  const getSubnames = (injected, functionArgs) => {
@@ -1,4 +1,5 @@
1
1
  import { ENSArgs } from '..';
2
- export default function ({ contracts, provider }: ENSArgs<'contracts' | 'provider'>, name: string, address?: string, resolver?: string, options?: {
3
- addressOrIndex?: string | number;
4
- }): Promise<import("ethers").ContractTransaction | undefined>;
2
+ export default function ({ contracts, signer }: ENSArgs<'contracts' | 'signer'>, name: string, { address, resolver, }?: {
3
+ address?: string;
4
+ resolver?: string;
5
+ }): Promise<import("ethers").PopulatedTransaction>;
@@ -1,17 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- async function default_1({ contracts, provider }, name, address, resolver, options) {
4
- const signerAddress = await provider
5
- ?.getSigner(options?.addressOrIndex)
6
- .getAddress();
7
- if (!signerAddress) {
8
- throw new Error('No signer found');
9
- }
10
- const reverseRegistrar = (await contracts?.getReverseRegistrar())?.connect(provider?.getSigner());
3
+ async function default_1({ contracts, signer }, name, { address, resolver, } = {}) {
4
+ const signerAddress = await signer.getAddress();
5
+ const reverseRegistrar = (await contracts?.getReverseRegistrar())?.connect(signer);
11
6
  if (address) {
12
7
  const publicResolver = await contracts?.getPublicResolver();
13
- return reverseRegistrar?.setNameForAddr(address, signerAddress, resolver || publicResolver.address, name);
8
+ return reverseRegistrar.populateTransaction.setNameForAddr(address, signerAddress, resolver || publicResolver.address, name);
14
9
  }
15
- return reverseRegistrar?.setName(name);
10
+ return reverseRegistrar.populateTransaction.setName(name);
16
11
  }
17
12
  exports.default = default_1;
@@ -0,0 +1,18 @@
1
+ import { ENSArgs } from '..';
2
+ import { RecordInput, RecordTypes } from '../utils/recordHelpers';
3
+ declare type BaseInput = {
4
+ resolverAddress?: string;
5
+ };
6
+ declare type ContentHashInput = {
7
+ record: RecordInput<'contentHash'>;
8
+ type: 'contentHash';
9
+ };
10
+ declare type AddrOrTextInput = {
11
+ record: RecordInput<'addr' | 'text'>;
12
+ type: 'addr' | 'text';
13
+ };
14
+ export default function <T extends RecordTypes>({ contracts, provider, getResolver, signer, }: ENSArgs<'contracts' | 'provider' | 'getResolver' | 'signer'>, name: string, { record, type, resolverAddress, }: BaseInput & (ContentHashInput | AddrOrTextInput)): Promise<{
15
+ to: string;
16
+ data: string;
17
+ }>;
18
+ export {};