@ensdomains/ensjs 3.0.0-beta.1 → 3.0.0-beta.11

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 (534) hide show
  1. package/contracts/OldestResolver.json +170 -0
  2. package/contracts/UniversalResolverv2.json +628 -0
  3. package/dist/cjs/clients/decorators/subgraph.js.map +1 -1
  4. package/dist/cjs/clients/decorators/wallet.js +2 -0
  5. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  6. package/dist/cjs/clients/public.js.map +1 -1
  7. package/dist/cjs/clients/subgraph.js.map +1 -1
  8. package/dist/cjs/contracts/consts.js +53 -2
  9. package/dist/cjs/contracts/consts.js.map +1 -1
  10. package/dist/cjs/contracts/universalResolver.js +46 -1
  11. package/dist/cjs/contracts/universalResolver.js.map +1 -1
  12. package/dist/cjs/dns.js +3 -3
  13. package/dist/cjs/dns.js.map +1 -1
  14. package/dist/cjs/errors/subgraph.js.map +1 -1
  15. package/dist/cjs/errors/utils.js +27 -18
  16. package/dist/cjs/errors/utils.js.map +1 -1
  17. package/dist/cjs/errors/version.js +1 -1
  18. package/dist/cjs/errors/version.js.map +1 -1
  19. package/dist/cjs/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +3 -3
  20. package/dist/cjs/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
  21. package/dist/cjs/functions/dns/importDnsName.js +7 -7
  22. package/dist/cjs/functions/dns/importDnsName.js.map +1 -1
  23. package/dist/cjs/functions/public/_getAbi.js +2 -2
  24. package/dist/cjs/functions/public/_getAbi.js.map +1 -1
  25. package/dist/cjs/functions/public/_getAddr.js +9 -19
  26. package/dist/cjs/functions/public/_getAddr.js.map +1 -1
  27. package/dist/cjs/functions/public/_getContentHash.js +1 -1
  28. package/dist/cjs/functions/public/batch.js.map +1 -1
  29. package/dist/cjs/functions/public/getAbiRecord.js.map +1 -1
  30. package/dist/cjs/functions/public/getAddressRecord.js.map +1 -1
  31. package/dist/cjs/functions/public/getAvailable.js.map +1 -1
  32. package/dist/cjs/functions/public/getContentHashRecord.js.map +1 -1
  33. package/dist/cjs/functions/public/getExpiry.js.map +1 -1
  34. package/dist/cjs/functions/public/getName.js.map +1 -1
  35. package/dist/cjs/functions/public/getOwner.js.map +1 -1
  36. package/dist/cjs/functions/public/getPrice.js.map +1 -1
  37. package/dist/cjs/functions/public/getRecords.js +56 -42
  38. package/dist/cjs/functions/public/getRecords.js.map +1 -1
  39. package/dist/cjs/functions/public/getResolver.js.map +1 -1
  40. package/dist/cjs/functions/public/getSupportedInterfaces.js +1 -1
  41. package/dist/cjs/functions/public/getSupportedInterfaces.js.map +1 -1
  42. package/dist/cjs/functions/public/getTextRecord.js.map +1 -1
  43. package/dist/cjs/functions/public/getWrapperData.js.map +1 -1
  44. package/dist/cjs/functions/public/getWrapperName.js.map +1 -1
  45. package/dist/cjs/functions/public/multicallWrapper.js.map +1 -1
  46. package/dist/cjs/functions/public/universalWrapper.js.map +1 -1
  47. package/dist/cjs/functions/subgraph/client.js.map +1 -1
  48. package/dist/cjs/functions/subgraph/filters.js +3 -0
  49. package/dist/cjs/functions/subgraph/filters.js.map +1 -0
  50. package/dist/cjs/functions/subgraph/getDecodedName.js.map +1 -1
  51. package/dist/cjs/functions/subgraph/getNameHistory.js +4 -3
  52. package/dist/cjs/functions/subgraph/getNameHistory.js.map +1 -1
  53. package/dist/cjs/functions/subgraph/getNamesForAddress.js +155 -190
  54. package/dist/cjs/functions/subgraph/getNamesForAddress.js.map +1 -1
  55. package/dist/cjs/functions/subgraph/getSubgraphRecords.js +34 -26
  56. package/dist/cjs/functions/subgraph/getSubgraphRecords.js.map +1 -1
  57. package/dist/cjs/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
  58. package/dist/cjs/functions/subgraph/getSubnames.js +95 -108
  59. package/dist/cjs/functions/subgraph/getSubnames.js.map +1 -1
  60. package/dist/cjs/functions/subgraph/types.js +3 -0
  61. package/dist/cjs/functions/subgraph/types.js.map +1 -0
  62. package/dist/cjs/functions/subgraph/utils.js.map +1 -1
  63. package/dist/cjs/functions/wallet/clearRecords.js +26 -0
  64. package/dist/cjs/functions/wallet/clearRecords.js.map +1 -0
  65. package/dist/cjs/functions/wallet/commitName.js.map +1 -1
  66. package/dist/cjs/functions/wallet/createSubname.js +1 -1
  67. package/dist/cjs/functions/wallet/createSubname.js.map +1 -1
  68. package/dist/cjs/functions/wallet/deleteSubname.js.map +1 -1
  69. package/dist/cjs/functions/wallet/registerName.js.map +1 -1
  70. package/dist/cjs/functions/wallet/renewNames.js.map +1 -1
  71. package/dist/cjs/functions/wallet/setAbiRecord.js.map +1 -1
  72. package/dist/cjs/functions/wallet/setAddressRecord.js.map +1 -1
  73. package/dist/cjs/functions/wallet/setChildFuses.js +1 -1
  74. package/dist/cjs/functions/wallet/setChildFuses.js.map +1 -1
  75. package/dist/cjs/functions/wallet/setContentHashRecord.js.map +1 -1
  76. package/dist/cjs/functions/wallet/setFuses.js +1 -1
  77. package/dist/cjs/functions/wallet/setFuses.js.map +1 -1
  78. package/dist/cjs/functions/wallet/setPrimaryName.js.map +1 -1
  79. package/dist/cjs/functions/wallet/setRecords.js.map +1 -1
  80. package/dist/cjs/functions/wallet/setResolver.js.map +1 -1
  81. package/dist/cjs/functions/wallet/setTextRecord.js.map +1 -1
  82. package/dist/cjs/functions/wallet/transferName.js.map +1 -1
  83. package/dist/cjs/functions/wallet/unwrapName.js.map +1 -1
  84. package/dist/cjs/functions/wallet/wrapName.js +3 -1
  85. package/dist/cjs/functions/wallet/wrapName.js.map +1 -1
  86. package/dist/cjs/index.js +1 -2
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/subgraph.js +4 -1
  89. package/dist/cjs/subgraph.js.map +1 -1
  90. package/dist/cjs/utils/contentHash.js +60 -131
  91. package/dist/cjs/utils/contentHash.js.map +1 -1
  92. package/dist/cjs/utils/encoders/encodeAbi.js +33 -3
  93. package/dist/cjs/utils/encoders/encodeAbi.js.map +1 -1
  94. package/dist/cjs/utils/encoders/encodeClearRecords.js +12 -0
  95. package/dist/cjs/utils/encoders/encodeClearRecords.js.map +1 -0
  96. package/dist/cjs/utils/encoders/encodeSetAddr.js +5 -16
  97. package/dist/cjs/utils/encoders/encodeSetAddr.js.map +1 -1
  98. package/dist/cjs/utils/encoders/encodeSetContentHash.js +1 -4
  99. package/dist/cjs/utils/encoders/encodeSetContentHash.js.map +1 -1
  100. package/dist/cjs/utils/format.js +1 -5
  101. package/dist/cjs/utils/format.js.map +1 -1
  102. package/dist/cjs/utils/fuses.js +184 -200
  103. package/dist/cjs/utils/fuses.js.map +1 -1
  104. package/dist/cjs/utils/generateRecordCallArray.js +6 -10
  105. package/dist/cjs/utils/generateRecordCallArray.js.map +1 -1
  106. package/dist/cjs/utils/getRevertErrorData.js +4 -1
  107. package/dist/cjs/utils/getRevertErrorData.js.map +1 -1
  108. package/dist/cjs/utils/index.js +31 -7
  109. package/dist/cjs/utils/index.js.map +1 -1
  110. package/dist/cjs/utils/normaliseCoinId.js +35 -0
  111. package/dist/cjs/utils/normaliseCoinId.js.map +1 -0
  112. package/dist/cjs/utils/registerHelpers.js +3 -1
  113. package/dist/cjs/utils/registerHelpers.js.map +1 -1
  114. package/dist/cjs/wallet.js +3 -1
  115. package/dist/cjs/wallet.js.map +1 -1
  116. package/dist/esm/clients/decorators/subgraph.js.map +1 -1
  117. package/dist/esm/clients/decorators/wallet.js +2 -0
  118. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  119. package/dist/esm/clients/public.js.map +1 -1
  120. package/dist/esm/clients/subgraph.js.map +1 -1
  121. package/dist/esm/contracts/consts.js +53 -2
  122. package/dist/esm/contracts/consts.js.map +1 -1
  123. package/dist/esm/contracts/universalResolver.js +46 -1
  124. package/dist/esm/contracts/universalResolver.js.map +1 -1
  125. package/dist/esm/dns.js +1 -1
  126. package/dist/esm/dns.js.map +1 -1
  127. package/dist/esm/errors/subgraph.js.map +1 -1
  128. package/dist/esm/errors/utils.js +24 -16
  129. package/dist/esm/errors/utils.js.map +1 -1
  130. package/dist/esm/errors/version.js +1 -1
  131. package/dist/esm/errors/version.js.map +1 -1
  132. package/dist/esm/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +10 -10
  133. package/dist/esm/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
  134. package/dist/esm/functions/dns/getDnsOwner.js +1 -1
  135. package/dist/esm/functions/dns/importDnsName.js +13 -12
  136. package/dist/esm/functions/dns/importDnsName.js.map +1 -1
  137. package/dist/esm/functions/public/_getAbi.js +2 -2
  138. package/dist/esm/functions/public/_getAbi.js.map +1 -1
  139. package/dist/esm/functions/public/_getAddr.js +10 -20
  140. package/dist/esm/functions/public/_getAddr.js.map +1 -1
  141. package/dist/esm/functions/public/_getContentHash.js +2 -2
  142. package/dist/esm/functions/public/batch.js +2 -1
  143. package/dist/esm/functions/public/batch.js.map +1 -1
  144. package/dist/esm/functions/public/getAbiRecord.js +2 -1
  145. package/dist/esm/functions/public/getAbiRecord.js.map +1 -1
  146. package/dist/esm/functions/public/getAddressRecord.js +2 -1
  147. package/dist/esm/functions/public/getAddressRecord.js.map +1 -1
  148. package/dist/esm/functions/public/getAvailable.js +2 -1
  149. package/dist/esm/functions/public/getAvailable.js.map +1 -1
  150. package/dist/esm/functions/public/getContentHashRecord.js +2 -1
  151. package/dist/esm/functions/public/getContentHashRecord.js.map +1 -1
  152. package/dist/esm/functions/public/getExpiry.js +2 -1
  153. package/dist/esm/functions/public/getExpiry.js.map +1 -1
  154. package/dist/esm/functions/public/getName.js +2 -1
  155. package/dist/esm/functions/public/getName.js.map +1 -1
  156. package/dist/esm/functions/public/getOwner.js +3 -2
  157. package/dist/esm/functions/public/getOwner.js.map +1 -1
  158. package/dist/esm/functions/public/getPrice.js +3 -2
  159. package/dist/esm/functions/public/getPrice.js.map +1 -1
  160. package/dist/esm/functions/public/getRecords.js +59 -48
  161. package/dist/esm/functions/public/getRecords.js.map +1 -1
  162. package/dist/esm/functions/public/getResolver.js +2 -1
  163. package/dist/esm/functions/public/getResolver.js.map +1 -1
  164. package/dist/esm/functions/public/getSupportedInterfaces.js +24 -2
  165. package/dist/esm/functions/public/getSupportedInterfaces.js.map +1 -1
  166. package/dist/esm/functions/public/getTextRecord.js +2 -1
  167. package/dist/esm/functions/public/getTextRecord.js.map +1 -1
  168. package/dist/esm/functions/public/getWrapperData.js +2 -1
  169. package/dist/esm/functions/public/getWrapperData.js.map +1 -1
  170. package/dist/esm/functions/public/getWrapperName.js +2 -1
  171. package/dist/esm/functions/public/getWrapperName.js.map +1 -1
  172. package/dist/esm/functions/public/multicallWrapper.js.map +1 -1
  173. package/dist/esm/functions/public/universalWrapper.js.map +1 -1
  174. package/dist/esm/functions/subgraph/client.js.map +1 -1
  175. package/dist/esm/functions/subgraph/filters.js +2 -0
  176. package/dist/esm/functions/subgraph/filters.js.map +1 -0
  177. package/dist/esm/functions/subgraph/getDecodedName.js +2 -1
  178. package/dist/esm/functions/subgraph/getDecodedName.js.map +1 -1
  179. package/dist/esm/functions/subgraph/getNameHistory.js +8 -6
  180. package/dist/esm/functions/subgraph/getNameHistory.js.map +1 -1
  181. package/dist/esm/functions/subgraph/getNamesForAddress.js +163 -192
  182. package/dist/esm/functions/subgraph/getNamesForAddress.js.map +1 -1
  183. package/dist/esm/functions/subgraph/getSubgraphRecords.js +36 -27
  184. package/dist/esm/functions/subgraph/getSubgraphRecords.js.map +1 -1
  185. package/dist/esm/functions/subgraph/getSubgraphRegistrant.js +2 -1
  186. package/dist/esm/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
  187. package/dist/esm/functions/subgraph/getSubnames.js +103 -112
  188. package/dist/esm/functions/subgraph/getSubnames.js.map +1 -1
  189. package/dist/esm/functions/subgraph/types.js +2 -0
  190. package/dist/esm/functions/subgraph/types.js.map +1 -0
  191. package/dist/esm/functions/subgraph/utils.js.map +1 -1
  192. package/dist/esm/functions/wallet/clearRecords.js +44 -0
  193. package/dist/esm/functions/wallet/clearRecords.js.map +1 -0
  194. package/dist/esm/functions/wallet/commitName.js +3 -1
  195. package/dist/esm/functions/wallet/commitName.js.map +1 -1
  196. package/dist/esm/functions/wallet/createSubname.js +3 -2
  197. package/dist/esm/functions/wallet/createSubname.js.map +1 -1
  198. package/dist/esm/functions/wallet/deleteSubname.js +2 -1
  199. package/dist/esm/functions/wallet/deleteSubname.js.map +1 -1
  200. package/dist/esm/functions/wallet/registerName.js +4 -1
  201. package/dist/esm/functions/wallet/registerName.js.map +1 -1
  202. package/dist/esm/functions/wallet/renewNames.js +3 -1
  203. package/dist/esm/functions/wallet/renewNames.js.map +1 -1
  204. package/dist/esm/functions/wallet/setAbiRecord.js +3 -1
  205. package/dist/esm/functions/wallet/setAbiRecord.js.map +1 -1
  206. package/dist/esm/functions/wallet/setAddressRecord.js +2 -1
  207. package/dist/esm/functions/wallet/setAddressRecord.js.map +1 -1
  208. package/dist/esm/functions/wallet/setChildFuses.js +3 -2
  209. package/dist/esm/functions/wallet/setChildFuses.js.map +1 -1
  210. package/dist/esm/functions/wallet/setContentHashRecord.js +2 -1
  211. package/dist/esm/functions/wallet/setContentHashRecord.js.map +1 -1
  212. package/dist/esm/functions/wallet/setFuses.js +4 -3
  213. package/dist/esm/functions/wallet/setFuses.js.map +1 -1
  214. package/dist/esm/functions/wallet/setPrimaryName.js +2 -1
  215. package/dist/esm/functions/wallet/setPrimaryName.js.map +1 -1
  216. package/dist/esm/functions/wallet/setRecords.js +2 -1
  217. package/dist/esm/functions/wallet/setRecords.js.map +1 -1
  218. package/dist/esm/functions/wallet/setResolver.js +2 -1
  219. package/dist/esm/functions/wallet/setResolver.js.map +1 -1
  220. package/dist/esm/functions/wallet/setTextRecord.js +2 -1
  221. package/dist/esm/functions/wallet/setTextRecord.js.map +1 -1
  222. package/dist/esm/functions/wallet/transferName.js +2 -1
  223. package/dist/esm/functions/wallet/transferName.js.map +1 -1
  224. package/dist/esm/functions/wallet/unwrapName.js +2 -1
  225. package/dist/esm/functions/wallet/unwrapName.js.map +1 -1
  226. package/dist/esm/functions/wallet/wrapName.js +6 -3
  227. package/dist/esm/functions/wallet/wrapName.js.map +1 -1
  228. package/dist/esm/index.js +1 -1
  229. package/dist/esm/index.js.map +1 -1
  230. package/dist/esm/subgraph.js +1 -0
  231. package/dist/esm/subgraph.js.map +1 -1
  232. package/dist/esm/utils/contentHash.js +56 -128
  233. package/dist/esm/utils/contentHash.js.map +1 -1
  234. package/dist/esm/utils/encoders/encodeAbi.js +30 -2
  235. package/dist/esm/utils/encoders/encodeAbi.js.map +1 -1
  236. package/dist/esm/utils/encoders/encodeClearRecords.js +8 -0
  237. package/dist/esm/utils/encoders/encodeClearRecords.js.map +1 -0
  238. package/dist/esm/utils/encoders/encodeSetAddr.js +5 -16
  239. package/dist/esm/utils/encoders/encodeSetAddr.js.map +1 -1
  240. package/dist/esm/utils/encoders/encodeSetContentHash.js +2 -5
  241. package/dist/esm/utils/encoders/encodeSetContentHash.js.map +1 -1
  242. package/dist/esm/utils/format.js +0 -2
  243. package/dist/esm/utils/format.js.map +1 -1
  244. package/dist/esm/utils/fuses.js +183 -201
  245. package/dist/esm/utils/fuses.js.map +1 -1
  246. package/dist/esm/utils/generateRecordCallArray.js +7 -10
  247. package/dist/esm/utils/generateRecordCallArray.js.map +1 -1
  248. package/dist/esm/utils/getRevertErrorData.js +4 -1
  249. package/dist/esm/utils/getRevertErrorData.js.map +1 -1
  250. package/dist/esm/utils/index.js +5 -3
  251. package/dist/esm/utils/index.js.map +1 -1
  252. package/dist/esm/utils/normaliseCoinId.js +30 -0
  253. package/dist/esm/utils/normaliseCoinId.js.map +1 -0
  254. package/dist/esm/utils/registerHelpers.js +4 -2
  255. package/dist/esm/utils/registerHelpers.js.map +1 -1
  256. package/dist/esm/wallet.js +1 -0
  257. package/dist/esm/wallet.js.map +1 -1
  258. package/dist/types/clients/decorators/public.d.ts +1 -519
  259. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  260. package/dist/types/clients/decorators/subgraph.d.ts +2 -520
  261. package/dist/types/clients/decorators/subgraph.d.ts.map +1 -1
  262. package/dist/types/clients/decorators/wallet.d.ts +66 -47
  263. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  264. package/dist/types/clients/public.d.ts +24 -265
  265. package/dist/types/clients/public.d.ts.map +1 -1
  266. package/dist/types/clients/subgraph.d.ts +19 -260
  267. package/dist/types/clients/subgraph.d.ts.map +1 -1
  268. package/dist/types/clients/wallet.d.ts +60 -92
  269. package/dist/types/clients/wallet.d.ts.map +1 -1
  270. package/dist/types/contracts/consts.d.ts +52 -3
  271. package/dist/types/contracts/consts.d.ts.map +1 -1
  272. package/dist/types/contracts/universalResolver.d.ts +133 -1
  273. package/dist/types/contracts/universalResolver.d.ts.map +1 -1
  274. package/dist/types/dns.d.ts +2 -2
  275. package/dist/types/dns.d.ts.map +1 -1
  276. package/dist/types/errors/subgraph.d.ts +4 -4
  277. package/dist/types/errors/subgraph.d.ts.map +1 -1
  278. package/dist/types/errors/utils.d.ts +16 -13
  279. package/dist/types/errors/utils.d.ts.map +1 -1
  280. package/dist/types/errors/version.d.ts +1 -1
  281. package/dist/types/errors/version.d.ts.map +1 -1
  282. package/dist/types/functions/dns/getDnsImportData.d.ts +39 -0
  283. package/dist/types/functions/dns/{prepareDnsImport.d.ts.map → getDnsImportData.d.ts.map} +1 -1
  284. package/dist/types/functions/dns/getDnsOwner.d.ts +1 -1
  285. package/dist/types/functions/dns/importDnsName.d.ts +88 -102
  286. package/dist/types/functions/dns/importDnsName.d.ts.map +1 -1
  287. package/dist/types/functions/public/_getAddr.d.ts.map +1 -1
  288. package/dist/types/functions/public/batch.d.ts +2 -1
  289. package/dist/types/functions/public/batch.d.ts.map +1 -1
  290. package/dist/types/functions/public/getAbiRecord.d.ts +2 -1
  291. package/dist/types/functions/public/getAbiRecord.d.ts.map +1 -1
  292. package/dist/types/functions/public/getAddressRecord.d.ts +2 -1
  293. package/dist/types/functions/public/getAddressRecord.d.ts.map +1 -1
  294. package/dist/types/functions/public/getAvailable.d.ts +2 -1
  295. package/dist/types/functions/public/getAvailable.d.ts.map +1 -1
  296. package/dist/types/functions/public/getContentHashRecord.d.ts +2 -1
  297. package/dist/types/functions/public/getContentHashRecord.d.ts.map +1 -1
  298. package/dist/types/functions/public/getExpiry.d.ts +2 -1
  299. package/dist/types/functions/public/getExpiry.d.ts.map +1 -1
  300. package/dist/types/functions/public/getName.d.ts +2 -1
  301. package/dist/types/functions/public/getName.d.ts.map +1 -1
  302. package/dist/types/functions/public/getOwner.d.ts +19 -9
  303. package/dist/types/functions/public/getOwner.d.ts.map +1 -1
  304. package/dist/types/functions/public/getPrice.d.ts +3 -2
  305. package/dist/types/functions/public/getPrice.d.ts.map +1 -1
  306. package/dist/types/functions/public/getRecords.d.ts +3 -2
  307. package/dist/types/functions/public/getRecords.d.ts.map +1 -1
  308. package/dist/types/functions/public/getResolver.d.ts +2 -1
  309. package/dist/types/functions/public/getResolver.d.ts.map +1 -1
  310. package/dist/types/functions/public/getSupportedInterfaces.d.ts +41 -4
  311. package/dist/types/functions/public/getSupportedInterfaces.d.ts.map +1 -1
  312. package/dist/types/functions/public/getTextRecord.d.ts +2 -1
  313. package/dist/types/functions/public/getTextRecord.d.ts.map +1 -1
  314. package/dist/types/functions/public/getWrapperData.d.ts +4 -3
  315. package/dist/types/functions/public/getWrapperData.d.ts.map +1 -1
  316. package/dist/types/functions/public/getWrapperName.d.ts +2 -1
  317. package/dist/types/functions/public/getWrapperName.d.ts.map +1 -1
  318. package/dist/types/functions/subgraph/client.d.ts +2 -2
  319. package/dist/types/functions/subgraph/client.d.ts.map +1 -1
  320. package/dist/types/functions/subgraph/filters.d.ts +693 -0
  321. package/dist/types/functions/subgraph/filters.d.ts.map +1 -0
  322. package/dist/types/functions/subgraph/getDecodedName.d.ts +2 -1
  323. package/dist/types/functions/subgraph/getDecodedName.d.ts.map +1 -1
  324. package/dist/types/functions/subgraph/getNameHistory.d.ts +2 -1
  325. package/dist/types/functions/subgraph/getNameHistory.d.ts.map +1 -1
  326. package/dist/types/functions/subgraph/getNamesForAddress.d.ts +7 -2
  327. package/dist/types/functions/subgraph/getNamesForAddress.d.ts.map +1 -1
  328. package/dist/types/functions/subgraph/getSubgraphRecords.d.ts +2 -1
  329. package/dist/types/functions/subgraph/getSubgraphRecords.d.ts.map +1 -1
  330. package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts +2 -1
  331. package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts.map +1 -1
  332. package/dist/types/functions/subgraph/getSubnames.d.ts +5 -2
  333. package/dist/types/functions/subgraph/getSubnames.d.ts.map +1 -1
  334. package/dist/types/functions/subgraph/types.d.ts +13 -0
  335. package/dist/types/functions/subgraph/types.d.ts.map +1 -0
  336. package/dist/types/functions/subgraph/utils.d.ts +2 -2
  337. package/dist/types/functions/subgraph/utils.d.ts.map +1 -1
  338. package/dist/types/functions/wallet/clearRecords.d.ts +555 -0
  339. package/dist/types/functions/wallet/clearRecords.d.ts.map +1 -0
  340. package/dist/types/functions/wallet/commitName.d.ts +80 -93
  341. package/dist/types/functions/wallet/commitName.d.ts.map +1 -1
  342. package/dist/types/functions/wallet/createSubname.d.ts +82 -96
  343. package/dist/types/functions/wallet/createSubname.d.ts.map +1 -1
  344. package/dist/types/functions/wallet/deleteSubname.d.ts +79 -93
  345. package/dist/types/functions/wallet/deleteSubname.d.ts.map +1 -1
  346. package/dist/types/functions/wallet/registerName.d.ts +80 -89
  347. package/dist/types/functions/wallet/registerName.d.ts.map +1 -1
  348. package/dist/types/functions/wallet/renewNames.d.ts +79 -89
  349. package/dist/types/functions/wallet/renewNames.d.ts.map +1 -1
  350. package/dist/types/functions/wallet/setAbiRecord.d.ts +80 -93
  351. package/dist/types/functions/wallet/setAbiRecord.d.ts.map +1 -1
  352. package/dist/types/functions/wallet/setAddressRecord.d.ts +79 -93
  353. package/dist/types/functions/wallet/setAddressRecord.d.ts.map +1 -1
  354. package/dist/types/functions/wallet/setChildFuses.d.ts +81 -95
  355. package/dist/types/functions/wallet/setChildFuses.d.ts.map +1 -1
  356. package/dist/types/functions/wallet/setContentHashRecord.d.ts +79 -93
  357. package/dist/types/functions/wallet/setContentHashRecord.d.ts.map +1 -1
  358. package/dist/types/functions/wallet/setFuses.d.ts +81 -95
  359. package/dist/types/functions/wallet/setFuses.d.ts.map +1 -1
  360. package/dist/types/functions/wallet/setPrimaryName.d.ts +79 -93
  361. package/dist/types/functions/wallet/setPrimaryName.d.ts.map +1 -1
  362. package/dist/types/functions/wallet/setRecords.d.ts +79 -93
  363. package/dist/types/functions/wallet/setRecords.d.ts.map +1 -1
  364. package/dist/types/functions/wallet/setResolver.d.ts +79 -93
  365. package/dist/types/functions/wallet/setResolver.d.ts.map +1 -1
  366. package/dist/types/functions/wallet/setTextRecord.d.ts +79 -93
  367. package/dist/types/functions/wallet/setTextRecord.d.ts.map +1 -1
  368. package/dist/types/functions/wallet/transferName.d.ts +80 -94
  369. package/dist/types/functions/wallet/transferName.d.ts.map +1 -1
  370. package/dist/types/functions/wallet/unwrapName.d.ts +79 -93
  371. package/dist/types/functions/wallet/unwrapName.d.ts.map +1 -1
  372. package/dist/types/functions/wallet/wrapName.d.ts +81 -95
  373. package/dist/types/functions/wallet/wrapName.d.ts.map +1 -1
  374. package/dist/types/index.d.ts +1 -1
  375. package/dist/types/index.d.ts.map +1 -1
  376. package/dist/types/subgraph.d.ts +1 -0
  377. package/dist/types/subgraph.d.ts.map +1 -1
  378. package/dist/types/types.d.ts +3 -1
  379. package/dist/types/types.d.ts.map +1 -1
  380. package/dist/types/utils/contentHash.d.ts +10 -11
  381. package/dist/types/utils/contentHash.d.ts.map +1 -1
  382. package/dist/types/utils/encoders/encodeAbi.d.ts +8 -5
  383. package/dist/types/utils/encoders/encodeAbi.d.ts.map +1 -1
  384. package/dist/types/utils/encoders/encodeClearRecords.d.ts +3 -0
  385. package/dist/types/utils/encoders/encodeClearRecords.d.ts.map +1 -0
  386. package/dist/types/utils/encoders/encodeSetAddr.d.ts.map +1 -1
  387. package/dist/types/utils/encoders/encodeSetContentHash.d.ts.map +1 -1
  388. package/dist/types/utils/format.d.ts +0 -2
  389. package/dist/types/utils/format.d.ts.map +1 -1
  390. package/dist/types/utils/fuses.d.ts +164 -125
  391. package/dist/types/utils/fuses.d.ts.map +1 -1
  392. package/dist/types/utils/generateRecordCallArray.d.ts +5 -5
  393. package/dist/types/utils/generateRecordCallArray.d.ts.map +1 -1
  394. package/dist/types/utils/getRevertErrorData.d.ts.map +1 -1
  395. package/dist/types/utils/index.d.ts +5 -3
  396. package/dist/types/utils/index.d.ts.map +1 -1
  397. package/dist/types/utils/normaliseCoinId.d.ts +10 -0
  398. package/dist/types/utils/normaliseCoinId.d.ts.map +1 -0
  399. package/dist/types/utils/registerHelpers.d.ts +2 -2
  400. package/dist/types/utils/registerHelpers.d.ts.map +1 -1
  401. package/dist/types/wallet.d.ts +18 -17
  402. package/dist/types/wallet.d.ts.map +1 -1
  403. package/package.json +9 -9
  404. package/src/clients/decorators/subgraph.ts +1 -0
  405. package/src/clients/decorators/wallet.ts +41 -3
  406. package/src/clients/public.ts +3 -2
  407. package/src/clients/subgraph.ts +3 -2
  408. package/src/clients/wallet.ts +1 -1
  409. package/src/contracts/consts.ts +58 -13
  410. package/src/contracts/universalResolver.ts +46 -1
  411. package/src/dns.ts +7 -5
  412. package/src/errors/subgraph.ts +4 -4
  413. package/src/errors/utils.ts +29 -18
  414. package/src/errors/version.ts +1 -1
  415. package/src/functions/dns/{prepareDnsImport.ts → getDnsImportData.ts} +13 -13
  416. package/src/functions/dns/getDnsOwner.ts +1 -1
  417. package/src/functions/dns/importDnsName.ts +21 -15
  418. package/src/functions/public/_getAbi.ts +2 -2
  419. package/src/functions/public/_getAddr.ts +16 -23
  420. package/src/functions/public/_getContentHash.ts +2 -2
  421. package/src/functions/public/batch.ts +2 -1
  422. package/src/functions/public/getAbiRecord.ts +2 -1
  423. package/src/functions/public/getAddressRecord.ts +2 -1
  424. package/src/functions/public/getAvailable.ts +2 -1
  425. package/src/functions/public/getContentHashRecord.ts +2 -1
  426. package/src/functions/public/getExpiry.ts +2 -1
  427. package/src/functions/public/getName.ts +3 -2
  428. package/src/functions/public/getOwner.ts +54 -33
  429. package/src/functions/public/getPrice.ts +3 -2
  430. package/src/functions/public/getRecords.ts +130 -114
  431. package/src/functions/public/getResolver.ts +3 -2
  432. package/src/functions/public/getSupportedInterfaces.ts +70 -10
  433. package/src/functions/public/getTextRecord.ts +2 -1
  434. package/src/functions/public/getWrapperData.ts +5 -4
  435. package/src/functions/public/getWrapperName.ts +3 -2
  436. package/src/functions/public/multicallWrapper.ts +1 -1
  437. package/src/functions/public/universalWrapper.ts +1 -1
  438. package/src/functions/subgraph/client.ts +2 -2
  439. package/src/functions/subgraph/filters.ts +702 -0
  440. package/src/functions/subgraph/getDecodedName.ts +2 -1
  441. package/src/functions/subgraph/getNameHistory.ts +8 -6
  442. package/src/functions/subgraph/getNamesForAddress.ts +199 -195
  443. package/src/functions/subgraph/getSubgraphRecords.ts +65 -33
  444. package/src/functions/subgraph/getSubgraphRegistrant.ts +2 -1
  445. package/src/functions/subgraph/getSubnames.ts +123 -114
  446. package/src/functions/subgraph/types.ts +13 -0
  447. package/src/functions/subgraph/utils.ts +2 -2
  448. package/src/functions/wallet/clearRecords.ts +97 -0
  449. package/src/functions/wallet/commitName.ts +3 -1
  450. package/src/functions/wallet/createSubname.ts +6 -5
  451. package/src/functions/wallet/deleteSubname.ts +2 -1
  452. package/src/functions/wallet/registerName.ts +4 -1
  453. package/src/functions/wallet/renewNames.ts +3 -1
  454. package/src/functions/wallet/setAbiRecord.ts +3 -1
  455. package/src/functions/wallet/setAddressRecord.ts +2 -1
  456. package/src/functions/wallet/setChildFuses.ts +5 -4
  457. package/src/functions/wallet/setContentHashRecord.ts +2 -1
  458. package/src/functions/wallet/setFuses.ts +8 -4
  459. package/src/functions/wallet/setPrimaryName.ts +2 -1
  460. package/src/functions/wallet/setRecords.ts +2 -1
  461. package/src/functions/wallet/setResolver.ts +2 -1
  462. package/src/functions/wallet/setTextRecord.ts +2 -1
  463. package/src/functions/wallet/transferName.ts +3 -2
  464. package/src/functions/wallet/unwrapName.ts +2 -1
  465. package/src/functions/wallet/wrapName.ts +10 -4
  466. package/src/index.ts +0 -1
  467. package/src/subgraph.ts +5 -0
  468. package/src/types.ts +6 -3
  469. package/src/utils/contentHash.ts +65 -113
  470. package/src/utils/encoders/encodeAbi.ts +37 -8
  471. package/src/utils/encoders/encodeClearRecords.ts +9 -0
  472. package/src/utils/encoders/encodeSetAddr.ts +5 -16
  473. package/src/utils/encoders/encodeSetContentHash.ts +2 -4
  474. package/src/utils/format.ts +0 -6
  475. package/src/utils/fuses.ts +312 -308
  476. package/src/utils/generateRecordCallArray.ts +10 -14
  477. package/src/utils/getRevertErrorData.ts +3 -1
  478. package/src/utils/index.ts +37 -5
  479. package/src/utils/normaliseCoinId.ts +36 -0
  480. package/src/utils/registerHelpers.ts +5 -3
  481. package/src/wallet.ts +41 -0
  482. package/dist/types/functions/dns/prepareDnsImport.d.ts +0 -39
  483. package/src/@types/@ensdomains/content-hash.d.ts +0 -1
  484. package/src/functions/dns/getDnsOwner.test.ts +0 -195
  485. package/src/functions/dns/importDnsName.test.ts +0 -117
  486. package/src/functions/dns/prepareDnsImport.test.ts +0 -115
  487. package/src/functions/public/batch.test.ts +0 -67
  488. package/src/functions/public/ccip.test.ts +0 -78
  489. package/src/functions/public/getAbiRecord.test.ts +0 -174
  490. package/src/functions/public/getAddressRecord.test.ts +0 -83
  491. package/src/functions/public/getAvailable.test.ts +0 -17
  492. package/src/functions/public/getContentHashRecord.test.ts +0 -28
  493. package/src/functions/public/getExpiry.test.ts +0 -48
  494. package/src/functions/public/getName.test.ts +0 -66
  495. package/src/functions/public/getOwner.test.ts +0 -87
  496. package/src/functions/public/getPrice.test.ts +0 -45
  497. package/src/functions/public/getRecords.test.ts +0 -49
  498. package/src/functions/public/getResolver.test.ts +0 -12
  499. package/src/functions/public/getTextRecord.test.ts +0 -20
  500. package/src/functions/public/getWrapperData.test.ts +0 -79
  501. package/src/functions/public/getWrapperName.test.ts +0 -19
  502. package/src/functions/subgraph/client.test.ts +0 -170
  503. package/src/functions/subgraph/getDecodedName.test.ts +0 -31
  504. package/src/functions/subgraph/getNameHistory.test.ts +0 -39
  505. package/src/functions/subgraph/getNamesForAddress.test.ts +0 -244
  506. package/src/functions/subgraph/getSubgraphRecords.test.ts +0 -74
  507. package/src/functions/subgraph/getSubgraphRegistrant.test.ts +0 -34
  508. package/src/functions/subgraph/getSubnames.test.ts +0 -202
  509. package/src/functions/wallet/commitName.test.ts +0 -58
  510. package/src/functions/wallet/createSubname.test.ts +0 -73
  511. package/src/functions/wallet/deleteSubname.test.ts +0 -150
  512. package/src/functions/wallet/registerName.test.ts +0 -81
  513. package/src/functions/wallet/renewNames.test.ts +0 -92
  514. package/src/functions/wallet/setAbiRecord.test.ts +0 -156
  515. package/src/functions/wallet/setAddressRecord.test.ts +0 -121
  516. package/src/functions/wallet/setChildFuses.test.ts +0 -97
  517. package/src/functions/wallet/setContentHashRecord.test.ts +0 -69
  518. package/src/functions/wallet/setFuses.test.ts +0 -287
  519. package/src/functions/wallet/setPrimaryName.test.ts +0 -71
  520. package/src/functions/wallet/setRecords.test.ts +0 -127
  521. package/src/functions/wallet/setResolver.test.ts +0 -114
  522. package/src/functions/wallet/setTextRecord.test.ts +0 -67
  523. package/src/functions/wallet/transferName.test.ts +0 -201
  524. package/src/functions/wallet/unwrapName.test.ts +0 -93
  525. package/src/functions/wallet/wrapName.test.ts +0 -195
  526. package/src/utils/generateRecordCallArray.test.ts +0 -84
  527. package/src/utils/labels.test.ts +0 -163
  528. package/src/utils/makeLabelNodeAndParent.test.ts +0 -11
  529. package/src/utils/makeSafeSecondsDate.test.ts +0 -14
  530. package/src/utils/normalise.test.ts +0 -35
  531. package/src/utils/ownerFromContract.test.ts +0 -52
  532. package/src/utils/registerHelpers.test.ts +0 -159
  533. package/src/utils/validation.test.ts +0 -170
  534. package/src/utils/wrapper.test.ts +0 -46
