@pezkuwi/types-codec 16.5.5 → 16.5.6

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 (424) hide show
  1. package/LICENSE +201 -0
  2. package/abstract/Array.js +166 -0
  3. package/abstract/Base.js +101 -0
  4. package/abstract/Int.js +226 -0
  5. package/abstract/Object.js +40 -0
  6. package/{src/abstract/index.ts → abstract/index.js} +0 -3
  7. package/base/Compact.js +159 -0
  8. package/base/DoNotConstruct.js +95 -0
  9. package/base/Enum.js +369 -0
  10. package/{build/base → base}/Int.d.ts +1 -1
  11. package/base/Int.js +26 -0
  12. package/base/Null.js +77 -0
  13. package/base/Option.js +232 -0
  14. package/base/Result.js +63 -0
  15. package/base/Tuple.js +110 -0
  16. package/{build/base → base}/UInt.d.ts +1 -1
  17. package/base/UInt.js +23 -0
  18. package/base/Vec.js +102 -0
  19. package/base/VecAny.js +17 -0
  20. package/base/VecFixed.js +67 -0
  21. package/{src/base/index.ts → base/index.js} +0 -3
  22. package/{src/bundle.ts → bundle.js} +0 -6
  23. package/cjs/abstract/Array.d.ts +89 -0
  24. package/cjs/abstract/Array.js +170 -0
  25. package/cjs/abstract/Base.d.ts +75 -0
  26. package/cjs/abstract/Base.js +105 -0
  27. package/cjs/abstract/Int.d.ts +80 -0
  28. package/cjs/abstract/Int.js +230 -0
  29. package/cjs/abstract/Object.d.ts +67 -0
  30. package/cjs/abstract/Object.js +44 -0
  31. package/cjs/abstract/index.d.ts +3 -0
  32. package/cjs/abstract/index.js +9 -0
  33. package/cjs/base/Compact.d.ts +88 -0
  34. package/cjs/base/Compact.js +163 -0
  35. package/cjs/base/DoNotConstruct.d.ts +63 -0
  36. package/cjs/base/DoNotConstruct.js +99 -0
  37. package/cjs/base/Enum.d.ts +118 -0
  38. package/cjs/base/Enum.js +373 -0
  39. package/cjs/base/Int.d.ts +16 -0
  40. package/cjs/base/Int.js +30 -0
  41. package/cjs/base/Null.d.ts +56 -0
  42. package/cjs/base/Null.js +81 -0
  43. package/cjs/base/Option.d.ts +94 -0
  44. package/cjs/base/Option.js +236 -0
  45. package/cjs/base/Result.d.ts +38 -0
  46. package/cjs/base/Result.js +67 -0
  47. package/cjs/base/Tuple.d.ts +42 -0
  48. package/cjs/base/Tuple.js +114 -0
  49. package/cjs/base/UInt.d.ts +15 -0
  50. package/cjs/base/UInt.js +27 -0
  51. package/cjs/base/Vec.d.ts +28 -0
  52. package/cjs/base/Vec.js +107 -0
  53. package/cjs/base/VecAny.d.ts +15 -0
  54. package/cjs/base/VecAny.js +21 -0
  55. package/cjs/base/VecFixed.d.ts +30 -0
  56. package/cjs/base/VecFixed.js +71 -0
  57. package/cjs/base/index.d.ts +12 -0
  58. package/cjs/base/index.js +27 -0
  59. package/cjs/bundle.d.ts +7 -0
  60. package/cjs/bundle.js +12 -0
  61. package/cjs/extended/BTreeMap.js +14 -0
  62. package/cjs/extended/BTreeSet.js +189 -0
  63. package/cjs/extended/BitVec.js +112 -0
  64. package/cjs/extended/Bytes.js +74 -0
  65. package/cjs/extended/HashMap.js +14 -0
  66. package/cjs/extended/Linkage.js +70 -0
  67. package/cjs/extended/Map.js +204 -0
  68. package/cjs/extended/OptionBool.js +76 -0
  69. package/cjs/extended/Range.js +42 -0
  70. package/cjs/extended/RangeInclusive.js +17 -0
  71. package/cjs/extended/Type.js +25 -0
  72. package/cjs/extended/U8aFixed.js +46 -0
  73. package/cjs/extended/WrapperKeepOpaque.js +103 -0
  74. package/cjs/extended/WrapperOpaque.js +23 -0
  75. package/cjs/extended/index.js +32 -0
  76. package/cjs/index.js +5 -0
  77. package/cjs/native/Bool.js +113 -0
  78. package/cjs/native/Date.js +144 -0
  79. package/cjs/native/Float.js +111 -0
  80. package/cjs/native/Json.js +121 -0
  81. package/cjs/native/Raw.js +144 -0
  82. package/cjs/native/Set.js +219 -0
  83. package/cjs/native/Struct.data.js +4 -0
  84. package/cjs/native/Struct.js +264 -0
  85. package/cjs/native/Text.js +154 -0
  86. package/cjs/native/index.js +22 -0
  87. package/cjs/package.json +3 -0
  88. package/cjs/packageDetect.js +5 -0
  89. package/cjs/packageInfo.js +4 -0
  90. package/cjs/primitive/F32.js +14 -0
  91. package/cjs/primitive/F64.js +14 -0
  92. package/cjs/primitive/I128.js +14 -0
  93. package/cjs/primitive/I16.js +14 -0
  94. package/cjs/primitive/I256.js +14 -0
  95. package/cjs/primitive/I32.js +14 -0
  96. package/cjs/primitive/I64.js +14 -0
  97. package/cjs/primitive/I8.js +14 -0
  98. package/cjs/primitive/ISize.js +18 -0
  99. package/cjs/primitive/U128.js +14 -0
  100. package/cjs/primitive/U16.js +14 -0
  101. package/cjs/primitive/U256.js +14 -0
  102. package/cjs/primitive/U32.js +14 -0
  103. package/cjs/primitive/U64.js +14 -0
  104. package/cjs/primitive/U8.js +14 -0
  105. package/cjs/primitive/USize.js +18 -0
  106. package/cjs/primitive/index.js +51 -0
  107. package/{build → cjs}/types/codec.d.ts +1 -1
  108. package/cjs/types/codec.js +2 -0
  109. package/cjs/types/helpers.js +2 -0
  110. package/cjs/types/index.js +7 -0
  111. package/cjs/types/interfaces.js +2 -0
  112. package/cjs/types/registry.js +2 -0
  113. package/cjs/utils/compareArray.js +13 -0
  114. package/cjs/utils/compareMap.js +30 -0
  115. package/cjs/utils/compareSet.js +20 -0
  116. package/cjs/utils/decodeU8a.js +105 -0
  117. package/cjs/utils/index.js +25 -0
  118. package/cjs/utils/sanitize.js +233 -0
  119. package/cjs/utils/sortValues.js +84 -0
  120. package/cjs/utils/toConstructors.js +40 -0
  121. package/cjs/utils/typesToMap.js +10 -0
  122. package/cjs/utils/util.js +7 -0
  123. package/extended/BTreeMap.d.ts +5 -0
  124. package/extended/BTreeMap.js +10 -0
  125. package/extended/BTreeSet.d.ts +64 -0
  126. package/extended/BTreeSet.js +185 -0
  127. package/extended/BitVec.d.ts +37 -0
  128. package/extended/BitVec.js +108 -0
  129. package/extended/Bytes.d.ts +29 -0
  130. package/extended/Bytes.js +70 -0
  131. package/extended/HashMap.d.ts +5 -0
  132. package/extended/HashMap.js +10 -0
  133. package/extended/Linkage.d.ts +37 -0
  134. package/extended/Linkage.js +65 -0
  135. package/extended/Map.d.ts +59 -0
  136. package/extended/Map.js +200 -0
  137. package/extended/OptionBool.d.ts +36 -0
  138. package/extended/OptionBool.js +72 -0
  139. package/extended/Range.d.ts +29 -0
  140. package/extended/Range.js +38 -0
  141. package/extended/RangeInclusive.d.ts +6 -0
  142. package/extended/RangeInclusive.js +13 -0
  143. package/extended/Type.d.ts +16 -0
  144. package/extended/Type.js +21 -0
  145. package/extended/U8aFixed.d.ts +16 -0
  146. package/extended/U8aFixed.js +42 -0
  147. package/extended/WrapperKeepOpaque.d.ts +40 -0
  148. package/extended/WrapperKeepOpaque.js +99 -0
  149. package/extended/WrapperOpaque.d.ts +10 -0
  150. package/extended/WrapperOpaque.js +19 -0
  151. package/{src/extended/index.ts → extended/index.d.ts} +0 -3
  152. package/extended/index.js +14 -0
  153. package/index.d.ts +2 -0
  154. package/index.js +2 -0
  155. package/native/Bool.d.ts +71 -0
  156. package/native/Bool.js +109 -0
  157. package/native/Date.d.ts +84 -0
  158. package/native/Date.js +140 -0
  159. package/native/Float.d.ts +68 -0
  160. package/native/Float.js +107 -0
  161. package/native/Json.d.ts +69 -0
  162. package/native/Json.js +117 -0
  163. package/native/Raw.d.ts +87 -0
  164. package/native/Raw.js +140 -0
  165. package/native/Set.d.ts +84 -0
  166. package/native/Set.js +215 -0
  167. package/native/Struct.d.ts +106 -0
  168. package/{src/native/Struct.data.ts → native/Struct.data.js} +0 -3
  169. package/native/Struct.js +260 -0
  170. package/native/Text.d.ts +77 -0
  171. package/native/Text.js +150 -0
  172. package/{src/native/index.ts → native/index.d.ts} +0 -3
  173. package/native/index.js +8 -0
  174. package/package.json +1126 -11
  175. package/packageDetect.d.ts +1 -0
  176. package/packageDetect.js +3 -0
  177. package/packageInfo.d.ts +6 -0
  178. package/packageInfo.js +1 -0
  179. package/primitive/F32.d.ts +11 -0
  180. package/primitive/F32.js +10 -0
  181. package/primitive/F64.d.ts +11 -0
  182. package/primitive/F64.js +10 -0
  183. package/primitive/I128.d.ts +11 -0
  184. package/primitive/I128.js +10 -0
  185. package/primitive/I16.d.ts +11 -0
  186. package/primitive/I16.js +10 -0
  187. package/primitive/I256.d.ts +11 -0
  188. package/primitive/I256.js +10 -0
  189. package/primitive/I32.d.ts +11 -0
  190. package/primitive/I32.js +10 -0
  191. package/primitive/I64.d.ts +11 -0
  192. package/primitive/I64.js +10 -0
  193. package/primitive/I8.d.ts +11 -0
  194. package/primitive/I8.js +10 -0
  195. package/primitive/ISize.d.ts +12 -0
  196. package/primitive/ISize.js +14 -0
  197. package/primitive/U128.d.ts +11 -0
  198. package/primitive/U128.js +10 -0
  199. package/primitive/U16.d.ts +11 -0
  200. package/primitive/U16.js +10 -0
  201. package/primitive/U256.d.ts +11 -0
  202. package/primitive/U256.js +10 -0
  203. package/primitive/U32.d.ts +11 -0
  204. package/primitive/U32.js +10 -0
  205. package/primitive/U64.d.ts +11 -0
  206. package/primitive/U64.js +10 -0
  207. package/primitive/U8.d.ts +11 -0
  208. package/primitive/U8.js +10 -0
  209. package/primitive/USize.d.ts +12 -0
  210. package/primitive/USize.js +14 -0
  211. package/{src/primitive/index.ts → primitive/index.d.ts} +0 -3
  212. package/primitive/index.js +16 -0
  213. package/types/codec.d.ts +113 -0
  214. package/types/codec.js +1 -0
  215. package/{src/types/helpers.ts → types/helpers.d.ts} +8 -31
  216. package/types/helpers.js +1 -0
  217. package/{src/types/index.ts → types/index.d.ts} +0 -3
  218. package/types/index.js +4 -0
  219. package/types/interfaces.d.ts +74 -0
  220. package/types/interfaces.js +1 -0
  221. package/types/registry.d.ts +67 -0
  222. package/types/registry.js +1 -0
  223. package/utils/compareArray.d.ts +1 -0
  224. package/utils/compareArray.js +10 -0
  225. package/utils/compareMap.d.ts +1 -0
  226. package/utils/compareMap.js +27 -0
  227. package/utils/compareSet.d.ts +1 -0
  228. package/utils/compareSet.js +17 -0
  229. package/utils/decodeU8a.d.ts +26 -0
  230. package/utils/decodeU8a.js +100 -0
  231. package/{src/utils/index.ts → utils/index.d.ts} +0 -3
  232. package/utils/index.js +8 -0
  233. package/utils/sanitize.d.ts +15 -0
  234. package/utils/sanitize.js +219 -0
  235. package/utils/sortValues.d.ts +12 -0
  236. package/utils/sortValues.js +79 -0
  237. package/utils/toConstructors.d.ts +16 -0
  238. package/utils/toConstructors.js +35 -0
  239. package/utils/typesToMap.d.ts +2 -0
  240. package/utils/typesToMap.js +7 -0
  241. package/utils/util.d.ts +3 -0
  242. package/utils/util.js +4 -0
  243. package/src/abstract/Array.ts +0 -213
  244. package/src/abstract/Base.ts +0 -129
  245. package/src/abstract/Int.ts +0 -271
  246. package/src/abstract/Object.ts +0 -99
  247. package/src/base/Compact.spec.ts +0 -99
  248. package/src/base/Compact.ts +0 -198
  249. package/src/base/DoNotConstruct.spec.ts +0 -23
  250. package/src/base/DoNotConstruct.ts +0 -118
  251. package/src/base/Enum.spec.ts +0 -487
  252. package/src/base/Enum.ts +0 -460
  253. package/src/base/Int.spec.ts +0 -225
  254. package/src/base/Int.ts +0 -34
  255. package/src/base/Null.spec.ts +0 -41
  256. package/src/base/Null.ts +0 -96
  257. package/src/base/Option.spec.ts +0 -216
  258. package/src/base/Option.ts +0 -275
  259. package/src/base/Result.spec.ts +0 -64
  260. package/src/base/Result.ts +0 -79
  261. package/src/base/Tuple.spec.ts +0 -161
  262. package/src/base/Tuple.ts +0 -149
  263. package/src/base/UInt.spec.ts +0 -192
  264. package/src/base/UInt.ts +0 -30
  265. package/src/base/Vec.spec.ts +0 -224
  266. package/src/base/Vec.ts +0 -133
  267. package/src/base/VecAny.ts +0 -23
  268. package/src/base/VecFixed.spec.ts +0 -78
  269. package/src/base/VecFixed.ts +0 -92
  270. package/src/checkTypes.manual.ts +0 -12
  271. package/src/extended/BTreeMap.spec.ts +0 -245
  272. package/src/extended/BTreeMap.ts +0 -16
  273. package/src/extended/BTreeSet.spec.ts +0 -260
  274. package/src/extended/BTreeSet.ts +0 -233
  275. package/src/extended/BitVec.spec.ts +0 -97
  276. package/src/extended/BitVec.ts +0 -137
  277. package/src/extended/Bytes.spec.ts +0 -75
  278. package/src/extended/Bytes.ts +0 -88
  279. package/src/extended/HashMap.spec.ts +0 -36
  280. package/src/extended/HashMap.ts +0 -16
  281. package/src/extended/Linkage.spec.ts +0 -43
  282. package/src/extended/Linkage.ts +0 -81
  283. package/src/extended/Map.spec.ts +0 -123
  284. package/src/extended/Map.ts +0 -255
  285. package/src/extended/OptionBool.spec.ts +0 -49
  286. package/src/extended/OptionBool.ts +0 -93
  287. package/src/extended/Range.spec.ts +0 -37
  288. package/src/extended/Range.ts +0 -56
  289. package/src/extended/RangeInclusive.ts +0 -20
  290. package/src/extended/Type.spec.ts +0 -118
  291. package/src/extended/Type.ts +0 -29
  292. package/src/extended/U8aFixed.spec.ts +0 -117
  293. package/src/extended/U8aFixed.ts +0 -57
  294. package/src/extended/WrapperKeepOpaque.spec.ts +0 -101
  295. package/src/extended/WrapperKeepOpaque.ts +0 -128
  296. package/src/extended/WrapperOpaque.spec.ts +0 -58
  297. package/src/extended/WrapperOpaque.ts +0 -27
  298. package/src/index.ts +0 -6
  299. package/src/mod.ts +0 -4
  300. package/src/native/Bool.spec.ts +0 -74
  301. package/src/native/Bool.ts +0 -137
  302. package/src/native/Date.spec.ts +0 -85
  303. package/src/native/Date.ts +0 -169
  304. package/src/native/Float.spec.ts +0 -51
  305. package/src/native/Float.ts +0 -136
  306. package/src/native/Json.ts +0 -147
  307. package/src/native/Raw.spec.ts +0 -113
  308. package/src/native/Raw.ts +0 -171
  309. package/src/native/Set.spec.ts +0 -116
  310. package/src/native/Set.ts +0 -269
  311. package/src/native/Struct.spec.ts +0 -411
  312. package/src/native/Struct.ts +0 -338
  313. package/src/native/Text.spec.ts +0 -85
  314. package/src/native/Text.ts +0 -184
  315. package/src/packageDetect.ts +0 -11
  316. package/src/packageInfo.ts +0 -6
  317. package/src/primitive/F32.ts +0 -14
  318. package/src/primitive/F64.ts +0 -14
  319. package/src/primitive/I128.ts +0 -14
  320. package/src/primitive/I16.ts +0 -14
  321. package/src/primitive/I256.ts +0 -14
  322. package/src/primitive/I32.ts +0 -14
  323. package/src/primitive/I64.ts +0 -14
  324. package/src/primitive/I8.ts +0 -14
  325. package/src/primitive/ISize.ts +0 -21
  326. package/src/primitive/U128.ts +0 -14
  327. package/src/primitive/U16.ts +0 -14
  328. package/src/primitive/U256.ts +0 -14
  329. package/src/primitive/U32.ts +0 -14
  330. package/src/primitive/U64.ts +0 -14
  331. package/src/primitive/U8.ts +0 -14
  332. package/src/primitive/USize.ts +0 -21
  333. package/src/test/performance.ts +0 -61
  334. package/src/types/codec.ts +0 -140
  335. package/src/types/interfaces.ts +0 -98
  336. package/src/types/registry.ts +0 -86
  337. package/src/utils/compareArray.ts +0 -22
  338. package/src/utils/compareMap.ts +0 -40
  339. package/src/utils/compareSet.ts +0 -23
  340. package/src/utils/decodeU8a.ts +0 -123
  341. package/src/utils/sanitize.spec.ts +0 -89
  342. package/src/utils/sanitize.ts +0 -290
  343. package/src/utils/sortValues.ts +0 -103
  344. package/src/utils/toConstructors.ts +0 -46
  345. package/src/utils/typesToMap.ts +0 -14
  346. package/src/utils/util.ts +0 -8
  347. package/tsconfig.build.json +0 -16
  348. package/tsconfig.build.tsbuildinfo +0 -1
  349. package/tsconfig.spec.json +0 -21
  350. /package/{build/abstract → abstract}/Array.d.ts +0 -0
  351. /package/{build/abstract → abstract}/Base.d.ts +0 -0
  352. /package/{build/abstract → abstract}/Int.d.ts +0 -0
  353. /package/{build/abstract → abstract}/Object.d.ts +0 -0
  354. /package/{build/abstract → abstract}/index.d.ts +0 -0
  355. /package/{build/base → base}/Compact.d.ts +0 -0
  356. /package/{build/base → base}/DoNotConstruct.d.ts +0 -0
  357. /package/{build/base → base}/Enum.d.ts +0 -0
  358. /package/{build/base → base}/Null.d.ts +0 -0
  359. /package/{build/base → base}/Option.d.ts +0 -0
  360. /package/{build/base → base}/Result.d.ts +0 -0
  361. /package/{build/base → base}/Tuple.d.ts +0 -0
  362. /package/{build/base → base}/Vec.d.ts +0 -0
  363. /package/{build/base → base}/VecAny.d.ts +0 -0
  364. /package/{build/base → base}/VecFixed.d.ts +0 -0
  365. /package/{build/base → base}/index.d.ts +0 -0
  366. /package/{build/bundle.d.ts → bundle.d.ts} +0 -0
  367. /package/{build → cjs}/extended/BTreeMap.d.ts +0 -0
  368. /package/{build → cjs}/extended/BTreeSet.d.ts +0 -0
  369. /package/{build → cjs}/extended/BitVec.d.ts +0 -0
  370. /package/{build → cjs}/extended/Bytes.d.ts +0 -0
  371. /package/{build → cjs}/extended/HashMap.d.ts +0 -0
  372. /package/{build → cjs}/extended/Linkage.d.ts +0 -0
  373. /package/{build → cjs}/extended/Map.d.ts +0 -0
  374. /package/{build → cjs}/extended/OptionBool.d.ts +0 -0
  375. /package/{build → cjs}/extended/Range.d.ts +0 -0
  376. /package/{build → cjs}/extended/RangeInclusive.d.ts +0 -0
  377. /package/{build → cjs}/extended/Type.d.ts +0 -0
  378. /package/{build → cjs}/extended/U8aFixed.d.ts +0 -0
  379. /package/{build → cjs}/extended/WrapperKeepOpaque.d.ts +0 -0
  380. /package/{build → cjs}/extended/WrapperOpaque.d.ts +0 -0
  381. /package/{build → cjs}/extended/index.d.ts +0 -0
  382. /package/{build → cjs}/index.d.ts +0 -0
  383. /package/{build → cjs}/native/Bool.d.ts +0 -0
  384. /package/{build → cjs}/native/Date.d.ts +0 -0
  385. /package/{build → cjs}/native/Float.d.ts +0 -0
  386. /package/{build → cjs}/native/Json.d.ts +0 -0
  387. /package/{build → cjs}/native/Raw.d.ts +0 -0
  388. /package/{build → cjs}/native/Set.d.ts +0 -0
  389. /package/{build → cjs}/native/Struct.d.ts +0 -0
  390. /package/{build → cjs}/native/Text.d.ts +0 -0
  391. /package/{build → cjs}/native/index.d.ts +0 -0
  392. /package/{build → cjs}/packageDetect.d.ts +0 -0
  393. /package/{build → cjs}/packageInfo.d.ts +0 -0
  394. /package/{build → cjs}/primitive/F32.d.ts +0 -0
  395. /package/{build → cjs}/primitive/F64.d.ts +0 -0
  396. /package/{build → cjs}/primitive/I128.d.ts +0 -0
  397. /package/{build → cjs}/primitive/I16.d.ts +0 -0
  398. /package/{build → cjs}/primitive/I256.d.ts +0 -0
  399. /package/{build → cjs}/primitive/I32.d.ts +0 -0
  400. /package/{build → cjs}/primitive/I64.d.ts +0 -0
  401. /package/{build → cjs}/primitive/I8.d.ts +0 -0
  402. /package/{build → cjs}/primitive/ISize.d.ts +0 -0
  403. /package/{build → cjs}/primitive/U128.d.ts +0 -0
  404. /package/{build → cjs}/primitive/U16.d.ts +0 -0
  405. /package/{build → cjs}/primitive/U256.d.ts +0 -0
  406. /package/{build → cjs}/primitive/U32.d.ts +0 -0
  407. /package/{build → cjs}/primitive/U64.d.ts +0 -0
  408. /package/{build → cjs}/primitive/U8.d.ts +0 -0
  409. /package/{build → cjs}/primitive/USize.d.ts +0 -0
  410. /package/{build → cjs}/primitive/index.d.ts +0 -0
  411. /package/{build → cjs}/types/helpers.d.ts +0 -0
  412. /package/{build → cjs}/types/index.d.ts +0 -0
  413. /package/{build → cjs}/types/interfaces.d.ts +0 -0
  414. /package/{build → cjs}/types/registry.d.ts +0 -0
  415. /package/{build → cjs}/utils/compareArray.d.ts +0 -0
  416. /package/{build → cjs}/utils/compareMap.d.ts +0 -0
  417. /package/{build → cjs}/utils/compareSet.d.ts +0 -0
  418. /package/{build → cjs}/utils/decodeU8a.d.ts +0 -0
  419. /package/{build → cjs}/utils/index.d.ts +0 -0
  420. /package/{build → cjs}/utils/sanitize.d.ts +0 -0
  421. /package/{build → cjs}/utils/sortValues.d.ts +0 -0
  422. /package/{build → cjs}/utils/toConstructors.d.ts +0 -0
  423. /package/{build → cjs}/utils/typesToMap.d.ts +0 -0
  424. /package/{build → cjs}/utils/util.d.ts +0 -0
