@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
@@ -0,0 +1,452 @@
1
+ {
2
+ "abi": [
3
+ {
4
+ "inputs": [
5
+ {
6
+ "components": [
7
+ {
8
+ "internalType": "address",
9
+ "name": "target",
10
+ "type": "address"
11
+ },
12
+ {
13
+ "internalType": "bytes",
14
+ "name": "callData",
15
+ "type": "bytes"
16
+ }
17
+ ],
18
+ "internalType": "struct Multicall3.Call[]",
19
+ "name": "calls",
20
+ "type": "tuple[]"
21
+ }
22
+ ],
23
+ "name": "aggregate",
24
+ "outputs": [
25
+ {
26
+ "internalType": "uint256",
27
+ "name": "blockNumber",
28
+ "type": "uint256"
29
+ },
30
+ {
31
+ "internalType": "bytes[]",
32
+ "name": "returnData",
33
+ "type": "bytes[]"
34
+ }
35
+ ],
36
+ "stateMutability": "payable",
37
+ "type": "function"
38
+ },
39
+ {
40
+ "inputs": [
41
+ {
42
+ "components": [
43
+ {
44
+ "internalType": "address",
45
+ "name": "target",
46
+ "type": "address"
47
+ },
48
+ {
49
+ "internalType": "bool",
50
+ "name": "allowFailure",
51
+ "type": "bool"
52
+ },
53
+ {
54
+ "internalType": "bytes",
55
+ "name": "callData",
56
+ "type": "bytes"
57
+ }
58
+ ],
59
+ "internalType": "struct Multicall3.Call3[]",
60
+ "name": "calls",
61
+ "type": "tuple[]"
62
+ }
63
+ ],
64
+ "name": "aggregate3",
65
+ "outputs": [
66
+ {
67
+ "components": [
68
+ {
69
+ "internalType": "bool",
70
+ "name": "success",
71
+ "type": "bool"
72
+ },
73
+ {
74
+ "internalType": "bytes",
75
+ "name": "returnData",
76
+ "type": "bytes"
77
+ }
78
+ ],
79
+ "internalType": "struct Multicall3.Result[]",
80
+ "name": "returnData",
81
+ "type": "tuple[]"
82
+ }
83
+ ],
84
+ "stateMutability": "payable",
85
+ "type": "function"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "components": [
91
+ {
92
+ "internalType": "address",
93
+ "name": "target",
94
+ "type": "address"
95
+ },
96
+ {
97
+ "internalType": "bool",
98
+ "name": "allowFailure",
99
+ "type": "bool"
100
+ },
101
+ {
102
+ "internalType": "uint256",
103
+ "name": "value",
104
+ "type": "uint256"
105
+ },
106
+ {
107
+ "internalType": "bytes",
108
+ "name": "callData",
109
+ "type": "bytes"
110
+ }
111
+ ],
112
+ "internalType": "struct Multicall3.Call3Value[]",
113
+ "name": "calls",
114
+ "type": "tuple[]"
115
+ }
116
+ ],
117
+ "name": "aggregate3Value",
118
+ "outputs": [
119
+ {
120
+ "components": [
121
+ {
122
+ "internalType": "bool",
123
+ "name": "success",
124
+ "type": "bool"
125
+ },
126
+ {
127
+ "internalType": "bytes",
128
+ "name": "returnData",
129
+ "type": "bytes"
130
+ }
131
+ ],
132
+ "internalType": "struct Multicall3.Result[]",
133
+ "name": "returnData",
134
+ "type": "tuple[]"
135
+ }
136
+ ],
137
+ "stateMutability": "payable",
138
+ "type": "function"
139
+ },
140
+ {
141
+ "inputs": [
142
+ {
143
+ "components": [
144
+ {
145
+ "internalType": "address",
146
+ "name": "target",
147
+ "type": "address"
148
+ },
149
+ {
150
+ "internalType": "bytes",
151
+ "name": "callData",
152
+ "type": "bytes"
153
+ }
154
+ ],
155
+ "internalType": "struct Multicall3.Call[]",
156
+ "name": "calls",
157
+ "type": "tuple[]"
158
+ }
159
+ ],
160
+ "name": "blockAndAggregate",
161
+ "outputs": [
162
+ {
163
+ "internalType": "uint256",
164
+ "name": "blockNumber",
165
+ "type": "uint256"
166
+ },
167
+ {
168
+ "internalType": "bytes32",
169
+ "name": "blockHash",
170
+ "type": "bytes32"
171
+ },
172
+ {
173
+ "components": [
174
+ {
175
+ "internalType": "bool",
176
+ "name": "success",
177
+ "type": "bool"
178
+ },
179
+ {
180
+ "internalType": "bytes",
181
+ "name": "returnData",
182
+ "type": "bytes"
183
+ }
184
+ ],
185
+ "internalType": "struct Multicall3.Result[]",
186
+ "name": "returnData",
187
+ "type": "tuple[]"
188
+ }
189
+ ],
190
+ "stateMutability": "payable",
191
+ "type": "function"
192
+ },
193
+ {
194
+ "inputs": [],
195
+ "name": "getBasefee",
196
+ "outputs": [
197
+ {
198
+ "internalType": "uint256",
199
+ "name": "basefee",
200
+ "type": "uint256"
201
+ }
202
+ ],
203
+ "stateMutability": "view",
204
+ "type": "function"
205
+ },
206
+ {
207
+ "inputs": [
208
+ {
209
+ "internalType": "uint256",
210
+ "name": "blockNumber",
211
+ "type": "uint256"
212
+ }
213
+ ],
214
+ "name": "getBlockHash",
215
+ "outputs": [
216
+ {
217
+ "internalType": "bytes32",
218
+ "name": "blockHash",
219
+ "type": "bytes32"
220
+ }
221
+ ],
222
+ "stateMutability": "view",
223
+ "type": "function"
224
+ },
225
+ {
226
+ "inputs": [],
227
+ "name": "getBlockNumber",
228
+ "outputs": [
229
+ {
230
+ "internalType": "uint256",
231
+ "name": "blockNumber",
232
+ "type": "uint256"
233
+ }
234
+ ],
235
+ "stateMutability": "view",
236
+ "type": "function"
237
+ },
238
+ {
239
+ "inputs": [],
240
+ "name": "getChainId",
241
+ "outputs": [
242
+ {
243
+ "internalType": "uint256",
244
+ "name": "chainid",
245
+ "type": "uint256"
246
+ }
247
+ ],
248
+ "stateMutability": "view",
249
+ "type": "function"
250
+ },
251
+ {
252
+ "inputs": [],
253
+ "name": "getCurrentBlockCoinbase",
254
+ "outputs": [
255
+ {
256
+ "internalType": "address",
257
+ "name": "coinbase",
258
+ "type": "address"
259
+ }
260
+ ],
261
+ "stateMutability": "view",
262
+ "type": "function"
263
+ },
264
+ {
265
+ "inputs": [],
266
+ "name": "getCurrentBlockDifficulty",
267
+ "outputs": [
268
+ {
269
+ "internalType": "uint256",
270
+ "name": "difficulty",
271
+ "type": "uint256"
272
+ }
273
+ ],
274
+ "stateMutability": "view",
275
+ "type": "function"
276
+ },
277
+ {
278
+ "inputs": [],
279
+ "name": "getCurrentBlockGasLimit",
280
+ "outputs": [
281
+ {
282
+ "internalType": "uint256",
283
+ "name": "gaslimit",
284
+ "type": "uint256"
285
+ }
286
+ ],
287
+ "stateMutability": "view",
288
+ "type": "function"
289
+ },
290
+ {
291
+ "inputs": [],
292
+ "name": "getCurrentBlockTimestamp",
293
+ "outputs": [
294
+ {
295
+ "internalType": "uint256",
296
+ "name": "timestamp",
297
+ "type": "uint256"
298
+ }
299
+ ],
300
+ "stateMutability": "view",
301
+ "type": "function"
302
+ },
303
+ {
304
+ "inputs": [
305
+ {
306
+ "internalType": "address",
307
+ "name": "addr",
308
+ "type": "address"
309
+ }
310
+ ],
311
+ "name": "getEthBalance",
312
+ "outputs": [
313
+ {
314
+ "internalType": "uint256",
315
+ "name": "balance",
316
+ "type": "uint256"
317
+ }
318
+ ],
319
+ "stateMutability": "view",
320
+ "type": "function"
321
+ },
322
+ {
323
+ "inputs": [],
324
+ "name": "getLastBlockHash",
325
+ "outputs": [
326
+ {
327
+ "internalType": "bytes32",
328
+ "name": "blockHash",
329
+ "type": "bytes32"
330
+ }
331
+ ],
332
+ "stateMutability": "view",
333
+ "type": "function"
334
+ },
335
+ {
336
+ "inputs": [
337
+ {
338
+ "internalType": "bool",
339
+ "name": "requireSuccess",
340
+ "type": "bool"
341
+ },
342
+ {
343
+ "components": [
344
+ {
345
+ "internalType": "address",
346
+ "name": "target",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "internalType": "bytes",
351
+ "name": "callData",
352
+ "type": "bytes"
353
+ }
354
+ ],
355
+ "internalType": "struct Multicall3.Call[]",
356
+ "name": "calls",
357
+ "type": "tuple[]"
358
+ }
359
+ ],
360
+ "name": "tryAggregate",
361
+ "outputs": [
362
+ {
363
+ "components": [
364
+ {
365
+ "internalType": "bool",
366
+ "name": "success",
367
+ "type": "bool"
368
+ },
369
+ {
370
+ "internalType": "bytes",
371
+ "name": "returnData",
372
+ "type": "bytes"
373
+ }
374
+ ],
375
+ "internalType": "struct Multicall3.Result[]",
376
+ "name": "returnData",
377
+ "type": "tuple[]"
378
+ }
379
+ ],
380
+ "stateMutability": "payable",
381
+ "type": "function"
382
+ },
383
+ {
384
+ "inputs": [
385
+ {
386
+ "internalType": "bool",
387
+ "name": "requireSuccess",
388
+ "type": "bool"
389
+ },
390
+ {
391
+ "components": [
392
+ {
393
+ "internalType": "address",
394
+ "name": "target",
395
+ "type": "address"
396
+ },
397
+ {
398
+ "internalType": "bytes",
399
+ "name": "callData",
400
+ "type": "bytes"
401
+ }
402
+ ],
403
+ "internalType": "struct Multicall3.Call[]",
404
+ "name": "calls",
405
+ "type": "tuple[]"
406
+ }
407
+ ],
408
+ "name": "tryBlockAndAggregate",
409
+ "outputs": [
410
+ {
411
+ "internalType": "uint256",
412
+ "name": "blockNumber",
413
+ "type": "uint256"
414
+ },
415
+ {
416
+ "internalType": "bytes32",
417
+ "name": "blockHash",
418
+ "type": "bytes32"
419
+ },
420
+ {
421
+ "components": [
422
+ {
423
+ "internalType": "bool",
424
+ "name": "success",
425
+ "type": "bool"
426
+ },
427
+ {
428
+ "internalType": "bytes",
429
+ "name": "returnData",
430
+ "type": "bytes"
431
+ }
432
+ ],
433
+ "internalType": "struct Multicall3.Result[]",
434
+ "name": "returnData",
435
+ "type": "tuple[]"
436
+ }
437
+ ],
438
+ "stateMutability": "payable",
439
+ "type": "function"
440
+ }
441
+ ],
442
+ "bytecode": {
443
+ "object": "0x608060405234801561001057600080fd5b50610ee0806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea264697066735822122032840c46a1df3756b0617d292f07888692735eef24ff69bf4fe353d639a3b9fa64736f6c634300080c0033",
444
+ "sourceMap": "502:9107:5:-:0;;;;;;;;;;;;;;;;;;;",
445
+ "linkReferences": {}
446
+ },
447
+ "deployedBytecode": {
448
+ "object": "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea264697066735822122032840c46a1df3756b0617d292f07888692735eef24ff69bf4fe353d639a3b9fa64736f6c634300080c0033",
449
+ "sourceMap": "502:9107:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8696:120;;;;;;;;;;-1:-1:-1;8794:15:5;8696:120;;;160:25:12;;;148:2;133:18;8696:120:5;;;;;;;;5771:1961;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1166:534::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;9060:158::-;;;;;;;;;;-1:-1:-1;9184:12:5;:16;;9174:27;9060:158;;9507:100;;;;;;;;;;-1:-1:-1;9587:13:5;9507:100;;2932:312;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;9364:100::-;;;;;;;;;;-1:-1:-1;9444:13:5;9364:100;;8029:111;;;;;;;;;;-1:-1:-1;8121:12:5;8029:111;;8883:114;;;;;;;;;;-1:-1:-1;8883:114:5;;;;;:::i;:::-;8978:12;;;;8883:114;8356:124;;;;;;;;;;-1:-1:-1;8457:16:5;8356:124;;4039:1494;;;;;;:::i;:::-;;:::i;8530:116::-;;;;;;;;;;-1:-1:-1;8625:14:5;8530:116;;8189;;;;;;;;;;-1:-1:-1;8189:116:5;;8284:14;6463:74:12;;6451:2;6436:18;8189:116:5;6317:226:12;1985:565:5;;;;;;:::i;:::-;;:::i;3626:231::-;;;;;;:::i;:::-;;:::i;7848:134::-;;;;;;;;;;-1:-1:-1;7848:134:5;;;;;:::i;:::-;7953:22;;7848:134;5771:1961;5849:26;5887:22;5936:5;;5971:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;5971:20:5;;;;;;;;;;;;;;;;5958:33;;6001:25;6041:9;6036:1545;6060:6;6056:1;:10;6036:1545;;;6083:20;6106:10;6117:1;6106:13;;;;;;;;:::i;:::-;;;;;;;6083:36;;6141:5;;6147:1;6141:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;6177:11;;;;6389:21;;;;6133:16;;-1:-1:-1;6464:12:5;;;;6133:16;6464:12;:::i;:::-;:17;;6489:3;6494:14;;;;:5;:14;:::i;:::-;6464:45;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6443:17:5;;;;6426:83;;;;;;;;;;6746:16;;;6733:30;6730:49;6720:806;;6914:66;6908:4;6901:80;7054:66;7048:4;7041:80;7206:66;7200:4;7193:80;7402:66;7396:4;7389:80;7503:4;7497;7490:18;6720:806;-1:-1:-1;;7565:3:5;;6036:1545;;;;7680:14;7667:9;:27;7659:66;;;;;;;8565:2:12;7659:66:5;;;8547:21:12;8604:2;8584:18;;;8577:30;8643:28;8623:18;;;8616:56;8689:18;;7659:66:5;;;;;;;;;5877:1855;;;5771:1961;;;;:::o;1166:534::-;1304:12;1253:25;1343:5;;1378:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1365:32;;1407:18;1440:9;1435:259;1459:6;1455:1;:10;1435:259;;;1482:12;1515:5;;1521:1;1515:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1508:15;-1:-1:-1;1564:11:5;;;;1508:15;1564:11;:::i;:::-;:16;;1581:13;;;;:4;:13;:::i;:::-;1564:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1547:10;1558:1;1547:13;;;;;;;;:::i;:::-;;;;;;;;;;1537:58;;-1:-1:-1;1537:58:5;1609:43;;;;;;;9305:2:12;1609:43:5;;;9287:21:12;9344:2;9324:18;;;9317:30;9383:25;9363:18;;;9356:53;9426:18;;1609:43:5;9103:347:12;1609:43:5;-1:-1:-1;1678:3:5;;1435:259;;;;1280:420;;1166:534;;;;;:::o;2932:312::-;3122:12;3156:23;;3070:26;3202:35;3215:14;3231:5;;3202:12;:35::i;:::-;3189:48;;2932:312;;;;;;;:::o;4039:1494::-;4107:26;4162:5;;4197:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;4197:20:5;;;;;;;;;;;;;;;;4184:33;;4227:20;4262:9;4257:1270;4281:6;4277:1;:10;4257:1270;;;4304:20;4327:10;4338:1;4327:13;;;;;;;;:::i;:::-;;;;;;;4304:36;;4362:5;;4368:1;4362:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4354:16;-1:-1:-1;4422:12:5;;;;4354:16;4422:12;:::i;:::-;:17;;4440:14;;;;:5;:14;:::i;:::-;4422:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4401:17:5;;;;4384:71;;;;;;;;;;4692:16;;;4679:30;4676:49;4666:806;;4860:66;4854:4;4847:80;5000:66;4994:4;4987:80;5152:66;5146:4;5139:80;5348:66;5342:4;5335:80;5449:4;5443;5436:18;4666:806;-1:-1:-1;5511:3:5;;4257:1270;;1985:565;2075:26;2130:5;;2165:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2165:20:5;;;;;;;;;;;;;;;;2152:33;;2195:18;2228:9;2223:321;2247:6;2243:1;:10;2223:321;;;2270:20;2293:10;2304:1;2293:13;;;;;;;;:::i;:::-;;;;;;;2270:36;;2327:5;;2333:1;2327:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2320:15;-1:-1:-1;2387:11:5;;;;2320:15;2387:11;:::i;:::-;:16;;2404:13;;;;:4;:13;:::i;:::-;2387:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2366:17:5;;;2349:69;;;;;2432:70;;;;2460:14;;2452:50;;;;;;;9305:2:12;2452:50:5;;;9287:21:12;9344:2;9324:18;;;9317:30;9383:25;9363:18;;;9356:53;9426:18;;2452:50:5;9103:347:12;2452:50:5;-1:-1:-1;2528:3:5;;2223:321;;;;2103:447;;1985:565;;;;;:::o;3626:231::-;3700:19;3721:17;3740:26;3817:33;3838:4;3844:5;;3817:20;:33::i;:::-;3778:72;;;;-1:-1:-1;3778:72:5;;-1:-1:-1;3626:231:5;-1:-1:-1;;;3626:231:5:o;196:386:12:-;278:8;288:6;342:3;335:4;327:6;323:17;319:27;309:55;;360:1;357;350:12;309:55;-1:-1:-1;383:20:12;;426:18;415:30;;412:50;;;458:1;455;448:12;412:50;495:4;487:6;483:17;471:29;;555:3;548:4;538:6;535:1;531:14;523:6;519:27;515:38;512:47;509:67;;;572:1;569;562:12;509:67;196:386;;;;;:::o;587:486::-;703:6;711;764:2;752:9;743:7;739:23;735:32;732:52;;;780:1;777;770:12;732:52;820:9;807:23;853:18;845:6;842:30;839:50;;;885:1;882;875:12;839:50;924:89;1005:7;996:6;985:9;981:22;924:89;:::i;:::-;1032:8;;898:115;;-1:-1:-1;587:486:12;-1:-1:-1;;;;587:486:12:o;1078:530::-;1119:3;1157:5;1151:12;1184:6;1179:3;1172:19;1209:1;1219:162;1233:6;1230:1;1227:13;1219:162;;;1295:4;1351:13;;;1347:22;;1341:29;1323:11;;;1319:20;;1312:59;1248:12;1219:162;;;1399:6;1396:1;1393:13;1390:87;;;1465:1;1458:4;1449:6;1444:3;1440:16;1436:27;1429:38;1390:87;-1:-1:-1;1522:2:12;1510:15;1527:66;1506:88;1497:98;;;;1597:4;1493:109;;1078:530;-1:-1:-1;;1078:530:12:o;1613:869::-;1672:3;1703;1735:5;1729:12;1762:6;1757:3;1750:19;1788:4;1817:2;1812:3;1808:12;1801:19;;1873:2;1863:6;1860:1;1856:14;1849:5;1845:26;1841:35;1910:2;1903:5;1899:14;1931:1;1941:515;1955:6;1952:1;1949:13;1941:515;;;2020:16;;;2038:66;2016:89;2004:102;;2129:13;;2209:9;;2202:17;2195:25;2182:39;;2260:11;;2254:18;2165:4;2292:13;;;2285:25;;;2331:45;2362:13;;;2254:18;2331:45;:::i;:::-;2434:12;;;;2323:53;-1:-1:-1;;;2399:15:12;;;;1977:1;1970:9;1941:515;;;-1:-1:-1;2472:4:12;;1613:869;-1:-1:-1;;;;;;;1613:869:12:o;2487:315::-;2714:2;2703:9;2696:21;2677:4;2734:62;2792:2;2781:9;2777:18;2769:6;2734:62;:::i;:::-;2726:70;2487:315;-1:-1:-1;;;2487:315:12:o;3292:930::-;3480:4;3528:2;3517:9;3513:18;3558:6;3547:9;3540:25;3584:2;3622;3617;3606:9;3602:18;3595:30;3645:6;3680;3674:13;3711:6;3703;3696:22;3749:2;3738:9;3734:18;3727:25;;3811:2;3801:6;3798:1;3794:14;3783:9;3779:30;3775:39;3761:53;;3849:2;3841:6;3837:15;3870:1;3880:313;3894:6;3891:1;3888:13;3880:313;;;3983:66;3971:9;3963:6;3959:22;3955:95;3950:3;3943:108;4074:39;4106:6;4097;4091:13;4074:39;:::i;:::-;4064:49;-1:-1:-1;4171:12:12;;;;4136:15;;;;3916:1;3909:9;3880:313;;;-1:-1:-1;4210:6:12;;3292:930;-1:-1:-1;;;;;;;;3292:930:12:o;4409:641::-;4525:6;4533;4541;4594:2;4582:9;4573:7;4569:23;4565:32;4562:52;;;4610:1;4607;4600:12;4562:52;4649:9;4636:23;4702:5;4695:13;4688:21;4681:5;4678:32;4668:60;;4724:1;4721;4714:12;4668:60;4747:5;-1:-1:-1;4803:2:12;4788:18;;4775:32;4830:18;4819:30;;4816:50;;;4862:1;4859;4852:12;4816:50;4901:89;4982:7;4973:6;4962:9;4958:22;4901:89;:::i;:::-;4409:641;;5009:8;;-1:-1:-1;4875:115:12;;-1:-1:-1;;;;4409:641:12:o;5055:457::-;5338:6;5327:9;5320:25;5381:6;5376:2;5365:9;5361:18;5354:34;5424:2;5419;5408:9;5404:18;5397:30;5301:4;5444:62;5502:2;5491:9;5487:18;5479:6;5444:62;:::i;:::-;5436:70;5055:457;-1:-1:-1;;;;;5055:457:12:o;5517:309::-;5576:6;5629:2;5617:9;5608:7;5604:23;5600:32;5597:52;;;5645:1;5642;5635:12;5597:52;5684:9;5671:23;5734:42;5727:5;5723:54;5716:5;5713:65;5703:93;;5792:1;5789;5782:12;6548:180;6607:6;6660:2;6648:9;6639:7;6635:23;6631:32;6628:52;;;6676:1;6673;6666:12;6628:52;-1:-1:-1;6699:23:12;;6548:180;-1:-1:-1;6548:180:12:o;6733:184::-;6785:77;6782:1;6775:88;6882:4;6879:1;6872:15;6906:4;6903:1;6896:15;6922:184;6974:77;6971:1;6964:88;7071:4;7068:1;7061:15;7095:4;7092:1;7085:15;7111:386;7207:4;7265:11;7252:25;7355:66;7344:8;7328:14;7324:29;7320:102;7300:18;7296:127;7286:155;;7437:1;7434;7427:12;7286:155;7458:33;;;;;7111:386;-1:-1:-1;;7111:386:12:o;7502:580::-;7579:4;7585:6;7645:11;7632:25;7735:66;7724:8;7708:14;7704:29;7700:102;7680:18;7676:127;7666:155;;7817:1;7814;7807:12;7666:155;7844:33;;7896:20;;;-1:-1:-1;7939:18:12;7928:30;;7925:50;;;7971:1;7968;7961:12;7925:50;8004:4;7992:17;;-1:-1:-1;8035:14:12;8031:27;;;8021:38;;8018:58;;;8072:1;8069;8062:12;8087:271;8270:6;8262;8257:3;8244:33;8226:3;8296:16;;8321:13;;;8296:16;8087:271;-1:-1:-1;8087:271:12:o;8718:380::-;8808:4;8866:11;8853:25;8956:66;8945:8;8929:14;8925:29;8921:102;8901:18;8897:127;8887:155;;9038:1;9035;9028:12;9455:381;9546:4;9604:11;9591:25;9694:66;9683:8;9667:14;9663:29;9659:102;9639:18;9635:127;9625:155;;9776:1;9773;9766:12",
450
+ "linkReferences": {}
451
+ }
452
+ }
@@ -0,0 +1,170 @@
1
+ import traverse from 'traverse'
2
+ import { visit, parse } from 'graphql'
3
+
4
+ import { requestMiddleware, responseMiddleware, enter } from './GqlManager'
5
+ import { namehash } from './utils/normalise'
6
+
7
+ describe('GqlManager', () => {
8
+ const queryWithoutId = `
9
+ query getNames($id: ID!, $expiryDate: Int) {
10
+ account(id: $id) {
11
+ registrations(first: 1000, where: { expiryDate_gt: $expiryDate }) {
12
+ registrationDate
13
+ expiryDate
14
+ domain {
15
+ labelName
16
+ labelhash
17
+ name
18
+ isMigrated
19
+ parent {
20
+ name
21
+ }
22
+ }
23
+ }
24
+ domains(first: 1000) {
25
+ labelName
26
+ labelhash
27
+ name
28
+ isMigrated
29
+ parent {
30
+ name
31
+ }
32
+ createdAt
33
+ }
34
+ }
35
+ }
36
+ `
37
+
38
+ const mockRequest = {
39
+ method: 'POST',
40
+ headers: {
41
+ 'Content-Type': 'application/json',
42
+ },
43
+ body: JSON.stringify({ query: queryWithoutId }),
44
+ }
45
+
46
+ const mockResponse = {
47
+ data: {
48
+ account: {
49
+ registrations: [
50
+ {
51
+ registrationDate: '1659245504',
52
+ expiryDate: '1690781504',
53
+ domain: {
54
+ id: '0xb1ccf7f6bb648f39ba48bf80f4a8a4522f474ee7d1edd6ea65f7fa51fe8b1612',
55
+ labelName: 'randydandy',
56
+ labelhash:
57
+ '0x63fd5bfdd0b1eb9f4c33c209b7c3e7dcb87a761d926a65e267f7cb99ee313ddd',
58
+ name: '0xde2551f43e950a2a4d4e6052f25edc450c48a5338faa27f09d1ee99ca9dc04fd',
59
+ isMigrated: true,
60
+ parent: {
61
+ name: '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae',
62
+ invalidName: true,
63
+ },
64
+ invalidName: true,
65
+ },
66
+ },
67
+ {
68
+ registrationDate: '1635284756',
69
+ expiryDate: '1666841708',
70
+ domain: {
71
+ id: '0xde2551f43e950a2a4d4e6052f25edc450c48a5338faa27f09d1ee99ca9dc04fd',
72
+ labelName: 'randydandy',
73
+ labelhash:
74
+ '0x6a877a8d92ad83c8d044d0c5b69aa0da3050f4d653dcc149fca952d6439e4105',
75
+ name: 'randydandy.eth',
76
+ isMigrated: true,
77
+ parent: {
78
+ name: '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae',
79
+ invalidName: true,
80
+ },
81
+ },
82
+ },
83
+ {
84
+ registrationDate: '1659250465',
85
+ expiryDate: '1690786465',
86
+ domain: {
87
+ id: '0xaf119e72f050e5acad6b2d97826a7afb45afe9407376a2ab8240b62173b2d7c2',
88
+ labelName: 'nullbyte',
89
+ labelhash:
90
+ '0xc8985f8323b3dc707003a6ef5b379d9e8a058b6d6bcc2cfb307c61ca36920e27',
91
+ name: '0xb54c7c79c89d571f1fbf4c67f524e336a04441eeee4d76f156e835da99a46ddb',
92
+ isMigrated: true,
93
+ parent: {
94
+ name: '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae',
95
+ invalidName: true,
96
+ },
97
+ invalidName: true,
98
+ },
99
+ },
100
+ ],
101
+ domains: [
102
+ {
103
+ id: '0xaf119e72f050e5acad6b2d97826a7afb45afe9407376a2ab8240b62173b2d7c2',
104
+ labelName: 'nullbyte',
105
+ labelhash:
106
+ '0xc8985f8323b3dc707003a6ef5b379d9e8a058b6d6bcc2cfb307c61ca36920e27',
107
+ name: '0xb54c7c79c89d571f1fbf4c67f524e336a04441eeee4d76f156e835da99a46ddb',
108
+ isMigrated: true,
109
+ parent: {
110
+ name: '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae',
111
+ invalidName: true,
112
+ },
113
+ createdAt: '1659250465',
114
+ invalidName: true,
115
+ },
116
+ {
117
+ id: '0xb1ccf7f6bb648f39ba48bf80f4a8a4522f474ee7d1edd6ea65f7fa51fe8b1612',
118
+ labelName: 'randydandy',
119
+ labelhash:
120
+ '0x63fd5bfdd0b1eb9f4c33c209b7c3e7dcb87a761d926a65e267f7cb99ee313ddd',
121
+ name: '0xde2551f43e950a2a4d4e6052f25edc450c48a5338faa27f09d1ee99ca9dc04fd',
122
+ isMigrated: true,
123
+ parent: {
124
+ name: '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae',
125
+ invalidName: true,
126
+ },
127
+ createdAt: '1659245504',
128
+ invalidName: true,
129
+ },
130
+ {
131
+ id: '0xde2551f43e950a2a4d4e6052f25edc450c48a5338faa27f09d1ee99ca9dc04fd',
132
+ labelName: 'randydandy',
133
+ labelhash:
134
+ '0x6a877a8d92ad83c8d044d0c5b69aa0da3050f4d653dcc149fca952d6439e4105',
135
+ name: 'randydandy.eth',
136
+ isMigrated: true,
137
+ parent: {
138
+ name: '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae',
139
+ invalidName: true,
140
+ },
141
+ createdAt: '1635284756',
142
+ },
143
+ ],
144
+ },
145
+ },
146
+ headers: {
147
+ map: {
148
+ 'content-type': 'application/json',
149
+ },
150
+ },
151
+ status: 200,
152
+ }
153
+
154
+ describe('requestMiddleware', () => {
155
+ it('should add id to a SelectionSet if name is present and id is not', () => {
156
+ const result = requestMiddleware(visit, parse)(mockRequest)
157
+ expect(result.body.includes('id')).toBe(true)
158
+ })
159
+ })
160
+ describe('responseMiddleware', () => {
161
+ it('should replace name with the namehash when there is an invalid name and id combo', () => {
162
+ const result = responseMiddleware(traverse)(mockResponse)
163
+ expect(result.data.account.domains[0].name).toBe(
164
+ namehash(
165
+ '0xb54c7c79c89d571f1fbf4c67f524e336a04441eeee4d76f156e835da99a46ddb',
166
+ ),
167
+ )
168
+ })
169
+ })
170
+ })