@@ -1,4 +1,32 @@
1
1
  import { bytesToHex, stringToHex } from 'viem';
2
+ import { UnknownContentTypeError } from '../../errors/utils.js';
3
+ const abiEncodeMap = {
4
+ json: 1,
5
+ zlib: 2,
6
+ cbor: 4,
7
+ uri: 8,
8
+ };
9
+ export const contentTypeToEncodeAs = (contentType) => {
10
+ switch (contentType) {
11
+ case 1:
12
+ return 'json';
13
+ case 2:
14
+ return 'zlib';
15
+ case 4:
16
+ return 'cbor';
17
+ case 8:
18
+ return 'uri';
19
+ default:
20
+ throw new UnknownContentTypeError({ contentType });
21
+ }
22
+ };
23
+ export const encodeAsToContentType = (encodeAs) => {
24
+ const contentType = abiEncodeMap[encodeAs];
25
+ if (contentType === undefined) {
26
+ throw new UnknownContentTypeError({ contentType: encodeAs });
27
+ }
28
+ return contentType;
29
+ };
2
30
  export const encodeAbi = async ({ encodeAs, data, }) => {
3
31
  let contentType;
4
32
  let encodedData;
@@ -15,8 +43,8 @@ export const encodeAbi = async ({ encodeAs, data, }) => {
15
43
  }
16
44
  case 'cbor': {
17
45
  contentType = 4;
18
- const { encode } = await import('cbor');
19
- encodedData = bytesToHex(encode(data));
46
+ const { cborEncode } = await import('@ensdomains/address-encoder/utils');
47
+ encodedData = bytesToHex(new Uint8Array(cborEncode(data)));
20
48
  break;
21
49
  }
22
50
  default: {
@@ -1 +1 @@
1
- {"version":3,"file":"encodeAbi.js","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeAbi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAY,MAAM,MAAM,CAAA;AAmCxD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAG5B,EACA,QAAQ,EACR,IAAI,GAC2B,EAE/B,EAAE;IACF,IAAI,WAA2B,CAAA;IAC/B,IAAI,WAAgB,CAAA;IACpB,QAAQ,QAAQ,EAAE;QAChB,KAAK,MAAM;YACT,WAAW,GAAG,CAAC,CAAA;YACf,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/C,MAAK;QACP,KAAK,MAAM,CAAC,CAAC;YACX,WAAW,GAAG,CAAC,CAAA;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;YACjE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACvD,MAAK;SACN;QACD,KAAK,MAAM,CAAC,CAAC;YACX,WAAW,GAAG,CAAC,CAAA;YACf,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;YACvC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YACtC,MAAK;SACN;QACD,OAAO,CAAC,CAAC;YACP,WAAW,GAAG,CAAC,CAAA;YACf,WAAW,GAAG,WAAW,CAAC,IAAc,CAAC,CAAA;YACzC,MAAK;SACN;KACF;IACD,OAAO,EAAE,WAAW,EAAE,WAA2B,EAAE,WAAW,EAAE,CAAA;AAClE,CAAC,CAAA"}
1
+ {"version":3,"file":"encodeAbi.js","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeAbi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAY,MAAM,MAAM,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAO/D,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;CACE,CAAA;AAwBV,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,WAA2B,EACd,EAAE;IACf,QAAQ,WAAW,EAAE;QACnB,KAAK,CAAC;YACJ,OAAO,MAAM,CAAA;QACf,KAAK,CAAC;YACJ,OAAO,MAAM,CAAA;QACf,KAAK,CAAC;YACJ,OAAO,MAAM,CAAA;QACf,KAAK,CAAC;YACJ,OAAO,KAAK,CAAA;QACd;YACE,MAAM,IAAI,uBAAuB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;KACrD;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAAqB,EACL,EAAE;IAClB,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,MAAM,IAAI,uBAAuB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;KAC7D;IACD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAG5B,EACA,QAAQ,EACR,IAAI,GAC2B,EAE/B,EAAE;IACF,IAAI,WAA2B,CAAA;IAC/B,IAAI,WAAgB,CAAA;IACpB,QAAQ,QAAQ,EAAE;QAChB,KAAK,MAAM;YACT,WAAW,GAAG,CAAC,CAAA;YACf,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/C,MAAK;QACP,KAAK,MAAM,CAAC,CAAC;YACX,WAAW,GAAG,CAAC,CAAA;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;YACjE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACvD,MAAK;SACN;QACD,KAAK,MAAM,CAAC,CAAC;YACX,WAAW,GAAG,CAAC,CAAA;YACf,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAA;YACxE,WAAW,GAAG,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAK;SACN;QACD,OAAO,CAAC,CAAC;YACP,WAAW,GAAG,CAAC,CAAA;YACf,WAAW,GAAG,WAAW,CAAC,IAAc,CAAC,CAAA;YACzC,MAAK;SACN;KACF;IACD,OAAO,EAAE,WAAW,EAAE,WAA2B,EAAE,WAAW,EAAE,CAAA;AAClE,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { encodeFunctionData } from 'viem';
2
+ import { publicResolverClearRecordsSnippet } from '../../contracts/publicResolver.js';
3
+ export const encodeClearRecords = (namehash) => encodeFunctionData({
4
+ abi: publicResolverClearRecordsSnippet,
5
+ functionName: 'clearRecords',
6
+ args: [namehash],
7
+ });
8
+ //# sourceMappingURL=encodeClearRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encodeClearRecords.js","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeClearRecords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAY,MAAM,MAAM,CAAA;AACnD,OAAO,EAAE,iCAAiC,EAAE,MAAM,mCAAmC,CAAA;AAErF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAa,EAAE,EAAE,CAClD,kBAAkB,CAAC;IACjB,GAAG,EAAE,iCAAiC;IACtC,YAAY,EAAE,cAAc;IAC5B,IAAI,EAAE,CAAC,QAAQ,CAAC;CACjB,CAAC,CAAA"}
@@ -1,23 +1,12 @@
1
- import { formatsByCoinType, formatsByName } from '@ensdomains/address-encoder';
2
1
  import { bytesToHex, encodeFunctionData } from 'viem';
3
2
  import { publicResolverSetAddrSnippet } from '../../contracts/publicResolver.js';
3
+ import { getCoderFromCoin } from '../normaliseCoinId.js';
4
4
  export const encodeSetAddr = ({ namehash, coin, value, }) => {
5
- let coinTypeInstance;
6
- if (typeof coin === 'number') {
7
- coinTypeInstance = formatsByCoinType[coin];
8
- }
9
- else if (!Number.isNaN(parseInt(coin))) {
10
- coinTypeInstance = formatsByCoinType[parseInt(coin)];
11
- }
12
- else {
13
- coinTypeInstance = formatsByName[coin.toUpperCase()];
14
- }
15
- const inputCoinType = coinTypeInstance.coinType;
16
- let encodedAddress = value
17
- ? coinTypeInstance.decoder(value)
18
- : '0x';
5
+ const coder = getCoderFromCoin(coin);
6
+ const inputCoinType = coder.coinType;
7
+ let encodedAddress = value ? coder.decode(value) : '0x';
19
8
  if (inputCoinType === 60 && encodedAddress === '0x')
20
- encodedAddress = coinTypeInstance.decoder('0x0000000000000000000000000000000000000000');
9
+ encodedAddress = coder.decode('0x0000000000000000000000000000000000000000');
21
10
  if (typeof encodedAddress !== 'string') {
22
11
  encodedAddress = bytesToHex(encodedAddress);
23
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"encodeSetAddr.js","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeSetAddr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAA0B,MAAM,MAAM,CAAA;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAUhF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,KAAK,GACmB,EAA2B,EAAE;IACrD,IAAI,gBAAgB,CAAA;IACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;KAC3C;SAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;QACxC,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;KACrD;SAAM;QACL,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;KACrD;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAA;IAC/C,IAAI,cAAc,GAAqB,KAAK;QAC1C,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,IAAI,CAAA;IACR,IAAI,aAAa,KAAK,EAAE,IAAI,cAAc,KAAK,IAAI;QACjD,cAAc,GAAG,gBAAgB,CAAC,OAAO,CACvC,4CAA4C,CAC7C,CAAA;IACH,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;KAC5C;IAED,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,4BAA4B;QACjC,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;KACxD,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"encodeSetAddr.js","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeSetAddr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAA0B,MAAM,MAAM,CAAA;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAUxD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,KAAK,GACmB,EAA2B,EAAE;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAA;IACpC,IAAI,cAAc,GAAqB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzE,IAAI,aAAa,KAAK,EAAE,IAAI,cAAc,KAAK,IAAI;QACjD,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAA;IAC7E,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;KAC5C;IAED,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,4BAA4B;QACjC,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;KACxD,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,13 +1,10 @@
1
1
  import { encodeFunctionData } from 'viem';
2
2
  import { publicResolverSetContenthashSnippet } from '../../contracts/publicResolver.js';
3
- import { encodeContenthash } from '../contentHash.js';
3
+ import { encodeContentHash } from '../contentHash.js';
4
4
  export const encodeSetContentHash = ({ namehash, contentHash, }) => {
5
5
  let encodedHash = '0x';
6
6
  if (contentHash) {
7
- const encodedObject = encodeContenthash(contentHash);
8
- if (encodedObject.error)
9
- throw new Error(encodedObject.error);
10
- encodedHash = encodedObject.encoded;
7
+ encodedHash = encodeContentHash(contentHash);
11
8
  }
12
9
  return encodeFunctionData({
13
10
  abi: publicResolverSetContenthashSnippet,
@@ -1 +1 @@
1
- {"version":3,"file":"encodeSetContentHash.js","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeSetContentHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAY,MAAM,MAAM,CAAA;AACnD,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAA;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AASrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,WAAW,GACoB,EAAkC,EAAE;IACnE,IAAI,WAAW,GAAQ,IAAI,CAAA;IAC3B,IAAI,WAAW,EAAE;QACf,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;QACpD,IAAI,aAAa,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC7D,WAAW,GAAG,aAAa,CAAC,OAAc,CAAA;KAC3C;IACD,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,mCAAmC;QACxC,YAAY,EAAE,gBAAgB;QAC9B,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"encodeSetContentHash.js","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeSetContentHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAY,MAAM,MAAM,CAAA;AACnD,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAA;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AASrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,WAAW,GACoB,EAAkC,EAAE;IACnE,IAAI,WAAW,GAAQ,IAAI,CAAA;IAC3B,IAAI,WAAW,EAAE;QACf,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;KAC7C;IACD,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,mCAAmC;QACxC,YAAY,EAAE,gBAAgB;QAC9B,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,4 +1,2 @@
1
- export const formatHashed = (name) => name.replace(/(\[)(.{64})(\])/g, '0x$2');
2
1
  export const truncateFormat = (name) => name.replace(/(\[.{3})(.{58})(.{3}\])/g, '$1...$3');
3
- export const bracketFormat = (name) => name.replace(/(0x)(.{64})(?=\.)/g, '[$2]');
4
2
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CACnD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE,CACrD,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CACpD,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE,CACrD,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAA"}
@@ -1,233 +1,215 @@
1
- import { FusesFuseNotAllowedError, FusesInvalidFuseObjectError, FusesInvalidNamedFuseError, FusesInvalidUnnamedFuseError, FusesNonIntegerError, FusesOutOfRangeError, FusesRestrictionNotAllowedError, FusesValueRequiredError, } from '../errors/utils.js';
2
- // child named fuses
3
- const CANNOT_UNWRAP = 1;
4
- const CANNOT_BURN_FUSES = 2;
5
- const CANNOT_TRANSFER = 4;
6
- const CANNOT_SET_RESOLVER = 8;
7
- const CANNOT_SET_TTL = 16;
8
- const CANNOT_CREATE_SUBDOMAIN = 32;
9
- const CANNOT_APPROVE = 64;
10
- // parent named fuses
11
- const PARENT_CANNOT_CONTROL = 0x10000;
12
- const IS_DOT_ETH = 0x20000;
13
- const CAN_EXTEND_EXPIRY = 0x40000;
14
- // fuse ranges
15
- export const CHILD_CONTROLLED_FUSES = 0x0000ffff;
16
- export const PARENT_CONTROLLED_FUSES = 0xffff0000;
17
- export const USER_SETTABLE_FUSES = 0xfffdffff;
18
- // empty fuse
19
- const CAN_DO_EVERYTHING = 0;
20
- export const childFuseEnum = {
21
- CANNOT_UNWRAP,
22
- CANNOT_BURN_FUSES,
23
- CANNOT_TRANSFER,
24
- CANNOT_SET_RESOLVER,
25
- CANNOT_SET_TTL,
26
- CANNOT_CREATE_SUBDOMAIN,
27
- CANNOT_APPROVE,
1
+ /* eslint-disable @typescript-eslint/no-redeclare, @typescript-eslint/naming-convention */
2
+ import { FusesInvalidFuseObjectError, FusesInvalidNamedFuseError, FusesInvalidUnnamedFuseError, FusesOutOfRangeError, FusesRestrictionNotAllowedError, } from '../errors/utils.js';
3
+ export const ChildFuses = {
4
+ CANNOT_UNWRAP: 1n,
5
+ CANNOT_BURN_FUSES: 2n,
6
+ CANNOT_TRANSFER: 4n,
7
+ CANNOT_SET_RESOLVER: 8n,
8
+ CANNOT_SET_TTL: 16n,
9
+ CANNOT_CREATE_SUBDOMAIN: 32n,
10
+ CANNOT_APPROVE: 64n,
28
11
  };
29
- export const parentFuseEnum = {
30
- PARENT_CANNOT_CONTROL,
31
- CAN_EXTEND_EXPIRY,
12
+ export const ChildFuseKeys = Object.keys(ChildFuses);
13
+ export const ParentFuses = {
14
+ PARENT_CANNOT_CONTROL: 0x10000n,
15
+ CAN_EXTEND_EXPIRY: 0x40000n,
32
16
  };
33
- export const fullParentFuseEnum = {
34
- ...parentFuseEnum,
35
- IS_DOT_ETH,
17
+ export const ParentFuseKeys = Object.keys(ParentFuses);
18
+ export const UserSettableFuses = {
19
+ ...ChildFuses,
20
+ ...ParentFuses,
36
21
  };
37
- export const userSettableFuseEnum = {
38
- ...childFuseEnum,
39
- ...parentFuseEnum,
22
+ export const UserSettableFuseKeys = Object.keys(UserSettableFuses);
23
+ export const FullParentFuses = {
24
+ ...ParentFuses,
25
+ IS_DOT_ETH: 0x20000n,
40
26
  };
41
- export const fullFuseEnum = {
42
- ...userSettableFuseEnum,
43
- ...fullParentFuseEnum,
44
- CAN_DO_EVERYTHING,
45
- };
46
- export const unnamedChildFuses = [
47
- 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768,
27
+ export const FullParentFuseKeys = Object.keys(FullParentFuses);
28
+ export const UnnamedChildFuses = [
29
+ 0x80n,
30
+ 0x100n,
31
+ 0x200n,
32
+ 0x400n,
33
+ 0x800n,
34
+ 0x1000n,
35
+ 0x2000n,
36
+ 0x4000n,
37
+ 0x8000n,
38
+ ];
39
+ export const UnnamedChildFuseKeys = [
40
+ '0x80',
41
+ '0x100',
42
+ '0x200',
43
+ '0x400',
44
+ '0x800',
45
+ '0x1000',
46
+ '0x2000',
47
+ '0x4000',
48
+ '0x8000',
48
49
  ];
49
- export const unnamedParentFuses = [
50
- 0x80000, 0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000,
51
- 0x4000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000,
50
+ export const UnnamedParentFuses = [
51
+ 0x80000n,
52
+ 0x100000n,
53
+ 0x200000n,
54
+ 0x400000n,
55
+ 0x800000n,
56
+ 0x1000000n,
57
+ 0x2000000n,
58
+ 0x4000000n,
59
+ 0x8000000n,
60
+ 0x10000000n,
61
+ 0x20000000n,
62
+ 0x40000000n,
63
+ 0x80000000n,
52
64
  ];
53
- export const unnamedUserSettableFuses = [
54
- ...unnamedChildFuses,
55
- ...unnamedParentFuses,
65
+ export const UnnamedParentFuseKeys = [
66
+ '0x80000',
67
+ '0x100000',
68
+ '0x200000',
69
+ '0x400000',
70
+ '0x800000',
71
+ '0x1000000',
56
72
  ];
57
- export const childFuseKeys = Object.keys(childFuseEnum);
58
- export const parentFuseKeys = Object.keys(parentFuseEnum);
59
- export const fullParentFuseKeys = Object.keys(fullParentFuseEnum);
60
- export const userSettableFuseKeys = Object.keys(userSettableFuseEnum);
61
- const checkNumber = (fuses) => {
62
- if (fuses > 2 ** 32 || fuses < 1)
73
+ export const FuseRanges = {
74
+ CHILD_CONTROLLED_FUSES: 0x0000ffffn,
75
+ PARENT_CONTROLLED_FUSES: 0xffff0000n,
76
+ USER_SETTABLE_FUSES: 0xfffdffffn,
77
+ };
78
+ export const ChildFuseReference = {
79
+ Name: 'child',
80
+ Object: ChildFuses,
81
+ Keys: ChildFuseKeys,
82
+ Range: FuseRanges.CHILD_CONTROLLED_FUSES,
83
+ Unnamed: UnnamedChildFuses,
84
+ UnnamedKeys: UnnamedChildFuseKeys,
85
+ Minimum: 0n,
86
+ Maximum: 2n ** 16n - 1n,
87
+ };
88
+ export const ParentFuseReference = {
89
+ Name: 'parent',
90
+ Object: ParentFuses,
91
+ Keys: ParentFuseKeys,
92
+ Range: FuseRanges.PARENT_CONTROLLED_FUSES,
93
+ Unnamed: UnnamedParentFuses,
94
+ UnnamedKeys: UnnamedParentFuseKeys,
95
+ Minimum: 2n ** 16n,
96
+ Maximum: 2n ** 32n,
97
+ };
98
+ export const FullParentFuseReference = {
99
+ Name: 'parent',
100
+ Object: FullParentFuses,
101
+ Keys: FullParentFuseKeys,
102
+ Range: FuseRanges.PARENT_CONTROLLED_FUSES,
103
+ Unnamed: UnnamedParentFuses,
104
+ UnnamedKeys: UnnamedParentFuseKeys,
105
+ Minimum: 2n ** 16n,
106
+ Maximum: 2n ** 32n,
107
+ };
108
+ const validateFuseNumber = (fuses) => {
109
+ if (fuses > 2n ** 32n || fuses < 0n)
63
110
  throw new FusesOutOfRangeError({
64
111
  fuses,
65
- details: `Fuse number must be limited to uint32, the supplied value was too ${fuses < 1 ? 'low' : 'high'}`,
112
+ details: `Fuse number must be limited to uint32, the supplied value was too ${fuses < 0 ? 'low' : 'high'}`,
66
113
  });
67
- else if (fuses % 1 !== 0)
68
- throw new FusesNonIntegerError({ fuses });
69
- else if ((fuses & USER_SETTABLE_FUSES) !== fuses)
114
+ else if ((fuses & FuseRanges.USER_SETTABLE_FUSES) !== fuses)
70
115
  throw new FusesOutOfRangeError({
71
116
  fuses,
72
- maximum: 2 ** 16,
73
117
  details: `Fuse number must be limited to user settable fuses, the supplied value was not`,
74
118
  });
75
119
  };
76
- const testFuses = (fuses) => {
77
- if ('named' in fuses && fuses.named.length > 0) {
78
- return true;
79
- }
80
- if ('unnamed' in fuses && fuses.unnamed.length > 0) {
81
- return true;
82
- }
83
- if ('number' in fuses && fuses.number !== 0) {
84
- return true;
85
- }
86
- return false;
87
- };
88
- export const hasFuses = (fuses) => {
89
- if (typeof fuses === 'number') {
90
- return fuses !== 0;
120
+ const checkFuseObject = ({ reference, object, }) => {
121
+ if (!object)
122
+ return 0;
123
+ if ('number' in object) {
124
+ if ('named' in object || 'unnamed' in object)
125
+ throw new FusesInvalidFuseObjectError({
126
+ fuses: object,
127
+ details: 'Cannot specify both a fuse number and named/unnamed fuses.',
128
+ });
129
+ validateFuseNumber(object.number);
130
+ if ((object.number & reference.Range) !== object.number)
131
+ throw new FusesOutOfRangeError({
132
+ fuses: object.number,
133
+ minimum: reference.Minimum,
134
+ maximum: reference.Maximum,
135
+ details: `Cannot specify a fuse value to set that is outside of the ${reference.Name}'s control.`,
136
+ });
137
+ return Number(object.number);
91
138
  }
92
- if (typeof fuses === 'object') {
93
- if ('child' in fuses && testFuses(fuses.child)) {
94
- return true;
139
+ let fuseNumber = 0n;
140
+ if ('named' in object && object.named) {
141
+ for (const fuse of object.named) {
142
+ if (!reference.Keys.includes(fuse))
143
+ throw new FusesInvalidNamedFuseError({ fuse });
144
+ fuseNumber |= reference.Object[fuse];
95
145
  }
96
- if ('parent' in fuses && testFuses(fuses.parent)) {
97
- return true;
98
- }
99
- if (testFuses(fuses)) {
100
- return true;
146
+ }
147
+ if ('unnamed' in object && object.unnamed) {
148
+ for (const fuse of object.unnamed) {
149
+ if (!reference.Unnamed.includes(fuse))
150
+ throw new FusesInvalidUnnamedFuseError({ fuse });
151
+ fuseNumber |= fuse;
101
152
  }
102
153
  }
103
- return false;
154
+ return Number(fuseNumber);
104
155
  };
105
- export function encodeFuses(fuses, restrictTo) {
106
- let encodedFuses = 0;
107
- if (typeof fuses === 'number') {
108
- if (restrictTo)
156
+ export const encodeFuses = ({ restriction, input, }) => {
157
+ if (restriction) {
158
+ if ('parent' in input || 'child' in input)
109
159
  throw new FusesRestrictionNotAllowedError({
110
- fuses,
111
- details: 'Fuse restriction cannot be used when an exact value is specified',
160
+ fuses: input,
161
+ details: 'Fuse restriction cannot be used when fuse category is specified',
112
162
  });
113
- checkNumber(fuses);
114
- encodedFuses = fuses;
163
+ return checkFuseObject({
164
+ object: input,
165
+ reference: restriction === 'child' ? ChildFuseReference : ParentFuseReference,
166
+ });
115
167
  }
116
- else {
117
- let fusesRef = fuses;
118
- let allowedNamed = [];
119
- let allowedUnnamed = [];
120
- let namedArray = [];
121
- let unnamedArray = [];
122
- if (restrictTo) {
123
- if ('parent' in fuses || 'child' in fuses)
124
- throw new FusesRestrictionNotAllowedError({
125
- fuses,
126
- details: 'Fuse restriction cannot be used when fuse category is specified',
127
- });
128
- allowedNamed = restrictTo === 'child' ? childFuseKeys : parentFuseKeys;
129
- allowedUnnamed =
130
- restrictTo === 'child' ? unnamedChildFuses : unnamedParentFuses;
131
- fusesRef = { [restrictTo]: fuses };
132
- }
133
- else {
134
- allowedNamed = userSettableFuseKeys;
135
- allowedUnnamed = unnamedUserSettableFuses;
136
- }
137
- if ('parent' in fusesRef) {
138
- if ('named' in fusesRef.parent)
139
- namedArray = fusesRef.parent.named;
140
- if ('unnamed' in fusesRef.parent)
141
- unnamedArray = fusesRef.parent.unnamed;
142
- if ('number' in fusesRef.parent) {
143
- if ('named' in fusesRef.parent || 'unnamed' in fusesRef.parent)
144
- throw new FusesInvalidFuseObjectError({
145
- fuses,
146
- details: 'Cannot specify both a fuse number and named/unnamed fuses.',
147
- });
148
- checkNumber(fusesRef.parent.number);
149
- if ((fusesRef.parent.number & PARENT_CONTROLLED_FUSES) !==
150
- fusesRef.parent.number)
151
- throw new FusesOutOfRangeError({
152
- fuses: fusesRef.parent.number,
153
- minimum: 2 ** 17,
154
- details: "Cannot specify a fuse value to set that is outside of the parent's control.",
155
- });
156
- encodedFuses |= fusesRef.parent.number;
157
- }
158
- }
159
- if ('child' in fusesRef) {
160
- if ('named' in fusesRef.child)
161
- namedArray = [...namedArray, ...fusesRef.child.named];
162
- if ('unnamed' in fusesRef.child)
163
- unnamedArray = [...unnamedArray, ...fusesRef.child.unnamed];
164
- if ('number' in fusesRef.child) {
165
- if ('named' in fusesRef.child || 'unnamed' in fusesRef.child)
166
- throw new FusesInvalidFuseObjectError({
167
- fuses,
168
- details: 'Cannot specify both a fuse number and named/unnamed fuses.',
169
- });
170
- checkNumber(fusesRef.child.number);
171
- if ((fusesRef.child.number & CHILD_CONTROLLED_FUSES) !==
172
- fusesRef.child.number)
173
- throw new FusesOutOfRangeError({
174
- fuses: fusesRef.child.number,
175
- maximum: 2 ** 16,
176
- details: "Cannot specify a fuse value to set that is outside of the owner's control.",
177
- });
178
- encodedFuses |= fusesRef.child.number;
179
- }
180
- }
181
- if (!namedArray.length && !unnamedArray.length && !encodedFuses)
182
- throw new FusesValueRequiredError();
183
- for (const fuse of namedArray) {
184
- if (!allowedNamed.includes(fuse)) {
185
- if (!userSettableFuseKeys.includes(fuse))
186
- throw new FusesInvalidNamedFuseError({ fuse });
187
- throw new FusesFuseNotAllowedError({ fuse });
188
- }
189
- encodedFuses |= userSettableFuseEnum[fuse];
190
- }
191
- for (const fuse of unnamedArray) {
192
- if (!allowedUnnamed.includes(fuse)) {
193
- if (!unnamedUserSettableFuses.includes(fuse))
194
- throw new FusesInvalidUnnamedFuseError({ fuse });
195
- throw new FusesFuseNotAllowedError({ fuse });
196
- }
197
- encodedFuses |= fuse;
198
- }
168
+ if ('number' in input) {
169
+ if ('parent' in input || 'child' in input)
170
+ throw new FusesInvalidFuseObjectError({
171
+ fuses: input,
172
+ details: 'Cannot specify both a fuse number and named/unnamed fuses.',
173
+ });
174
+ validateFuseNumber(input.number);
175
+ return Number(input.number);
199
176
  }
200
- return encodedFuses;
201
- }
202
- const decodeNamedFuses = (fuses, arr) => {
203
- const fuseObj = Object.fromEntries(arr.map((fuse) => [
204
- fuse,
205
- (fuses & fullFuseEnum[fuse]) ===
206
- fullFuseEnum[fuse],
207
- ]));
208
- return fuseObj;
209
- };
210
- const decodeUnnamedFuses = (fuses, arr) => {
211
- const fuseObj = Object.fromEntries(arr.map((fuse) => [fuse, (fuses & fuse) === fuse]));
212
- return fuseObj;
177
+ const childFuses = 'child' in input
178
+ ? checkFuseObject({ object: input.child, reference: ChildFuseReference })
179
+ : 0;
180
+ const parentFuses = 'parent' in input
181
+ ? checkFuseObject({
182
+ object: input.parent,
183
+ reference: ParentFuseReference,
184
+ })
185
+ : 0;
186
+ return Number(childFuses | parentFuses);
213
187
  };
188
+ const decodeFusesFromReference = ({ input, reference, }) => ({
189
+ ...Object.fromEntries(reference.Keys.map((key) => [
190
+ key,
191
+ (input & reference.Object[key]) === reference.Object[key],
192
+ ])),
193
+ unnamed: Object.fromEntries(reference.UnnamedKeys.map((key) => [
194
+ key,
195
+ (input & BigInt(key)) === BigInt(key),
196
+ ])),
197
+ });
214
198
  export const decodeFuses = (fuses) => {
215
- const parentNamedFuses = decodeNamedFuses(fuses, fullParentFuseKeys);
216
- const parentUnnamedFuses = decodeUnnamedFuses(fuses, unnamedParentFuses);
217
- const childNamedFuses = decodeNamedFuses(fuses, childFuseKeys);
218
- const childUnnamedFuses = decodeUnnamedFuses(fuses, unnamedChildFuses);
199
+ const fusesBigInt = BigInt(fuses);
219
200
  return {
220
- parent: {
221
- ...parentNamedFuses,
222
- unnamed: parentUnnamedFuses,
223
- },
201
+ parent: decodeFusesFromReference({
202
+ input: fusesBigInt,
203
+ reference: FullParentFuseReference,
204
+ }),
224
205
  child: {
225
- ...childNamedFuses,
226
- CAN_DO_EVERYTHING: (fuses & CHILD_CONTROLLED_FUSES) === 0,
227
- unnamed: childUnnamedFuses,
206
+ ...decodeFusesFromReference({
207
+ input: fusesBigInt,
208
+ reference: ChildFuseReference,
209
+ }),
210
+ CAN_DO_EVERYTHING: (fusesBigInt & FuseRanges.CHILD_CONTROLLED_FUSES) === 0n,
228
211
  },
229
212
  };
230
213
  };
231
- export const checkPCCBurned = (fuses) => (fuses & PARENT_CANNOT_CONTROL) === PARENT_CANNOT_CONTROL;
232
- export default fullFuseEnum;
214
+ export const checkPccBurned = (fuses) => (fuses & ParentFuses.PARENT_CANNOT_CONTROL) === 0n;
233
215
  //# sourceMappingURL=fuses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fuses.js","sourceRoot":"","sources":["../../../src/utils/fuses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fuses.js","sourceRoot":"","sources":["../../../src/utils/fuses.ts"],"names":[],"mappings":"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"}