@@ -1,56 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { AnyTuple, CodecClass, INumber, Registry } from '../types/index.js';
5
-
6
- import { Tuple } from '../base/Tuple.js';
7
-
8
- type RangeType = 'Range' | 'RangeInclusive';
9
-
10
- interface Options {
11
- rangeName?: RangeType;
12
- }
13
-
14
- /**
15
- * @name Range
16
- * @description
17
- * Rust `Range<T>` representation
18
- */
19
- export class Range<T extends INumber> extends Tuple {
20
- #rangeName: RangeType;
21
-
22
- constructor (registry: Registry, Type: CodecClass<T> | string, value?: AnyTuple, { rangeName = 'Range' }: Options = {}) {
23
- super(registry, [Type, Type], value);
24
-
25
- this.#rangeName = rangeName;
26
- }
27
-
28
- public static override with <T extends INumber> (Type: CodecClass<T> | string): CodecClass<Range<T>> {
29
- return class extends Range<T> {
30
- constructor (registry: Registry, value?: AnyTuple) {
31
- super(registry, Type, value);
32
- }
33
- };
34
- }
35
-
36
- /**
37
- * @description Returns the starting range value
38
- */
39
- public get start (): T {
40
- return this[0] as T;
41
- }
42
-
43
- /**
44
- * @description Returns the ending range value
45
- */
46
- public get end (): T {
47
- return this[1] as T;
48
- }
49
-
50
- /**
51
- * @description Returns the base runtime type name for this instance
52
- */
53
- public override toRawType (): string {
54
- return `${this.#rangeName}<${this.start.toRawType()}>`;
55
- }
56
- }
@@ -1,20 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { AnyTuple, CodecClass, INumber, Registry } from '../types/index.js';
5
-
6
- import { Range } from './Range.js';
7
-
8
- export class RangeInclusive<T extends INumber = INumber> extends Range<T> {
9
- constructor (registry: Registry, Type: CodecClass<T> | string, value?: AnyTuple) {
10
- super(registry, Type, value, { rangeName: 'RangeInclusive' });
11
- }
12
-
13
- public static override with <T extends INumber> (Type: CodecClass<T> | string): CodecClass<RangeInclusive<T>> {
14
- return class extends RangeInclusive<T> {
15
- constructor (registry: Registry, value?: AnyTuple) {
16
- super(registry, Type, value);
17
- }
18
- };
19
- }
20
- }
@@ -1,118 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- /// <reference types="@pezkuwi/dev-test/globals.d.ts" />
5
-
6
- import { TypeRegistry } from '@pezkuwi/types';
7
- import { Text, Type } from '@pezkuwi/types-codec';
8
- import { stringToU8a, u8aConcat } from '@pezkuwi/util';
9
-
10
- describe('Type', (): void => {
11
- const registry = new TypeRegistry();
12
-
13
- it('fails to cleanup invalid boxes', (): void => {
14
- expect(
15
- (): Type => new Type(registry, 'Box<Proposal')
16
- ).toThrow(/find closing matching/);
17
- });
18
-
19
- it('cleans up tuples with a single value', (): void => {
20
- expect(
21
- new Type(registry, '(AccountId)').toString()
22
- ).toEqual('AccountId');
23
- });
24
-
25
- it('does not touch tuples with multiple values', (): void => {
26
- expect(
27
- new Type(registry, '(AccountId, Balance)').toString()
28
- ).toEqual('(AccountId,Balance)');
29
- });
30
-
31
- it('handles nested types', (): void => {
32
- expect(
33
- new Type(registry, 'Box<Vec<AccountId>>').toString()
34
- ).toEqual('Vec<AccountId>');
35
- });
36
-
37
- it('handles nested types (embedded)', (): void => {
38
- expect(
39
- new Type(registry, '(u32, Box<Vec<AccountId>>)').toString()
40
- ).toEqual('(u32,Vec<AccountId>)');
41
- });
42
-
43
- it('handles aliasses, multiples per line', (): void => {
44
- expect(
45
- new Type(registry, '(Vec<u8>, AccountId, Vec<u8>)').toString()
46
- ).toEqual('(Bytes,AccountId,Bytes)');
47
- });
48
-
49
- it('removes whitespaces', (): void => {
50
- expect(
51
- new Type(registry, 'T :: AccountId').toString()
52
- ).toEqual('AccountId');
53
- });
54
-
55
- it('changes PairOf<T> -> (T, T)', (): void => {
56
- expect(
57
- new Type(registry, 'PairOf<T::Balance>').toString()
58
- ).toEqual('(Balance,Balance)');
59
- });
60
-
61
- it('changes PairOf<T> (embedded) -> (T, T)', (): void => {
62
- expect(
63
- new Type(registry, '(Vec<u8>, PairOf<T::Balance>, Vec<AccountId>)').toString()
64
- ).toEqual('(Bytes,(Balance,Balance),Vec<AccountId>)');
65
- });
66
-
67
- it('changes () -> ()', (): void => {
68
- expect(
69
- new Type(registry, '()').toString()
70
- ).toEqual('()');
71
- });
72
-
73
- it('has the sanitized', (): void => {
74
- expect(
75
- new Type(
76
- registry,
77
- new Text(registry, ' Box<Proposal> ')
78
- ).toString()
79
- ).toEqual('Proposal'); // eslint-disable-line
80
- });
81
-
82
- it('unwraps compact', (): void => {
83
- expect(
84
- new Type(registry, '<T::Balance as HasCompact>::Type').toString()
85
- ).toEqual('Compact<Balance>');
86
- });
87
-
88
- it('handles InherentOfflineReport', (): void => {
89
- expect(
90
- new Type(registry, '<T::InherentOfflineReport as InherentOfflineReport>::Inherent').toString()
91
- ).toEqual('InherentOfflineReport');
92
- });
93
-
94
- it('encodes correctly via toU8a()', (): void => {
95
- const type = 'Compact<Balance>';
96
-
97
- expect(new Text(registry, type).toU8a()).toEqual(
98
- u8aConcat(
99
- new Uint8Array([type.length << 2]),
100
- stringToU8a(type)
101
- )
102
- );
103
- });
104
-
105
- it('creates a decodable U8a for sanitized types', (): void => {
106
- const original = '<T::InherentOfflineReport as InherentOfflineReport>::Inherent';
107
- const expected = 'InherentOfflineReport';
108
- const u8a = new Type(registry, original).toU8a();
109
- const decoded = new Type(registry, u8a);
110
-
111
- expect(decoded.encodedLength).toEqual(original.length + 1); // extra byte for length
112
- expect(decoded.toString()).toEqual(expected);
113
- });
114
-
115
- it('has the correct raw', (): void => {
116
- expect(new Type(registry).toRawType()).toEqual('Type');
117
- });
118
- });
@@ -1,29 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { Registry } from '../types/index.js';
5
-
6
- import { Text } from '../native/Text.js';
7
- import { sanitize } from '../utils/index.js';
8
-
9
- /**
10
- * @name Type
11
- * @description
12
- * This is a extended version of Text, specifically to handle types. Here we rely fully
13
- * on what Text provides us, however we also adjust the types received from the runtime,
14
- * i.e. we remove the `T::` prefixes found in some types for consistency across implementation.
15
- */
16
- export class Type extends Text {
17
- constructor (registry: Registry, value: Text | Uint8Array | string = '') {
18
- super(registry, value);
19
-
20
- this.setOverride(sanitize(this.toString()));
21
- }
22
-
23
- /**
24
- * @description Returns the base runtime type name for this instance
25
- */
26
- public override toRawType (): string {
27
- return 'Type';
28
- }
29
- }
@@ -1,117 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- /// <reference types="@pezkuwi/dev-test/globals.d.ts" />
5
-
6
- import { TypeRegistry } from '@pezkuwi/types';
7
- import { U8aFixed } from '@pezkuwi/types-codec';
8
-
9
- describe('U8aFixed', (): void => {
10
- const registry = new TypeRegistry();
11
-
12
- describe('construction', (): void => {
13
- it('allows empty values', (): void => {
14
- expect(
15
- new U8aFixed(registry).toHex()
16
- ).toEqual('0x0000000000000000000000000000000000000000000000000000000000000000');
17
- });
18
-
19
- it('allows construction via with', (): void => {
20
- expect(
21
- new (U8aFixed.with(64))(registry).bitLength()
22
- ).toEqual(64);
23
- });
24
-
25
- it('constructs from hex', (): void => {
26
- expect(
27
- new (U8aFixed.with(32))(registry, '0x01020304').toU8a()
28
- ).toEqual(
29
- new Uint8Array([0x01, 0x02, 0x03, 0x04])
30
- );
31
- });
32
-
33
- it('constructs from number[]', (): void => {
34
- expect(
35
- new (U8aFixed.with(32))(registry, [0x02, 0x03, 0x00, 0x00]).toU8a()
36
- ).toEqual(
37
- new Uint8Array([0x02, 0x03, 0x00, 0x00])
38
- );
39
- });
40
-
41
- it('constructs when passed Uint8Array is >= length', (): void => {
42
- expect(
43
- new (U8aFixed.with(32))(registry, new Uint8Array([0x00, 0x01, 0x02, 0x03])).toU8a()
44
- ).toEqual(
45
- new Uint8Array([0x00, 0x01, 0x02, 0x03])
46
- );
47
- expect(
48
- new (U8aFixed.with(32))(registry, new Uint8Array([0x00, 0x01, 0x02, 0x03, 0x04, 0x05])).toU8a()
49
- ).toEqual(
50
- new Uint8Array([0x00, 0x01, 0x02, 0x03])
51
- );
52
- });
53
-
54
- it('constructs when passed string is === length', (): void => {
55
- expect(
56
- new (U8aFixed.with(32))(registry, '1234').toU8a()
57
- ).toEqual(
58
- new Uint8Array([49, 50, 51, 52])
59
- );
60
- });
61
-
62
- it('fails construction when passed string is > length', (): void => {
63
- expect(
64
- () => new (U8aFixed.with(32))(registry, '0x000102030405').toU8a()
65
- ).toThrow(/Expected input with 4 bytes/);
66
- expect(
67
- () => new (U8aFixed.with(256))(registry, '1363HWTPzDrzAQ6ChFiMU6mP4b6jmQid2ae55JQcKtZnpLGv')
68
- ).toThrow(/Expected input with 32 bytes/);
69
- });
70
- });
71
-
72
- describe('utils', (): void => {
73
- let u8a: U8aFixed;
74
-
75
- beforeEach((): void => {
76
- u8a = new U8aFixed(registry, [1, 2, 3, 4], 32);
77
- });
78
-
79
- it('limits the length', (): void => {
80
- expect(u8a.length).toEqual(4);
81
- });
82
-
83
- it('exposes the correct bitLength', (): void => {
84
- expect(u8a.bitLength()).toEqual(32);
85
- });
86
-
87
- it('allows wrapping of a pre-existing instance', (): void => {
88
- expect(
89
- u8a.toU8a()
90
- ).toEqual(new Uint8Array([1, 2, 3, 4]));
91
- });
92
-
93
- it('has a sane toRawType', (): void => {
94
- expect(u8a.toRawType()).toEqual('[u8;4]');
95
- });
96
-
97
- it('has a sane inspect', (): void => {
98
- expect(u8a.inspect()).toEqual({
99
- outer: [new Uint8Array([1, 2, 3, 4])]
100
- });
101
- });
102
- });
103
-
104
- describe('static with', (): void => {
105
- it('allows default toRawType', (): void => {
106
- expect(
107
- new (U8aFixed.with(64))(registry).toRawType()
108
- ).toEqual('[u8;8]');
109
- });
110
-
111
- it('allows toRawType override', (): void => {
112
- expect(
113
- new (U8aFixed.with(64, 'SomethingElse'))(registry).toRawType()
114
- ).toEqual('SomethingElse');
115
- });
116
- });
117
- });
@@ -1,57 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { AnyU8a, CodecClass, Registry, U8aBitLength } from '../types/index.js';
5
-
6
- import { isU8a, u8aToU8a } from '@pezkuwi/util';
7
-
8
- import { Raw } from '../native/Raw.js';
9
-
10
- /** @internal */
11
- function decodeU8aFixed (value: AnyU8a, bitLength: U8aBitLength): [AnyU8a, number] {
12
- const u8a = u8aToU8a(value);
13
- const byteLength = bitLength / 8;
14
-
15
- if (!u8a.length) {
16
- return [new Uint8Array(byteLength), 0];
17
- }
18
-
19
- if (isU8a(value) ? u8a.length < byteLength : u8a.length !== byteLength) {
20
- throw new Error(`Expected input with ${byteLength} bytes (${bitLength} bits), found ${u8a.length} bytes`);
21
- }
22
-
23
- return [u8a.subarray(0, byteLength), byteLength];
24
- }
25
-
26
- /**
27
- * @name U8aFixed
28
- * @description
29
- * A U8a that manages a a sequence of bytes up to the specified bitLength. Not meant
30
- * to be used directly, rather is should be subclassed with the specific lengths.
31
- */
32
- export class U8aFixed extends Raw {
33
- constructor (registry: Registry, value: AnyU8a = new Uint8Array(), bitLength: U8aBitLength = 256) {
34
- const [u8a, decodedLength] = decodeU8aFixed(value, bitLength);
35
-
36
- super(registry, u8a, decodedLength);
37
- }
38
-
39
- public static with (bitLength: U8aBitLength, typeName?: string): CodecClass<U8aFixed> {
40
- return class extends U8aFixed {
41
- constructor (registry: Registry, value?: AnyU8a) {
42
- super(registry, value, bitLength);
43
- }
44
-
45
- public override toRawType (): string {
46
- return typeName || super.toRawType();
47
- }
48
- };
49
- }
50
-
51
- /**
52
- * @description Returns the base runtime type name for this instance
53
- */
54
- public override toRawType (): string {
55
- return `[u8;${this.length}]`;
56
- }
57
- }
@@ -1,101 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- /// <reference types="@pezkuwi/dev-test/globals.d.ts" />
5
-
6
- import { TypeRegistry } from '@pezkuwi/types';
7
- import { Bytes, Raw, u32, WrapperKeepOpaque } from '@pezkuwi/types-codec';
8
-
9
- describe('WrapperKeepOpaque', (): void => {
10
- const registry = new TypeRegistry();
11
- const u8au32 = new Uint8Array([4 << 2, 135, 214, 18, 0]);
12
- const ClazzUSize = WrapperKeepOpaque.with('usize');
13
- const ClazzU32 = WrapperKeepOpaque.with(u32);
14
-
15
- it('has handles non-decodable values', (): void => {
16
- const usize = new ClazzUSize(registry, u8au32);
17
-
18
- expect(usize.isDecoded).toEqual(false);
19
- expect(() => usize.unwrap()).toThrow(/undecodable value/);
20
-
21
- expect(usize.toHex()).toEqual('0x87d61200');
22
- expect(usize.toHuman()).toEqual('0x87d61200');
23
- expect(usize.toJSON()).toEqual('0x87d61200');
24
- expect(usize.toRawType()).toEqual('WrapperKeepOpaque<usize>');
25
- expect(usize.toString()).toEqual('0x87d61200');
26
- expect(usize.toU8a()).toEqual(u8au32);
27
- });
28
-
29
- it('has handles decodable values', (): void => {
30
- const u32 = new ClazzU32(registry, u8au32);
31
-
32
- expect(u32.isDecoded).toEqual(true);
33
- expect(u32.unwrap().toNumber()).toEqual(1234567);
34
-
35
- expect(u32.toHex()).toEqual('0x87d61200');
36
- expect(u32.toHuman()).toEqual('1,234,567');
37
- expect(u32.toJSON()).toEqual('0x87d61200');
38
- expect(u32.toRawType()).toEqual('WrapperKeepOpaque<u32>');
39
- expect(u32.toString()).toEqual('1234567');
40
- expect(u32.toU8a()).toEqual(u8au32);
41
- });
42
-
43
- it('handles values from Raw', (): void => {
44
- const u32 = new ClazzU32(registry, new Raw(registry, u8au32.slice(1)));
45
-
46
- expect(u32.unwrap().toNumber()).toEqual(1234567);
47
- });
48
-
49
- it('handles values from Bytes', (): void => {
50
- const u32 = new ClazzU32(registry, new Bytes(registry, u8au32));
51
-
52
- expect(u32.unwrap().toNumber()).toEqual(1234567);
53
- });
54
-
55
- it('has a sane inspect (non-decodable)', (): void => {
56
- expect(
57
- new ClazzUSize(registry, u8au32).inspect()
58
- ).toEqual({
59
- outer: [new Uint8Array([4 << 2]), new Uint8Array([0x87, 0xd6, 0x12, 0x00])]
60
- });
61
- });
62
-
63
- it('has a sane inspect (decodable)', (): void => {
64
- expect(
65
- new ClazzU32(registry, u8au32).inspect()
66
- ).toEqual({
67
- inner: [{ outer: [new Uint8Array([0x87, 0xd6, 0x12, 0x00])] }],
68
- outer: [new Uint8Array([4 << 2])]
69
- });
70
- });
71
-
72
- it('has a sane in-wrapper representation', (): void => {
73
- const set = registry.createType(
74
- 'BTreeSet<OpaquePeerId>',
75
- // prefix
76
- '0x' +
77
- // 4 items, 16 >> 2
78
- '10' +
79
- // opaque length
80
- '9c' +
81
- // bytes length
82
- '98' + '0024080112201ce5f00ef6e89374afb625f1ae4c1546d31234e87e3c3f51a62b91dd6bfa57df' +
83
- // repeat the same for the next 3...
84
- '9c98002408011220876a7b4984f98006dc8d666e28b60de307309835d775e7755cc770328cdacf2e9c98002408011220c81bc1d7057a1511eb9496f056f6f53cdfe0e14c8bd5ffca47c70a8d76c1326d9c98002408011220dacde7714d8551f674b8bb4b54239383c76a2b286fa436e93b2b7eb226bf4de7'
85
- );
86
- const val = [...set.values()];
87
-
88
- expect(val.map((v) => v.toHex())).toEqual([
89
- '0x980024080112201ce5f00ef6e89374afb625f1ae4c1546d31234e87e3c3f51a62b91dd6bfa57df',
90
- '0x98002408011220876a7b4984f98006dc8d666e28b60de307309835d775e7755cc770328cdacf2e',
91
- '0x98002408011220c81bc1d7057a1511eb9496f056f6f53cdfe0e14c8bd5ffca47c70a8d76c1326d',
92
- '0x98002408011220dacde7714d8551f674b8bb4b54239383c76a2b286fa436e93b2b7eb226bf4de7'
93
- ]);
94
- expect(val.map((v) => v.toHuman())).toEqual([
95
- '0x0024080112201ce5f00ef6e89374afb625f1ae4c1546d31234e87e3c3f51a62b91dd6bfa57df',
96
- '0x002408011220876a7b4984f98006dc8d666e28b60de307309835d775e7755cc770328cdacf2e',
97
- '0x002408011220c81bc1d7057a1511eb9496f056f6f53cdfe0e14c8bd5ffca47c70a8d76c1326d',
98
- '0x002408011220dacde7714d8551f674b8bb4b54239383c76a2b286fa436e93b2b7eb226bf4de7'
99
- ]);
100
- });
101
- });
@@ -1,128 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { AnyJson, AnyU8a, Codec, CodecClass, Inspect, Registry } from '../types/index.js';
5
-
6
- import { compactAddLength, compactStripLength, compactToU8a, isHex, isU8a, u8aToU8a } from '@pezkuwi/util';
7
-
8
- import { Raw } from '../native/Raw.js';
9
- import { typeToConstructor } from '../utils/index.js';
10
- import { Bytes } from './Bytes.js';
11
-
12
- type OpaqueName = 'WrapperKeepOpaque' | 'WrapperOpaque';
13
-
14
- interface Options {
15
- opaqueName?: OpaqueName;
16
- }
17
-
18
- function decodeRaw<T extends Codec> (registry: Registry, typeName: CodecClass<T> | string, value?: unknown): [CodecClass<T>, T | null, AnyU8a] {
19
- const Type = typeToConstructor(registry, typeName);
20
-
21
- if (isU8a(value) || isHex(value)) {
22
- try {
23
- const [, u8a] = isHex(value)
24
- ? [0, u8aToU8a(value)]
25
- : (value instanceof Raw)
26
- ? [0, value.subarray()]
27
- : compactStripLength(value);
28
-
29
- return [Type, new Type(registry, u8a), value];
30
- } catch {
31
- return [Type, null, value];
32
- }
33
- }
34
-
35
- const instance = new Type(registry, value);
36
-
37
- return [Type, instance, compactAddLength(instance.toU8a())];
38
- }
39
-
40
- export class WrapperKeepOpaque<T extends Codec> extends Bytes {
41
- readonly #Type: CodecClass<T>;
42
- readonly #decoded: T | null;
43
- readonly #opaqueName: OpaqueName;
44
-
45
- constructor (registry: Registry, typeName: CodecClass<T> | string, value?: unknown, { opaqueName = 'WrapperKeepOpaque' }: Options = {}) {
46
- const [Type, decoded, u8a] = decodeRaw(registry, typeName, value);
47
-
48
- super(registry, u8a);
49
-
50
- this.#Type = Type;
51
- this.#decoded = decoded;
52
- this.#opaqueName = opaqueName;
53
- }
54
-
55
- public static with<T extends Codec> (Type: CodecClass<T> | string): CodecClass<WrapperKeepOpaque<T>> {
56
- return class extends WrapperKeepOpaque<T> {
57
- constructor (registry: Registry, value?: AnyU8a | T) {
58
- super(registry, Type, value);
59
- }
60
- };
61
- }
62
-
63
- /**
64
- * @description Checks if the wrapper is decodable
65
- */
66
- public get isDecoded (): boolean {
67
- return !!this.#decoded;
68
- }
69
-
70
- /**
71
- * @description Returns a breakdown of the hex encoding for this Codec
72
- */
73
- public override inspect (): Inspect {
74
- return this.#decoded
75
- ? {
76
- inner: [this.#decoded.inspect()],
77
- outer: [compactToU8a(this.length)]
78
- }
79
- : {
80
- outer: [compactToU8a(this.length), this.toU8a(true)]
81
- };
82
- }
83
-
84
- /**
85
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
86
- */
87
- public override toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson {
88
- return this.#decoded
89
- ? this.#decoded.toHuman(isExtended, disableAscii)
90
- : super.toHuman(isExtended, disableAscii);
91
- }
92
-
93
- /**
94
- * @description Converts the value in a best-fit primitive form
95
- */
96
- public override toPrimitive (disableAscii?: boolean): any {
97
- return this.#decoded
98
- ? this.#decoded.toPrimitive(disableAscii)
99
- : super.toPrimitive(disableAscii);
100
- }
101
-
102
- /**
103
- * @description Returns the base runtime type name for this instance
104
- */
105
- public override toRawType (): string {
106
- return `${this.#opaqueName}<${this.registry.getClassName(this.#Type) || (this.#decoded ? this.#decoded.toRawType() : new this.#Type(this.registry).toRawType())}>`;
107
- }
108
-
109
- /**
110
- * @description Converts the Object to to a string (either decoded or bytes)
111
- */
112
- public override toString (): string {
113
- return this.#decoded
114
- ? this.#decoded.toString()
115
- : super.toString();
116
- }
117
-
118
- /**
119
- * @description Returns the decoded that the WrapperKeepOpaque represents (if available), throws if non-decodable
120
- */
121
- public unwrap (): T {
122
- if (!this.#decoded) {
123
- throw new Error(`${this.#opaqueName}: unwrapping an undecodable value`);
124
- }
125
-
126
- return this.#decoded;
127
- }
128
- }
@@ -1,58 +0,0 @@
1
- // Copyright 2017-2025 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- /// <reference types="@pezkuwi/dev-test/globals.d.ts" />
5
-
6
- import { TypeRegistry } from '@pezkuwi/types';
7
- import { WrapperOpaque } from '@pezkuwi/types-codec';
8
- import { u8aConcat } from '@pezkuwi/util';
9
-
10
- describe('WrapperOpaque', (): void => {
11
- const registry = new TypeRegistry();
12
- const u8au32 = new Uint8Array([4 << 2, 135, 214, 18, 0]);
13
-
14
- it('u8a encodes a wrapped u32 correctly', (): void => {
15
- expect(
16
- new WrapperOpaque(registry, 'u32', 1234567).toU8a()
17
- ).toEqual(u8au32);
18
- });
19
-
20
- it('u8a decodes a wrapped u32 correctly', (): void => {
21
- expect(
22
- new WrapperOpaque(registry, 'u32', u8au32).toU8a()
23
- ).toEqual(u8au32);
24
- });
25
-
26
- it('u8a encodes a wrapped option correctly', (): void => {
27
- expect(
28
- new WrapperOpaque(registry, 'Option<u32>', 1234567).toU8a()
29
- ).toEqual(u8aConcat([5 << 2, 1], u8au32.slice(1)));
30
- });
31
-
32
- it('hex encodes a wrapped u32 correctly', (): void => {
33
- expect(
34
- new WrapperOpaque(registry, 'u32', '0x12345678').toHex()
35
- ).toEqual('0x12345678');
36
- });
37
-
38
- it('has the correct unwrap', (): void => {
39
- expect(
40
- new WrapperOpaque(registry, 'u32', '0x12345678').unwrap().toHex()
41
- ).toEqual('0x78563412');
42
- });
43
-
44
- it('has the correct toRawType', (): void => {
45
- expect(
46
- new WrapperOpaque(registry, 'u32').toRawType()
47
- ).toEqual('WrapperOpaque<u32>');
48
- });
49
-
50
- it('has a sane inspect', (): void => {
51
- expect(
52
- new WrapperOpaque(registry, 'u32', '0x78563412').inspect()
53
- ).toEqual({
54
- inner: [{ outer: [new Uint8Array([0x78, 0x56, 0x34, 0x12])] }],
55
- outer: [new Uint8Array([4 << 2])]
56
- });
57
- });
58
- });