@pezkuwi/types-codec 16.5.6 → 16.5.8

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 (758) hide show
  1. package/build/LICENSE +201 -0
  2. package/build/README.md +3 -0
  3. package/build/abstract/Array.d.ts +89 -0
  4. package/build/abstract/Array.js +166 -0
  5. package/build/abstract/Base.d.ts +75 -0
  6. package/build/abstract/Base.js +101 -0
  7. package/build/abstract/Int.d.ts +80 -0
  8. package/build/abstract/Int.js +226 -0
  9. package/build/abstract/Object.d.ts +67 -0
  10. package/build/abstract/Object.js +40 -0
  11. package/build/abstract/index.d.ts +3 -0
  12. package/build/abstract/index.js +3 -0
  13. package/build/base/Compact.d.ts +88 -0
  14. package/build/base/Compact.js +159 -0
  15. package/build/base/DoNotConstruct.d.ts +63 -0
  16. package/build/base/DoNotConstruct.js +95 -0
  17. package/build/base/Enum.d.ts +118 -0
  18. package/build/base/Enum.js +369 -0
  19. package/build/base/Int.d.ts +16 -0
  20. package/build/base/Int.js +26 -0
  21. package/build/base/Null.d.ts +56 -0
  22. package/build/base/Null.js +77 -0
  23. package/build/base/Option.d.ts +94 -0
  24. package/build/base/Option.js +232 -0
  25. package/build/base/Result.d.ts +38 -0
  26. package/build/base/Result.js +63 -0
  27. package/build/base/Tuple.d.ts +42 -0
  28. package/build/base/Tuple.js +110 -0
  29. package/build/base/UInt.d.ts +15 -0
  30. package/build/base/UInt.js +23 -0
  31. package/build/base/Vec.d.ts +28 -0
  32. package/build/base/Vec.js +102 -0
  33. package/build/base/VecAny.d.ts +15 -0
  34. package/build/base/VecAny.js +17 -0
  35. package/build/base/VecFixed.d.ts +30 -0
  36. package/build/base/VecFixed.js +67 -0
  37. package/build/base/index.d.ts +12 -0
  38. package/build/base/index.js +12 -0
  39. package/build/bundle.d.ts +7 -0
  40. package/build/bundle.js +7 -0
  41. package/build/cjs/abstract/Array.d.ts +89 -0
  42. package/build/cjs/abstract/Array.js +170 -0
  43. package/build/cjs/abstract/Base.d.ts +75 -0
  44. package/build/cjs/abstract/Base.js +105 -0
  45. package/build/cjs/abstract/Int.d.ts +80 -0
  46. package/build/cjs/abstract/Int.js +230 -0
  47. package/build/cjs/abstract/Object.d.ts +67 -0
  48. package/build/cjs/abstract/Object.js +44 -0
  49. package/build/cjs/abstract/index.d.ts +3 -0
  50. package/build/cjs/abstract/index.js +9 -0
  51. package/build/cjs/base/Compact.d.ts +88 -0
  52. package/build/cjs/base/Compact.js +163 -0
  53. package/build/cjs/base/DoNotConstruct.d.ts +63 -0
  54. package/build/cjs/base/DoNotConstruct.js +99 -0
  55. package/build/cjs/base/Enum.d.ts +118 -0
  56. package/build/cjs/base/Enum.js +373 -0
  57. package/build/cjs/base/Int.d.ts +16 -0
  58. package/build/cjs/base/Int.js +30 -0
  59. package/build/cjs/base/Null.d.ts +56 -0
  60. package/build/cjs/base/Null.js +81 -0
  61. package/build/cjs/base/Option.d.ts +94 -0
  62. package/build/cjs/base/Option.js +236 -0
  63. package/build/cjs/base/Result.d.ts +38 -0
  64. package/build/cjs/base/Result.js +67 -0
  65. package/build/cjs/base/Tuple.d.ts +42 -0
  66. package/build/cjs/base/Tuple.js +114 -0
  67. package/build/cjs/base/UInt.d.ts +15 -0
  68. package/build/cjs/base/UInt.js +27 -0
  69. package/build/cjs/base/Vec.d.ts +28 -0
  70. package/build/cjs/base/Vec.js +107 -0
  71. package/build/cjs/base/VecAny.d.ts +15 -0
  72. package/build/cjs/base/VecAny.js +21 -0
  73. package/build/cjs/base/VecFixed.d.ts +30 -0
  74. package/build/cjs/base/VecFixed.js +71 -0
  75. package/build/cjs/base/index.d.ts +12 -0
  76. package/build/cjs/base/index.js +27 -0
  77. package/build/cjs/bundle.d.ts +7 -0
  78. package/build/cjs/bundle.js +12 -0
  79. package/build/cjs/extended/BTreeMap.d.ts +5 -0
  80. package/build/cjs/extended/BTreeMap.js +14 -0
  81. package/build/cjs/extended/BTreeSet.d.ts +64 -0
  82. package/build/cjs/extended/BTreeSet.js +189 -0
  83. package/build/cjs/extended/BitVec.d.ts +37 -0
  84. package/build/cjs/extended/BitVec.js +112 -0
  85. package/build/cjs/extended/Bytes.d.ts +29 -0
  86. package/build/cjs/extended/Bytes.js +74 -0
  87. package/build/cjs/extended/HashMap.d.ts +5 -0
  88. package/build/cjs/extended/HashMap.js +14 -0
  89. package/build/cjs/extended/Linkage.d.ts +37 -0
  90. package/build/cjs/extended/Linkage.js +70 -0
  91. package/build/cjs/extended/Map.d.ts +59 -0
  92. package/build/cjs/extended/Map.js +204 -0
  93. package/build/cjs/extended/OptionBool.d.ts +36 -0
  94. package/build/cjs/extended/OptionBool.js +76 -0
  95. package/build/cjs/extended/Range.d.ts +29 -0
  96. package/build/cjs/extended/Range.js +42 -0
  97. package/build/cjs/extended/RangeInclusive.d.ts +6 -0
  98. package/build/cjs/extended/RangeInclusive.js +17 -0
  99. package/build/cjs/extended/Type.d.ts +16 -0
  100. package/build/cjs/extended/Type.js +25 -0
  101. package/build/cjs/extended/U8aFixed.d.ts +16 -0
  102. package/build/cjs/extended/U8aFixed.js +46 -0
  103. package/build/cjs/extended/WrapperKeepOpaque.d.ts +40 -0
  104. package/build/cjs/extended/WrapperKeepOpaque.js +103 -0
  105. package/build/cjs/extended/WrapperOpaque.d.ts +10 -0
  106. package/build/cjs/extended/WrapperOpaque.js +23 -0
  107. package/build/cjs/extended/index.d.ts +14 -0
  108. package/build/cjs/extended/index.js +32 -0
  109. package/build/cjs/index.d.ts +2 -0
  110. package/build/cjs/index.js +5 -0
  111. package/build/cjs/native/Bool.d.ts +71 -0
  112. package/build/cjs/native/Bool.js +113 -0
  113. package/build/cjs/native/Date.d.ts +84 -0
  114. package/build/cjs/native/Date.js +144 -0
  115. package/build/cjs/native/Float.d.ts +68 -0
  116. package/build/cjs/native/Float.js +111 -0
  117. package/build/cjs/native/Json.d.ts +69 -0
  118. package/build/cjs/native/Json.js +121 -0
  119. package/build/cjs/native/Raw.d.ts +87 -0
  120. package/build/cjs/native/Raw.js +144 -0
  121. package/build/cjs/native/Set.d.ts +84 -0
  122. package/build/cjs/native/Set.js +219 -0
  123. package/build/cjs/native/Struct.d.ts +106 -0
  124. package/build/cjs/native/Struct.data.js +4 -0
  125. package/build/cjs/native/Struct.js +264 -0
  126. package/build/cjs/native/Text.d.ts +77 -0
  127. package/build/cjs/native/Text.js +154 -0
  128. package/build/cjs/native/index.d.ts +8 -0
  129. package/build/cjs/native/index.js +22 -0
  130. package/build/cjs/package.json +3 -0
  131. package/build/cjs/packageDetect.d.ts +1 -0
  132. package/build/cjs/packageDetect.js +5 -0
  133. package/build/cjs/packageInfo.d.ts +6 -0
  134. package/build/cjs/packageInfo.js +4 -0
  135. package/build/cjs/primitive/F32.d.ts +11 -0
  136. package/build/cjs/primitive/F32.js +14 -0
  137. package/build/cjs/primitive/F64.d.ts +11 -0
  138. package/build/cjs/primitive/F64.js +14 -0
  139. package/build/cjs/primitive/I128.d.ts +11 -0
  140. package/build/cjs/primitive/I128.js +14 -0
  141. package/build/cjs/primitive/I16.d.ts +11 -0
  142. package/build/cjs/primitive/I16.js +14 -0
  143. package/build/cjs/primitive/I256.d.ts +11 -0
  144. package/build/cjs/primitive/I256.js +14 -0
  145. package/build/cjs/primitive/I32.d.ts +11 -0
  146. package/build/cjs/primitive/I32.js +14 -0
  147. package/build/cjs/primitive/I64.d.ts +11 -0
  148. package/build/cjs/primitive/I64.js +14 -0
  149. package/build/cjs/primitive/I8.d.ts +11 -0
  150. package/build/cjs/primitive/I8.js +14 -0
  151. package/build/cjs/primitive/ISize.d.ts +12 -0
  152. package/build/cjs/primitive/ISize.js +18 -0
  153. package/build/cjs/primitive/U128.d.ts +11 -0
  154. package/build/cjs/primitive/U128.js +14 -0
  155. package/build/cjs/primitive/U16.d.ts +11 -0
  156. package/build/cjs/primitive/U16.js +14 -0
  157. package/build/cjs/primitive/U256.d.ts +11 -0
  158. package/build/cjs/primitive/U256.js +14 -0
  159. package/build/cjs/primitive/U32.d.ts +11 -0
  160. package/build/cjs/primitive/U32.js +14 -0
  161. package/build/cjs/primitive/U64.d.ts +11 -0
  162. package/build/cjs/primitive/U64.js +14 -0
  163. package/build/cjs/primitive/U8.d.ts +11 -0
  164. package/build/cjs/primitive/U8.js +14 -0
  165. package/build/cjs/primitive/USize.d.ts +12 -0
  166. package/build/cjs/primitive/USize.js +18 -0
  167. package/build/cjs/primitive/index.d.ts +16 -0
  168. package/build/cjs/primitive/index.js +51 -0
  169. package/build/cjs/types/codec.d.ts +113 -0
  170. package/build/cjs/types/codec.js +2 -0
  171. package/build/cjs/types/helpers.d.ts +27 -0
  172. package/build/cjs/types/helpers.js +2 -0
  173. package/build/cjs/types/index.d.ts +4 -0
  174. package/build/cjs/types/index.js +7 -0
  175. package/build/cjs/types/interfaces.d.ts +74 -0
  176. package/build/cjs/types/interfaces.js +2 -0
  177. package/build/cjs/types/registry.d.ts +67 -0
  178. package/build/cjs/types/registry.js +2 -0
  179. package/build/cjs/utils/compareArray.d.ts +1 -0
  180. package/build/cjs/utils/compareArray.js +13 -0
  181. package/build/cjs/utils/compareMap.d.ts +1 -0
  182. package/build/cjs/utils/compareMap.js +30 -0
  183. package/build/cjs/utils/compareSet.d.ts +1 -0
  184. package/build/cjs/utils/compareSet.js +20 -0
  185. package/build/cjs/utils/decodeU8a.d.ts +26 -0
  186. package/build/cjs/utils/decodeU8a.js +105 -0
  187. package/build/cjs/utils/index.d.ts +8 -0
  188. package/build/cjs/utils/index.js +25 -0
  189. package/build/cjs/utils/sanitize.d.ts +15 -0
  190. package/build/cjs/utils/sanitize.js +233 -0
  191. package/build/cjs/utils/sortValues.d.ts +12 -0
  192. package/build/cjs/utils/sortValues.js +84 -0
  193. package/build/cjs/utils/toConstructors.d.ts +16 -0
  194. package/build/cjs/utils/toConstructors.js +40 -0
  195. package/build/cjs/utils/typesToMap.d.ts +2 -0
  196. package/build/cjs/utils/typesToMap.js +10 -0
  197. package/build/cjs/utils/util.d.ts +3 -0
  198. package/build/cjs/utils/util.js +7 -0
  199. package/build/extended/BTreeMap.d.ts +5 -0
  200. package/build/extended/BTreeMap.js +10 -0
  201. package/build/extended/BTreeSet.d.ts +64 -0
  202. package/build/extended/BTreeSet.js +185 -0
  203. package/build/extended/BitVec.d.ts +37 -0
  204. package/build/extended/BitVec.js +108 -0
  205. package/build/extended/Bytes.d.ts +29 -0
  206. package/build/extended/Bytes.js +70 -0
  207. package/build/extended/HashMap.d.ts +5 -0
  208. package/build/extended/HashMap.js +10 -0
  209. package/build/extended/Linkage.d.ts +37 -0
  210. package/build/extended/Linkage.js +65 -0
  211. package/build/extended/Map.d.ts +59 -0
  212. package/build/extended/Map.js +200 -0
  213. package/build/extended/OptionBool.d.ts +36 -0
  214. package/build/extended/OptionBool.js +72 -0
  215. package/build/extended/Range.d.ts +29 -0
  216. package/build/extended/Range.js +38 -0
  217. package/build/extended/RangeInclusive.d.ts +6 -0
  218. package/build/extended/RangeInclusive.js +13 -0
  219. package/build/extended/Type.d.ts +16 -0
  220. package/build/extended/Type.js +21 -0
  221. package/build/extended/U8aFixed.d.ts +16 -0
  222. package/build/extended/U8aFixed.js +42 -0
  223. package/build/extended/WrapperKeepOpaque.d.ts +40 -0
  224. package/build/extended/WrapperKeepOpaque.js +99 -0
  225. package/build/extended/WrapperOpaque.d.ts +10 -0
  226. package/build/extended/WrapperOpaque.js +19 -0
  227. package/build/extended/index.d.ts +14 -0
  228. package/build/extended/index.js +14 -0
  229. package/build/index.d.ts +2 -0
  230. package/build/index.js +2 -0
  231. package/build/native/Bool.d.ts +71 -0
  232. package/build/native/Bool.js +109 -0
  233. package/build/native/Date.d.ts +84 -0
  234. package/build/native/Date.js +140 -0
  235. package/build/native/Float.d.ts +68 -0
  236. package/build/native/Float.js +107 -0
  237. package/build/native/Json.d.ts +69 -0
  238. package/build/native/Json.js +117 -0
  239. package/build/native/Raw.d.ts +87 -0
  240. package/build/native/Raw.js +140 -0
  241. package/build/native/Set.d.ts +84 -0
  242. package/build/native/Set.js +215 -0
  243. package/build/native/Struct.d.ts +106 -0
  244. package/build/native/Struct.data.js +1 -0
  245. package/build/native/Struct.js +260 -0
  246. package/build/native/Text.d.ts +77 -0
  247. package/build/native/Text.js +150 -0
  248. package/build/native/index.d.ts +8 -0
  249. package/build/native/index.js +8 -0
  250. package/build/package.json +1149 -0
  251. package/build/packageDetect.d.ts +1 -0
  252. package/build/packageDetect.js +3 -0
  253. package/build/packageInfo.d.ts +6 -0
  254. package/build/packageInfo.js +1 -0
  255. package/build/primitive/F32.d.ts +11 -0
  256. package/build/primitive/F32.js +10 -0
  257. package/build/primitive/F64.d.ts +11 -0
  258. package/build/primitive/F64.js +10 -0
  259. package/build/primitive/I128.d.ts +11 -0
  260. package/build/primitive/I128.js +10 -0
  261. package/build/primitive/I16.d.ts +11 -0
  262. package/build/primitive/I16.js +10 -0
  263. package/build/primitive/I256.d.ts +11 -0
  264. package/build/primitive/I256.js +10 -0
  265. package/build/primitive/I32.d.ts +11 -0
  266. package/build/primitive/I32.js +10 -0
  267. package/build/primitive/I64.d.ts +11 -0
  268. package/build/primitive/I64.js +10 -0
  269. package/build/primitive/I8.d.ts +11 -0
  270. package/build/primitive/I8.js +10 -0
  271. package/build/primitive/ISize.d.ts +12 -0
  272. package/build/primitive/ISize.js +14 -0
  273. package/build/primitive/U128.d.ts +11 -0
  274. package/build/primitive/U128.js +10 -0
  275. package/build/primitive/U16.d.ts +11 -0
  276. package/build/primitive/U16.js +10 -0
  277. package/build/primitive/U256.d.ts +11 -0
  278. package/build/primitive/U256.js +10 -0
  279. package/build/primitive/U32.d.ts +11 -0
  280. package/build/primitive/U32.js +10 -0
  281. package/build/primitive/U64.d.ts +11 -0
  282. package/build/primitive/U64.js +10 -0
  283. package/build/primitive/U8.d.ts +11 -0
  284. package/build/primitive/U8.js +10 -0
  285. package/build/primitive/USize.d.ts +12 -0
  286. package/build/primitive/USize.js +14 -0
  287. package/build/primitive/index.d.ts +16 -0
  288. package/build/primitive/index.js +16 -0
  289. package/build/types/codec.d.ts +113 -0
  290. package/build/types/codec.js +1 -0
  291. package/build/types/helpers.d.ts +27 -0
  292. package/build/types/helpers.js +1 -0
  293. package/build/types/index.d.ts +4 -0
  294. package/build/types/index.js +4 -0
  295. package/build/types/interfaces.d.ts +74 -0
  296. package/build/types/interfaces.js +1 -0
  297. package/build/types/registry.d.ts +67 -0
  298. package/build/types/registry.js +1 -0
  299. package/build/utils/compareArray.d.ts +1 -0
  300. package/build/utils/compareArray.js +10 -0
  301. package/build/utils/compareMap.d.ts +1 -0
  302. package/build/utils/compareMap.js +27 -0
  303. package/build/utils/compareSet.d.ts +1 -0
  304. package/build/utils/compareSet.js +17 -0
  305. package/build/utils/decodeU8a.d.ts +26 -0
  306. package/build/utils/decodeU8a.js +100 -0
  307. package/build/utils/index.d.ts +8 -0
  308. package/build/utils/index.js +8 -0
  309. package/build/utils/sanitize.d.ts +15 -0
  310. package/build/utils/sanitize.js +219 -0
  311. package/build/utils/sortValues.d.ts +12 -0
  312. package/build/utils/sortValues.js +79 -0
  313. package/build/utils/toConstructors.d.ts +16 -0
  314. package/build/utils/toConstructors.js +35 -0
  315. package/build/utils/typesToMap.d.ts +2 -0
  316. package/build/utils/typesToMap.js +7 -0
  317. package/build/utils/util.d.ts +3 -0
  318. package/build/utils/util.js +4 -0
  319. package/build-deno/README.md +3 -0
  320. package/build-deno/abstract/Array.ts +211 -0
  321. package/build-deno/abstract/Base.ts +127 -0
  322. package/build-deno/abstract/Int.ts +267 -0
  323. package/build-deno/abstract/Object.ts +97 -0
  324. package/build-deno/abstract/index.ts +4 -0
  325. package/build-deno/base/Compact.ts +196 -0
  326. package/build-deno/base/DoNotConstruct.ts +116 -0
  327. package/build-deno/base/Enum.ts +457 -0
  328. package/build-deno/base/Int.ts +32 -0
  329. package/build-deno/base/Null.ts +94 -0
  330. package/build-deno/base/Option.ts +273 -0
  331. package/build-deno/base/Result.ts +77 -0
  332. package/build-deno/base/Tuple.ts +147 -0
  333. package/build-deno/base/UInt.ts +28 -0
  334. package/build-deno/base/Vec.ts +131 -0
  335. package/build-deno/base/VecAny.ts +21 -0
  336. package/build-deno/base/VecFixed.ts +90 -0
  337. package/build-deno/base/index.ts +13 -0
  338. package/build-deno/bundle.ts +9 -0
  339. package/build-deno/checkTypes.manual.ts +10 -0
  340. package/build-deno/extended/BTreeMap.ts +14 -0
  341. package/build-deno/extended/BTreeSet.ts +231 -0
  342. package/build-deno/extended/BitVec.ts +135 -0
  343. package/build-deno/extended/Bytes.ts +85 -0
  344. package/build-deno/extended/HashMap.ts +14 -0
  345. package/build-deno/extended/Linkage.ts +79 -0
  346. package/build-deno/extended/Map.ts +253 -0
  347. package/build-deno/extended/OptionBool.ts +91 -0
  348. package/build-deno/extended/Range.ts +54 -0
  349. package/build-deno/extended/RangeInclusive.ts +18 -0
  350. package/build-deno/extended/Type.ts +27 -0
  351. package/build-deno/extended/U8aFixed.ts +55 -0
  352. package/build-deno/extended/WrapperKeepOpaque.ts +126 -0
  353. package/build-deno/extended/WrapperOpaque.ts +25 -0
  354. package/build-deno/extended/index.ts +15 -0
  355. package/build-deno/index.ts +4 -0
  356. package/build-deno/mod.ts +2 -0
  357. package/build-deno/native/Bool.ts +135 -0
  358. package/build-deno/native/Date.ts +167 -0
  359. package/build-deno/native/Float.ts +134 -0
  360. package/build-deno/native/Json.ts +145 -0
  361. package/build-deno/native/Raw.ts +169 -0
  362. package/build-deno/native/Set.ts +267 -0
  363. package/build-deno/native/Struct.data.ts +2 -0
  364. package/build-deno/native/Struct.ts +336 -0
  365. package/build-deno/native/Text.ts +182 -0
  366. package/build-deno/native/index.ts +9 -0
  367. package/build-deno/packageDetect.ts +7 -0
  368. package/build-deno/packageInfo.ts +3 -0
  369. package/build-deno/primitive/F32.ts +12 -0
  370. package/build-deno/primitive/F64.ts +12 -0
  371. package/build-deno/primitive/I128.ts +12 -0
  372. package/build-deno/primitive/I16.ts +12 -0
  373. package/build-deno/primitive/I256.ts +12 -0
  374. package/build-deno/primitive/I32.ts +12 -0
  375. package/build-deno/primitive/I64.ts +12 -0
  376. package/build-deno/primitive/I8.ts +12 -0
  377. package/build-deno/primitive/ISize.ts +19 -0
  378. package/build-deno/primitive/U128.ts +12 -0
  379. package/build-deno/primitive/U16.ts +12 -0
  380. package/build-deno/primitive/U256.ts +12 -0
  381. package/build-deno/primitive/U32.ts +12 -0
  382. package/build-deno/primitive/U64.ts +12 -0
  383. package/build-deno/primitive/U8.ts +12 -0
  384. package/build-deno/primitive/USize.ts +19 -0
  385. package/build-deno/primitive/index.ts +17 -0
  386. package/build-deno/test/performance.ts +57 -0
  387. package/build-deno/types/codec.ts +138 -0
  388. package/build-deno/types/helpers.ts +41 -0
  389. package/build-deno/types/index.ts +5 -0
  390. package/build-deno/types/interfaces.ts +94 -0
  391. package/build-deno/types/registry.ts +84 -0
  392. package/build-deno/utils/compareArray.ts +18 -0
  393. package/build-deno/utils/compareMap.ts +36 -0
  394. package/build-deno/utils/compareSet.ts +19 -0
  395. package/build-deno/utils/decodeU8a.ts +121 -0
  396. package/build-deno/utils/index.ts +9 -0
  397. package/build-deno/utils/sanitize.ts +282 -0
  398. package/build-deno/utils/sortValues.ts +101 -0
  399. package/build-deno/utils/toConstructors.ts +44 -0
  400. package/build-deno/utils/typesToMap.ts +12 -0
  401. package/build-deno/utils/util.ts +6 -0
  402. package/build-tsc/abstract/Array.d.ts +89 -0
  403. package/build-tsc/abstract/Base.d.ts +75 -0
  404. package/build-tsc/abstract/Int.d.ts +80 -0
  405. package/build-tsc/abstract/Object.d.ts +67 -0
  406. package/build-tsc/abstract/index.d.ts +3 -0
  407. package/build-tsc/base/Compact.d.ts +88 -0
  408. package/build-tsc/base/DoNotConstruct.d.ts +63 -0
  409. package/build-tsc/base/Enum.d.ts +118 -0
  410. package/build-tsc/base/Int.d.ts +16 -0
  411. package/build-tsc/base/Null.d.ts +56 -0
  412. package/build-tsc/base/Option.d.ts +94 -0
  413. package/build-tsc/base/Result.d.ts +38 -0
  414. package/build-tsc/base/Tuple.d.ts +42 -0
  415. package/build-tsc/base/UInt.d.ts +15 -0
  416. package/build-tsc/base/Vec.d.ts +28 -0
  417. package/build-tsc/base/VecAny.d.ts +15 -0
  418. package/build-tsc/base/VecFixed.d.ts +30 -0
  419. package/build-tsc/base/index.d.ts +12 -0
  420. package/build-tsc/bundle.d.ts +7 -0
  421. package/build-tsc/extended/BTreeMap.d.ts +5 -0
  422. package/build-tsc/extended/BTreeSet.d.ts +64 -0
  423. package/build-tsc/extended/BitVec.d.ts +37 -0
  424. package/build-tsc/extended/Bytes.d.ts +29 -0
  425. package/build-tsc/extended/HashMap.d.ts +5 -0
  426. package/build-tsc/extended/Linkage.d.ts +37 -0
  427. package/build-tsc/extended/Map.d.ts +59 -0
  428. package/build-tsc/extended/OptionBool.d.ts +36 -0
  429. package/build-tsc/extended/Range.d.ts +29 -0
  430. package/build-tsc/extended/RangeInclusive.d.ts +6 -0
  431. package/build-tsc/extended/Type.d.ts +16 -0
  432. package/build-tsc/extended/U8aFixed.d.ts +16 -0
  433. package/build-tsc/extended/WrapperKeepOpaque.d.ts +40 -0
  434. package/build-tsc/extended/WrapperOpaque.d.ts +10 -0
  435. package/build-tsc/extended/index.d.ts +14 -0
  436. package/build-tsc/index.d.ts +2 -0
  437. package/build-tsc/native/Bool.d.ts +71 -0
  438. package/build-tsc/native/Date.d.ts +84 -0
  439. package/build-tsc/native/Float.d.ts +68 -0
  440. package/build-tsc/native/Json.d.ts +69 -0
  441. package/build-tsc/native/Raw.d.ts +87 -0
  442. package/build-tsc/native/Set.d.ts +84 -0
  443. package/build-tsc/native/Struct.d.ts +106 -0
  444. package/build-tsc/native/Text.d.ts +77 -0
  445. package/build-tsc/native/index.d.ts +8 -0
  446. package/build-tsc/packageDetect.d.ts +1 -0
  447. package/build-tsc/packageInfo.d.ts +6 -0
  448. package/build-tsc/primitive/F32.d.ts +11 -0
  449. package/build-tsc/primitive/F64.d.ts +11 -0
  450. package/build-tsc/primitive/I128.d.ts +11 -0
  451. package/build-tsc/primitive/I16.d.ts +11 -0
  452. package/build-tsc/primitive/I256.d.ts +11 -0
  453. package/build-tsc/primitive/I32.d.ts +11 -0
  454. package/build-tsc/primitive/I64.d.ts +11 -0
  455. package/build-tsc/primitive/I8.d.ts +11 -0
  456. package/build-tsc/primitive/ISize.d.ts +12 -0
  457. package/build-tsc/primitive/U128.d.ts +11 -0
  458. package/build-tsc/primitive/U16.d.ts +11 -0
  459. package/build-tsc/primitive/U256.d.ts +11 -0
  460. package/build-tsc/primitive/U32.d.ts +11 -0
  461. package/build-tsc/primitive/U64.d.ts +11 -0
  462. package/build-tsc/primitive/U8.d.ts +11 -0
  463. package/build-tsc/primitive/USize.d.ts +12 -0
  464. package/build-tsc/primitive/index.d.ts +16 -0
  465. package/build-tsc/types/codec.d.ts +113 -0
  466. package/build-tsc/types/helpers.d.ts +27 -0
  467. package/build-tsc/types/index.d.ts +4 -0
  468. package/build-tsc/types/interfaces.d.ts +74 -0
  469. package/build-tsc/types/registry.d.ts +67 -0
  470. package/build-tsc/utils/compareArray.d.ts +1 -0
  471. package/build-tsc/utils/compareMap.d.ts +1 -0
  472. package/build-tsc/utils/compareSet.d.ts +1 -0
  473. package/build-tsc/utils/decodeU8a.d.ts +26 -0
  474. package/build-tsc/utils/index.d.ts +8 -0
  475. package/build-tsc/utils/sanitize.d.ts +15 -0
  476. package/build-tsc/utils/sortValues.d.ts +12 -0
  477. package/build-tsc/utils/toConstructors.d.ts +16 -0
  478. package/build-tsc/utils/typesToMap.d.ts +2 -0
  479. package/build-tsc/utils/util.d.ts +3 -0
  480. package/build-tsc-cjs/abstract/Array.js +170 -0
  481. package/build-tsc-cjs/abstract/Base.js +105 -0
  482. package/build-tsc-cjs/abstract/Int.js +230 -0
  483. package/build-tsc-cjs/abstract/Object.js +44 -0
  484. package/build-tsc-cjs/abstract/index.js +9 -0
  485. package/build-tsc-cjs/base/Compact.js +163 -0
  486. package/build-tsc-cjs/base/DoNotConstruct.js +99 -0
  487. package/build-tsc-cjs/base/Enum.js +373 -0
  488. package/build-tsc-cjs/base/Int.js +30 -0
  489. package/build-tsc-cjs/base/Null.js +81 -0
  490. package/build-tsc-cjs/base/Option.js +236 -0
  491. package/build-tsc-cjs/base/Result.js +67 -0
  492. package/build-tsc-cjs/base/Tuple.js +114 -0
  493. package/build-tsc-cjs/base/UInt.js +27 -0
  494. package/build-tsc-cjs/base/Vec.js +107 -0
  495. package/build-tsc-cjs/base/VecAny.js +21 -0
  496. package/build-tsc-cjs/base/VecFixed.js +71 -0
  497. package/build-tsc-cjs/base/index.js +27 -0
  498. package/build-tsc-cjs/bundle.js +12 -0
  499. package/build-tsc-cjs/extended/BTreeMap.js +14 -0
  500. package/build-tsc-cjs/extended/BTreeSet.js +189 -0
  501. package/build-tsc-cjs/extended/BitVec.js +112 -0
  502. package/build-tsc-cjs/extended/Bytes.js +74 -0
  503. package/build-tsc-cjs/extended/HashMap.js +14 -0
  504. package/build-tsc-cjs/extended/Linkage.js +70 -0
  505. package/build-tsc-cjs/extended/Map.js +204 -0
  506. package/build-tsc-cjs/extended/OptionBool.js +76 -0
  507. package/build-tsc-cjs/extended/Range.js +42 -0
  508. package/build-tsc-cjs/extended/RangeInclusive.js +17 -0
  509. package/build-tsc-cjs/extended/Type.js +25 -0
  510. package/build-tsc-cjs/extended/U8aFixed.js +46 -0
  511. package/build-tsc-cjs/extended/WrapperKeepOpaque.js +103 -0
  512. package/build-tsc-cjs/extended/WrapperOpaque.js +23 -0
  513. package/build-tsc-cjs/extended/index.js +32 -0
  514. package/build-tsc-cjs/index.js +5 -0
  515. package/build-tsc-cjs/native/Bool.js +113 -0
  516. package/build-tsc-cjs/native/Date.js +144 -0
  517. package/build-tsc-cjs/native/Float.js +111 -0
  518. package/build-tsc-cjs/native/Json.js +121 -0
  519. package/build-tsc-cjs/native/Raw.js +144 -0
  520. package/build-tsc-cjs/native/Set.js +219 -0
  521. package/build-tsc-cjs/native/Struct.data.js +4 -0
  522. package/build-tsc-cjs/native/Struct.js +264 -0
  523. package/build-tsc-cjs/native/Text.js +154 -0
  524. package/build-tsc-cjs/native/index.js +22 -0
  525. package/build-tsc-cjs/packageDetect.js +5 -0
  526. package/build-tsc-cjs/packageInfo.js +4 -0
  527. package/build-tsc-cjs/primitive/F32.js +14 -0
  528. package/build-tsc-cjs/primitive/F64.js +14 -0
  529. package/build-tsc-cjs/primitive/I128.js +14 -0
  530. package/build-tsc-cjs/primitive/I16.js +14 -0
  531. package/build-tsc-cjs/primitive/I256.js +14 -0
  532. package/build-tsc-cjs/primitive/I32.js +14 -0
  533. package/build-tsc-cjs/primitive/I64.js +14 -0
  534. package/build-tsc-cjs/primitive/I8.js +14 -0
  535. package/build-tsc-cjs/primitive/ISize.js +18 -0
  536. package/build-tsc-cjs/primitive/U128.js +14 -0
  537. package/build-tsc-cjs/primitive/U16.js +14 -0
  538. package/build-tsc-cjs/primitive/U256.js +14 -0
  539. package/build-tsc-cjs/primitive/U32.js +14 -0
  540. package/build-tsc-cjs/primitive/U64.js +14 -0
  541. package/build-tsc-cjs/primitive/U8.js +14 -0
  542. package/build-tsc-cjs/primitive/USize.js +18 -0
  543. package/build-tsc-cjs/primitive/index.js +51 -0
  544. package/build-tsc-cjs/types/codec.js +2 -0
  545. package/build-tsc-cjs/types/helpers.js +2 -0
  546. package/build-tsc-cjs/types/index.js +7 -0
  547. package/build-tsc-cjs/types/interfaces.js +2 -0
  548. package/build-tsc-cjs/types/registry.js +2 -0
  549. package/build-tsc-cjs/utils/compareArray.js +13 -0
  550. package/build-tsc-cjs/utils/compareMap.js +30 -0
  551. package/build-tsc-cjs/utils/compareSet.js +20 -0
  552. package/build-tsc-cjs/utils/decodeU8a.js +105 -0
  553. package/build-tsc-cjs/utils/index.js +25 -0
  554. package/build-tsc-cjs/utils/sanitize.js +233 -0
  555. package/build-tsc-cjs/utils/sortValues.js +84 -0
  556. package/build-tsc-cjs/utils/toConstructors.js +40 -0
  557. package/build-tsc-cjs/utils/typesToMap.js +10 -0
  558. package/build-tsc-cjs/utils/util.js +7 -0
  559. package/build-tsc-esm/abstract/Array.js +166 -0
  560. package/build-tsc-esm/abstract/Base.js +101 -0
  561. package/build-tsc-esm/abstract/Int.js +226 -0
  562. package/build-tsc-esm/abstract/Object.js +40 -0
  563. package/build-tsc-esm/abstract/index.js +3 -0
  564. package/build-tsc-esm/base/Compact.js +159 -0
  565. package/build-tsc-esm/base/DoNotConstruct.js +95 -0
  566. package/build-tsc-esm/base/Enum.js +369 -0
  567. package/build-tsc-esm/base/Int.js +26 -0
  568. package/build-tsc-esm/base/Null.js +77 -0
  569. package/build-tsc-esm/base/Option.js +232 -0
  570. package/build-tsc-esm/base/Result.js +63 -0
  571. package/build-tsc-esm/base/Tuple.js +110 -0
  572. package/build-tsc-esm/base/UInt.js +23 -0
  573. package/build-tsc-esm/base/Vec.js +102 -0
  574. package/build-tsc-esm/base/VecAny.js +17 -0
  575. package/build-tsc-esm/base/VecFixed.js +67 -0
  576. package/build-tsc-esm/base/index.js +12 -0
  577. package/build-tsc-esm/bundle.js +7 -0
  578. package/build-tsc-esm/extended/BTreeMap.js +10 -0
  579. package/build-tsc-esm/extended/BTreeSet.js +185 -0
  580. package/build-tsc-esm/extended/BitVec.js +108 -0
  581. package/build-tsc-esm/extended/Bytes.js +70 -0
  582. package/build-tsc-esm/extended/HashMap.js +10 -0
  583. package/build-tsc-esm/extended/Linkage.js +65 -0
  584. package/build-tsc-esm/extended/Map.js +200 -0
  585. package/build-tsc-esm/extended/OptionBool.js +72 -0
  586. package/build-tsc-esm/extended/Range.js +38 -0
  587. package/build-tsc-esm/extended/RangeInclusive.js +13 -0
  588. package/build-tsc-esm/extended/Type.js +21 -0
  589. package/build-tsc-esm/extended/U8aFixed.js +42 -0
  590. package/build-tsc-esm/extended/WrapperKeepOpaque.js +99 -0
  591. package/build-tsc-esm/extended/WrapperOpaque.js +19 -0
  592. package/build-tsc-esm/extended/index.js +14 -0
  593. package/build-tsc-esm/index.js +2 -0
  594. package/build-tsc-esm/native/Bool.js +109 -0
  595. package/build-tsc-esm/native/Date.js +140 -0
  596. package/build-tsc-esm/native/Float.js +107 -0
  597. package/build-tsc-esm/native/Json.js +117 -0
  598. package/build-tsc-esm/native/Raw.js +140 -0
  599. package/build-tsc-esm/native/Set.js +215 -0
  600. package/build-tsc-esm/native/Struct.data.js +1 -0
  601. package/build-tsc-esm/native/Struct.js +260 -0
  602. package/build-tsc-esm/native/Text.js +150 -0
  603. package/build-tsc-esm/native/index.js +8 -0
  604. package/build-tsc-esm/packageDetect.js +3 -0
  605. package/build-tsc-esm/packageInfo.js +1 -0
  606. package/build-tsc-esm/primitive/F32.js +10 -0
  607. package/build-tsc-esm/primitive/F64.js +10 -0
  608. package/build-tsc-esm/primitive/I128.js +10 -0
  609. package/build-tsc-esm/primitive/I16.js +10 -0
  610. package/build-tsc-esm/primitive/I256.js +10 -0
  611. package/build-tsc-esm/primitive/I32.js +10 -0
  612. package/build-tsc-esm/primitive/I64.js +10 -0
  613. package/build-tsc-esm/primitive/I8.js +10 -0
  614. package/build-tsc-esm/primitive/ISize.js +14 -0
  615. package/build-tsc-esm/primitive/U128.js +10 -0
  616. package/build-tsc-esm/primitive/U16.js +10 -0
  617. package/build-tsc-esm/primitive/U256.js +10 -0
  618. package/build-tsc-esm/primitive/U32.js +10 -0
  619. package/build-tsc-esm/primitive/U64.js +10 -0
  620. package/build-tsc-esm/primitive/U8.js +10 -0
  621. package/build-tsc-esm/primitive/USize.js +14 -0
  622. package/build-tsc-esm/primitive/index.js +16 -0
  623. package/build-tsc-esm/types/codec.js +1 -0
  624. package/build-tsc-esm/types/helpers.js +1 -0
  625. package/build-tsc-esm/types/index.js +4 -0
  626. package/build-tsc-esm/types/interfaces.js +1 -0
  627. package/build-tsc-esm/types/registry.js +1 -0
  628. package/build-tsc-esm/utils/compareArray.js +10 -0
  629. package/build-tsc-esm/utils/compareMap.js +27 -0
  630. package/build-tsc-esm/utils/compareSet.js +17 -0
  631. package/build-tsc-esm/utils/decodeU8a.js +100 -0
  632. package/build-tsc-esm/utils/index.js +8 -0
  633. package/build-tsc-esm/utils/sanitize.js +219 -0
  634. package/build-tsc-esm/utils/sortValues.js +79 -0
  635. package/build-tsc-esm/utils/toConstructors.js +35 -0
  636. package/build-tsc-esm/utils/typesToMap.js +7 -0
  637. package/build-tsc-esm/utils/util.js +4 -0
  638. package/cjs/packageInfo.js +1 -1
  639. package/package.json +1 -1
  640. package/packageInfo.js +1 -1
  641. package/src/abstract/Array.ts +213 -0
  642. package/src/abstract/Base.ts +129 -0
  643. package/src/abstract/Int.ts +271 -0
  644. package/src/abstract/Object.ts +99 -0
  645. package/src/abstract/index.ts +6 -0
  646. package/src/base/Compact.spec.ts +99 -0
  647. package/src/base/Compact.ts +198 -0
  648. package/src/base/DoNotConstruct.spec.ts +23 -0
  649. package/src/base/DoNotConstruct.ts +118 -0
  650. package/src/base/Enum.spec.ts +487 -0
  651. package/src/base/Enum.ts +460 -0
  652. package/src/base/Int.spec.ts +225 -0
  653. package/src/base/Int.ts +34 -0
  654. package/src/base/Null.spec.ts +41 -0
  655. package/src/base/Null.ts +96 -0
  656. package/src/base/Option.spec.ts +216 -0
  657. package/src/base/Option.ts +275 -0
  658. package/src/base/Result.spec.ts +64 -0
  659. package/src/base/Result.ts +79 -0
  660. package/src/base/Tuple.spec.ts +161 -0
  661. package/src/base/Tuple.ts +149 -0
  662. package/src/base/UInt.spec.ts +192 -0
  663. package/src/base/UInt.ts +30 -0
  664. package/src/base/Vec.spec.ts +224 -0
  665. package/src/base/Vec.ts +133 -0
  666. package/src/base/VecAny.ts +23 -0
  667. package/src/base/VecFixed.spec.ts +78 -0
  668. package/src/base/VecFixed.ts +92 -0
  669. package/src/base/index.ts +15 -0
  670. package/src/bundle.ts +13 -0
  671. package/src/checkTypes.manual.ts +12 -0
  672. package/src/extended/BTreeMap.spec.ts +245 -0
  673. package/src/extended/BTreeMap.ts +16 -0
  674. package/src/extended/BTreeSet.spec.ts +260 -0
  675. package/src/extended/BTreeSet.ts +233 -0
  676. package/src/extended/BitVec.spec.ts +97 -0
  677. package/src/extended/BitVec.ts +137 -0
  678. package/src/extended/Bytes.spec.ts +75 -0
  679. package/src/extended/Bytes.ts +88 -0
  680. package/src/extended/HashMap.spec.ts +36 -0
  681. package/src/extended/HashMap.ts +16 -0
  682. package/src/extended/Linkage.spec.ts +43 -0
  683. package/src/extended/Linkage.ts +81 -0
  684. package/src/extended/Map.spec.ts +123 -0
  685. package/src/extended/Map.ts +255 -0
  686. package/src/extended/OptionBool.spec.ts +49 -0
  687. package/src/extended/OptionBool.ts +93 -0
  688. package/src/extended/Range.spec.ts +37 -0
  689. package/src/extended/Range.ts +56 -0
  690. package/src/extended/RangeInclusive.ts +20 -0
  691. package/src/extended/Type.spec.ts +118 -0
  692. package/src/extended/Type.ts +29 -0
  693. package/src/extended/U8aFixed.spec.ts +117 -0
  694. package/src/extended/U8aFixed.ts +57 -0
  695. package/src/extended/WrapperKeepOpaque.spec.ts +101 -0
  696. package/src/extended/WrapperKeepOpaque.ts +128 -0
  697. package/src/extended/WrapperOpaque.spec.ts +58 -0
  698. package/src/extended/WrapperOpaque.ts +27 -0
  699. package/src/extended/index.ts +17 -0
  700. package/src/index.ts +6 -0
  701. package/src/mod.ts +4 -0
  702. package/src/native/Bool.spec.ts +74 -0
  703. package/src/native/Bool.ts +137 -0
  704. package/src/native/Date.spec.ts +85 -0
  705. package/src/native/Date.ts +169 -0
  706. package/src/native/Float.spec.ts +51 -0
  707. package/src/native/Float.ts +136 -0
  708. package/src/native/Json.ts +147 -0
  709. package/src/native/Raw.spec.ts +113 -0
  710. package/src/native/Raw.ts +171 -0
  711. package/src/native/Set.spec.ts +116 -0
  712. package/src/native/Set.ts +269 -0
  713. package/src/native/Struct.data.ts +4 -0
  714. package/src/native/Struct.spec.ts +411 -0
  715. package/src/native/Struct.ts +338 -0
  716. package/src/native/Text.spec.ts +85 -0
  717. package/src/native/Text.ts +184 -0
  718. package/src/native/index.ts +11 -0
  719. package/src/packageDetect.ts +11 -0
  720. package/src/packageInfo.ts +6 -0
  721. package/src/primitive/F32.ts +14 -0
  722. package/src/primitive/F64.ts +14 -0
  723. package/src/primitive/I128.ts +14 -0
  724. package/src/primitive/I16.ts +14 -0
  725. package/src/primitive/I256.ts +14 -0
  726. package/src/primitive/I32.ts +14 -0
  727. package/src/primitive/I64.ts +14 -0
  728. package/src/primitive/I8.ts +14 -0
  729. package/src/primitive/ISize.ts +21 -0
  730. package/src/primitive/U128.ts +14 -0
  731. package/src/primitive/U16.ts +14 -0
  732. package/src/primitive/U256.ts +14 -0
  733. package/src/primitive/U32.ts +14 -0
  734. package/src/primitive/U64.ts +14 -0
  735. package/src/primitive/U8.ts +14 -0
  736. package/src/primitive/USize.ts +21 -0
  737. package/src/primitive/index.ts +19 -0
  738. package/src/test/performance.ts +61 -0
  739. package/src/types/codec.ts +140 -0
  740. package/src/types/helpers.ts +50 -0
  741. package/src/types/index.ts +7 -0
  742. package/src/types/interfaces.ts +98 -0
  743. package/src/types/registry.ts +86 -0
  744. package/src/utils/compareArray.ts +22 -0
  745. package/src/utils/compareMap.ts +40 -0
  746. package/src/utils/compareSet.ts +23 -0
  747. package/src/utils/decodeU8a.ts +123 -0
  748. package/src/utils/index.ts +11 -0
  749. package/src/utils/sanitize.spec.ts +89 -0
  750. package/src/utils/sanitize.ts +290 -0
  751. package/src/utils/sortValues.ts +103 -0
  752. package/src/utils/toConstructors.ts +46 -0
  753. package/src/utils/typesToMap.ts +14 -0
  754. package/src/utils/util.ts +8 -0
  755. package/tsconfig.build.json +16 -0
  756. package/tsconfig.build.tsbuildinfo +1 -0
  757. package/tsconfig.spec.json +21 -0
  758. package/tsconfig.spec.tsbuildinfo +1 -0
@@ -0,0 +1,267 @@
1
+
2
+ import type { HexString } from 'https://deno.land/x/pezkuwi/util/types.ts';
3
+ import type { AnyNumber, Inspect, INumber, IU8a, Registry, ToBn, UIntBitLength } from '../types/index.ts';
4
+
5
+ import { BN, BN_BILLION, BN_HUNDRED, BN_MILLION, BN_QUINTILL, bnToBn, bnToHex, bnToU8a, formatBalance, formatNumber, hexToBn, isBigInt, isBn, isFunction, isHex, isNumber, isObject, isString, isU8a, u8aToBn, u8aToNumber } from 'https://deno.land/x/pezkuwi/util/mod.ts';
6
+
7
+ export const DEFAULT_UINT_BITS = 64;
8
+
9
+ const MAX_NUMBER_BITS = 52;
10
+ const MUL_P = new BN(1_00_00);
11
+
12
+ const FORMATTERS: [string, BN][] = [
13
+ ['Perquintill', BN_QUINTILL],
14
+ ['Perbill', BN_BILLION],
15
+ ['Permill', BN_MILLION],
16
+ ['Percent', BN_HUNDRED]
17
+ ];
18
+
19
+ function isToBn (value: unknown): value is ToBn {
20
+ return isFunction((value as ToBn).toBn);
21
+ }
22
+
23
+ function toPercentage (value: BN, divisor: BN): string {
24
+ return `${(value.mul(MUL_P).div(divisor).toNumber() / 100).toFixed(2)}%`;
25
+ }
26
+
27
+ /** @internal */
28
+ function decodeAbstractInt (value: Exclude<AnyNumber, Uint8Array> | Record<string, string> | ToBn | null, isNegative: boolean): string | number {
29
+ if (isNumber(value)) {
30
+ if (!Number.isInteger(value) || value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER) {
31
+ throw new Error('Number needs to be an integer <= Number.MAX_SAFE_INTEGER, i.e. 2 ^ 53 - 1');
32
+ }
33
+
34
+ return value;
35
+ } else if (isString(value)) {
36
+ if (isHex(value, -1, true)) {
37
+ return hexToBn(value, { isLe: false, isNegative }).toString();
38
+ }
39
+
40
+ if (value.includes('.') || value.includes(',') || value.includes('e')) {
41
+ throw new Error('String should not contain decimal points or scientific notation');
42
+ }
43
+
44
+ return value;
45
+ } else if (isBn(value) || isBigInt(value)) {
46
+ return value.toString();
47
+ } else if (isObject(value)) {
48
+ if (isToBn(value)) {
49
+ return value.toBn().toString();
50
+ }
51
+
52
+ // Allow the construction from an object with a single top-level key. This means that
53
+ // single key objects can be treated equivalently to numbers, assuming they meet the
54
+ // specific requirements. (This is useful in Weights 1.5 where Objects are compact)
55
+ const keys = Object.keys(value);
56
+
57
+ if (keys.length !== 1) {
58
+ throw new Error('Unable to construct number from multi-key object');
59
+ }
60
+
61
+ return decodeAbstractInt(value[keys[0]], isNegative);
62
+ } else if (!value) {
63
+ return 0;
64
+ }
65
+
66
+ throw new Error(`Unable to create BN from unknown type ${typeof value}`);
67
+ }
68
+
69
+ /**
70
+ * @name AbstractInt
71
+ * @ignore
72
+ * @noInheritDoc
73
+ */
74
+ export abstract class AbstractInt extends BN implements INumber {
75
+ readonly registry: Registry;
76
+ readonly encodedLength: number;
77
+ readonly isUnsigned: boolean;
78
+
79
+ public createdAtHash?: IU8a;
80
+ public initialU8aLength?: number;
81
+ public isStorageFallback?: boolean;
82
+
83
+ readonly #bitLength: UIntBitLength;
84
+
85
+ constructor (registry: Registry, value: AnyNumber | null = 0, bitLength: UIntBitLength = DEFAULT_UINT_BITS, isSigned = false) {
86
+ // Construct via a string/number, which will be passed in the BN constructor.
87
+ // It would be ideal to actually return a BN, but there is an issue:
88
+ // https://github.com/indutny/bn.js/issues/206
89
+ super(
90
+ // shortcut isU8a as used in SCALE decoding
91
+ isU8a(value)
92
+ ? bitLength <= 48
93
+ ? u8aToNumber(value.subarray(0, bitLength / 8), { isNegative: isSigned })
94
+ : u8aToBn(value.subarray(0, bitLength / 8), { isLe: true, isNegative: isSigned }).toString()
95
+ : decodeAbstractInt(value, isSigned)
96
+ );
97
+
98
+ this.registry = registry;
99
+ this.#bitLength = bitLength;
100
+ this.encodedLength = this.#bitLength / 8;
101
+ this.initialU8aLength = this.#bitLength / 8;
102
+ this.isUnsigned = !isSigned;
103
+
104
+ const isNegative = this.isNeg();
105
+ const maxBits = bitLength - (isSigned && !isNegative ? 1 : 0);
106
+
107
+ if (isNegative && !isSigned) {
108
+ throw new Error(`${this.toRawType()}: Negative number passed to unsigned type`);
109
+ } else if (super.bitLength() > maxBits) {
110
+ throw new Error(`${this.toRawType()}: Input too large. Found input with ${super.bitLength()} bits, expected ${maxBits}`);
111
+ }
112
+ }
113
+
114
+ /**
115
+ * @description returns a hash of the contents
116
+ */
117
+ public get hash (): IU8a {
118
+ return this.registry.hash(this.toU8a());
119
+ }
120
+
121
+ /**
122
+ * @description Checks if the value is a zero value (align elsewhere)
123
+ */
124
+ public get isEmpty (): boolean {
125
+ return this.isZero();
126
+ }
127
+
128
+ /**
129
+ * @description Returns the number of bits in the value
130
+ */
131
+ public override bitLength (): number {
132
+ return this.#bitLength;
133
+ }
134
+
135
+ /**
136
+ * @description Compares the value of the input to see if there is a match
137
+ */
138
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
+ public override eq (other?: unknown): boolean {
140
+ // Here we are actually overriding the built-in .eq to take care of both
141
+ // number and BN inputs (no `.eqn` needed) - numbers will be converted
142
+ return super.eq(
143
+ isHex(other)
144
+ ? hexToBn(other.toString(), { isLe: false, isNegative: !this.isUnsigned })
145
+ : bnToBn(other as string)
146
+ );
147
+ }
148
+
149
+ /**
150
+ * @description Returns a breakdown of the hex encoding for this Codec
151
+ */
152
+ public inspect (): Inspect {
153
+ return {
154
+ outer: [this.toU8a()]
155
+ };
156
+ }
157
+
158
+ /**
159
+ * @description True if this value is the max of the type
160
+ */
161
+ public isMax (): boolean {
162
+ const u8a = this.toU8a().filter((b) => b === 0xff);
163
+
164
+ return u8a.length === (this.#bitLength / 8);
165
+ }
166
+
167
+ /**
168
+ * @description Returns a BigInt representation of the number
169
+ */
170
+ public toBigInt (): bigint {
171
+ return BigInt(this.toString());
172
+ }
173
+
174
+ /**
175
+ * @description Returns the BN representation of the number. (Compatibility)
176
+ */
177
+ public toBn (): BN {
178
+ return this;
179
+ }
180
+
181
+ /**
182
+ * @description Returns a hex string representation of the value
183
+ */
184
+ public toHex (isLe = false): HexString {
185
+ // For display/JSON, this is BE, for compare, use isLe
186
+ return bnToHex(this, {
187
+ bitLength: this.bitLength(),
188
+ isLe,
189
+ isNegative: !this.isUnsigned
190
+ });
191
+ }
192
+
193
+ /**
194
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
195
+ */
196
+ public toHuman (_isExpanded?: boolean): string {
197
+ const rawType = this.toRawType();
198
+
199
+ if (rawType === 'Balance') {
200
+ return this.isMax()
201
+ ? 'everything'
202
+ // FIXME In the case of multiples we need some way of detecting which instance this belongs
203
+ // to. as it stands we will always format (incorrectly) against the first token defined
204
+ : formatBalance(this, { decimals: this.registry.chainDecimals[0], withSi: true, withUnit: this.registry.chainTokens[0] });
205
+ }
206
+
207
+ const [, divisor] = FORMATTERS.find(([type]) => type === rawType) || [];
208
+
209
+ return divisor
210
+ ? toPercentage(this, divisor)
211
+ : formatNumber(this);
212
+ }
213
+
214
+ /**
215
+ * @description Converts the Object to JSON, typically used for RPC transfers
216
+ */
217
+ public override toJSON (onlyHex = false): any {
218
+ // FIXME this return type should by string | number, however BN returns string
219
+ // Options here are
220
+ // - super.bitLength() - the actual used bits, use hex when close to MAX_SAFE_INTEGER
221
+ // - this.#bitLength - the max used bits, use hex when larger than native Rust type
222
+ return onlyHex || (this.#bitLength > 128) || (super.bitLength() > MAX_NUMBER_BITS)
223
+ ? this.toHex()
224
+ : this.toNumber();
225
+ }
226
+
227
+ /**
228
+ * @description Returns the value in a primitive form, either number when <= 52 bits, or string otherwise
229
+ */
230
+ public toPrimitive (): number | string {
231
+ return super.bitLength() > MAX_NUMBER_BITS
232
+ ? this.toString()
233
+ : this.toNumber();
234
+ }
235
+
236
+ /**
237
+ * @description Returns the base runtime type name for this instance
238
+ */
239
+ public toRawType (): string {
240
+ // NOTE In the case of balances, which have a special meaning on the UI
241
+ // and can be interpreted differently, return a specific value for it so
242
+ // underlying it always matches (no matter which length it actually is)
243
+ return this instanceof this.registry.createClassUnsafe('Balance')
244
+ ? 'Balance'
245
+ : `${this.isUnsigned ? 'u' : 'i'}${this.bitLength()}`;
246
+ }
247
+
248
+ /**
249
+ * @description Returns the string representation of the value
250
+ * @param base The base to use for the conversion
251
+ */
252
+ public override toString (base?: number): string {
253
+ // only included here since we do not inherit docs
254
+ return super.toString(base);
255
+ }
256
+
257
+ /**
258
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
259
+ */
260
+ public toU8a (_isBare?: boolean): Uint8Array {
261
+ return bnToU8a(this, {
262
+ bitLength: this.bitLength(),
263
+ isLe: true,
264
+ isNegative: !this.isUnsigned
265
+ });
266
+ }
267
+ }
@@ -0,0 +1,97 @@
1
+
2
+ import type { HexString } from 'https://deno.land/x/pezkuwi/util/types.ts';
3
+ import type { AnyJson, BareOpts, CodecObject, Inspect, IU8a, Registry, ToString } from '../types/index.ts';
4
+
5
+ /**
6
+ * @name Object
7
+ * @description A type extends the Base class, when it holds a value
8
+ */
9
+ export abstract class AbstractObject<T extends ToString> implements CodecObject<T> {
10
+ readonly registry: Registry;
11
+
12
+ public createdAtHash?: IU8a;
13
+ public initialU8aLength?: number | undefined;
14
+ public isStorageFallback?: boolean;
15
+
16
+ readonly $: T;
17
+
18
+ protected constructor (registry: Registry, value: T, initialU8aLength?: number) {
19
+ this.$ = value;
20
+ this.initialU8aLength = initialU8aLength;
21
+ this.registry = registry;
22
+ }
23
+
24
+ /**
25
+ * @description The length of the value when encoded as a Uint8Array
26
+ */
27
+ public get encodedLength (): number {
28
+ return this.toU8a().length;
29
+ }
30
+
31
+ /**
32
+ * @description returns a hash of the contents
33
+ */
34
+ public get hash (): IU8a {
35
+ return this.registry.hash(this.toU8a());
36
+ }
37
+
38
+ /**
39
+ * @description Checks if the value is an empty value
40
+ */
41
+ public abstract get isEmpty (): boolean;
42
+
43
+ /**
44
+ * @description Compares the value of the input to see if there is a match
45
+ */
46
+ public abstract eq (other?: unknown): boolean;
47
+
48
+ /**
49
+ * @description Returns a breakdown of the hex encoding for this Codec
50
+ */
51
+ public abstract inspect (): Inspect;
52
+
53
+ /**
54
+ * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
55
+ */
56
+ public abstract toHex (isLe?: boolean): HexString;
57
+
58
+ /**
59
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
60
+ */
61
+ public abstract toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson;
62
+
63
+ /**
64
+ * @description Converts the Object to JSON, typically used for RPC transfers
65
+ */
66
+ public abstract toJSON (): AnyJson;
67
+
68
+ /**
69
+ * @description Converts the value in a best-fit primitive form
70
+ */
71
+ public abstract toPrimitive (disableAscii?: boolean): AnyJson;
72
+
73
+ /**
74
+ * @description Returns the string representation of the value
75
+ */
76
+ public toString (): string {
77
+ return this.$.toString();
78
+ }
79
+
80
+ /**
81
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
82
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
83
+ */
84
+ public abstract toU8a (isBare?: BareOpts): Uint8Array;
85
+
86
+ /**
87
+ * @description Returns the base runtime type name for this instance
88
+ */
89
+ public abstract toRawType (): string;
90
+
91
+ /**
92
+ * @description Return the internal value (JS-aligned, same result as $)
93
+ */
94
+ public valueOf (): T {
95
+ return this.$;
96
+ }
97
+ }
@@ -0,0 +1,4 @@
1
+
2
+ export { AbstractArray } from './Array.ts';
3
+ export { AbstractBase } from './Base.ts';
4
+ export { AbstractInt } from './Int.ts';
@@ -0,0 +1,196 @@
1
+
2
+ import type { BN } from 'https://deno.land/x/pezkuwi/util/mod.ts';
3
+ import type { HexString } from 'https://deno.land/x/pezkuwi/util/types.ts';
4
+ import type { AnyJson, AnyNumber, CodecClass, DefinitionSetter, ICompact, Inspect, INumber, IU8a, Registry } from '../types/index.ts';
5
+
6
+ import { compactFromU8a, compactFromU8aLim, compactToU8a, identity, isU8a } from 'https://deno.land/x/pezkuwi/util/mod.ts';
7
+
8
+ import { typeToConstructor } from '../utils/index.ts';
9
+
10
+ function decodeCompact<T extends INumber> (registry: Registry, Type: CodecClass<T>, value: Compact<T> | AnyNumber): [T, number] {
11
+ if (isU8a(value)) {
12
+ const [decodedLength, bn] = (value[0] & 0b11) < 0b11
13
+ ? compactFromU8aLim(value)
14
+ : compactFromU8a(value);
15
+
16
+ return [new Type(registry, bn), decodedLength];
17
+ } else if (value instanceof Compact) {
18
+ const raw = value.unwrap();
19
+
20
+ return raw instanceof Type
21
+ ? [raw, 0]
22
+ : [new Type(registry, raw), 0];
23
+ } else if (value instanceof Type) {
24
+ return [value, 0];
25
+ }
26
+
27
+ return [new Type(registry, value), 0];
28
+ }
29
+
30
+ /**
31
+ * @name Compact
32
+ * @description
33
+ * A compact length-encoding codec wrapper. It performs the same function as Length, however
34
+ * differs in that it uses a variable number of bytes to do the actual encoding. This is mostly
35
+ * used by other types to add length-prefixed encoding, or in the case of wrapped types, taking
36
+ * a number and making the compact representation thereof
37
+ */
38
+ export class Compact<T extends INumber> implements ICompact<T> {
39
+ readonly registry: Registry;
40
+
41
+ public createdAtHash?: IU8a;
42
+ public initialU8aLength?: number;
43
+ public isStorageFallback?: boolean;
44
+
45
+ readonly #Type: CodecClass<T>;
46
+ readonly #raw: T;
47
+
48
+ constructor (registry: Registry, Type: CodecClass<T> | string, value: Compact<T> | AnyNumber = 0, { definition, setDefinition = identity }: DefinitionSetter<CodecClass<T>> = {}) {
49
+ this.registry = registry;
50
+ this.#Type = definition || setDefinition(typeToConstructor(registry, Type));
51
+
52
+ const [raw, decodedLength] = decodeCompact<T>(registry, this.#Type, value);
53
+
54
+ this.initialU8aLength = decodedLength;
55
+ this.#raw = raw;
56
+ }
57
+
58
+ public static with<O extends INumber> (Type: CodecClass<O> | string): CodecClass<Compact<O>> {
59
+ let definition: CodecClass<O> | undefined;
60
+
61
+ // eslint-disable-next-line no-return-assign
62
+ const setDefinition = <T> (d: CodecClass<T>) =>
63
+ (definition = d as unknown as CodecClass<O>) as unknown as CodecClass<T>;
64
+
65
+ return class extends Compact<O> {
66
+ constructor (registry: Registry, value?: Compact<O> | AnyNumber) {
67
+ super(registry, Type, value, { definition, setDefinition });
68
+ }
69
+ };
70
+ }
71
+
72
+ /**
73
+ * @description The length of the value when encoded as a Uint8Array
74
+ */
75
+ public get encodedLength (): number {
76
+ return this.toU8a().length;
77
+ }
78
+
79
+ /**
80
+ * @description returns a hash of the contents
81
+ */
82
+ public get hash (): IU8a {
83
+ return this.registry.hash(this.toU8a());
84
+ }
85
+
86
+ /**
87
+ * @description Checks if the value is an empty value
88
+ */
89
+ public get isEmpty (): boolean {
90
+ return this.#raw.isEmpty;
91
+ }
92
+
93
+ /**
94
+ * @description Returns the number of bits in the value
95
+ */
96
+ public bitLength (): number {
97
+ return this.#raw.bitLength();
98
+ }
99
+
100
+ /**
101
+ * @description Compares the value of the input to see if there is a match
102
+ */
103
+ public eq (other?: unknown): boolean {
104
+ return this.#raw.eq(
105
+ other instanceof Compact
106
+ ? other.#raw
107
+ : other
108
+ );
109
+ }
110
+
111
+ /**
112
+ * @description Returns a breakdown of the hex encoding for this Codec
113
+ */
114
+ public inspect (): Inspect {
115
+ return {
116
+ outer: [this.toU8a()]
117
+ };
118
+ }
119
+
120
+ /**
121
+ * @description Returns a BigInt representation of the number
122
+ */
123
+ public toBigInt (): bigint {
124
+ return this.#raw.toBigInt();
125
+ }
126
+
127
+ /**
128
+ * @description Returns the BN representation of the number
129
+ */
130
+ public toBn (): BN {
131
+ return this.#raw.toBn();
132
+ }
133
+
134
+ /**
135
+ * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
136
+ */
137
+ public toHex (isLe?: boolean): HexString {
138
+ return this.#raw.toHex(isLe);
139
+ }
140
+
141
+ /**
142
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
143
+ */
144
+ public toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson {
145
+ return this.#raw.toHuman(isExtended, disableAscii);
146
+ }
147
+
148
+ /**
149
+ * @description Converts the Object to JSON, typically used for RPC transfers
150
+ */
151
+ public toJSON (): AnyJson {
152
+ return this.#raw.toJSON();
153
+ }
154
+
155
+ /**
156
+ * @description Returns the number representation for the value
157
+ */
158
+ public toNumber (): number {
159
+ return this.#raw.toNumber();
160
+ }
161
+
162
+ /**
163
+ * @description Converts the value in a best-fit primitive form
164
+ */
165
+ public toPrimitive (disableAscii?: boolean): string | number {
166
+ return this.#raw.toPrimitive(disableAscii);
167
+ }
168
+
169
+ /**
170
+ * @description Returns the base runtime type name for this instance
171
+ */
172
+ public toRawType (): string {
173
+ return `Compact<${this.registry.getClassName(this.#Type) || this.#raw.toRawType()}>`;
174
+ }
175
+
176
+ /**
177
+ * @description Returns the string representation of the value
178
+ */
179
+ public toString (): string {
180
+ return this.#raw.toString();
181
+ }
182
+
183
+ /**
184
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
185
+ */
186
+ public toU8a (_isBare?: boolean): Uint8Array {
187
+ return compactToU8a(this.#raw.toBn());
188
+ }
189
+
190
+ /**
191
+ * @description Returns the embedded [[UInt]] or [[Moment]] value
192
+ */
193
+ public unwrap (): T {
194
+ return this.#raw;
195
+ }
196
+ }
@@ -0,0 +1,116 @@
1
+
2
+ import type { HexString } from 'https://deno.land/x/pezkuwi/util/types.ts';
3
+ import type { AnyJson, Codec, CodecClass, Inspect, IU8a, Registry } from '../types/index.ts';
4
+
5
+ /**
6
+ * @name DoNotConstruct
7
+ * @description
8
+ * An unknown type that fails on construction with the type info
9
+ */
10
+ export class DoNotConstruct implements Codec {
11
+ readonly registry: Registry;
12
+
13
+ public createdAtHash?: IU8a;
14
+ public isStorageFallback?: boolean;
15
+
16
+ #neverError: Error;
17
+
18
+ constructor (registry: Registry, typeName = 'DoNotConstruct') {
19
+ this.registry = registry;
20
+ this.#neverError = new Error(`DoNotConstruct: Cannot construct unknown type ${typeName}`);
21
+
22
+ throw this.#neverError;
23
+ }
24
+
25
+ public static with (typeName?: string): CodecClass {
26
+ return class extends DoNotConstruct {
27
+ constructor (registry: Registry) {
28
+ super(registry, typeName);
29
+ }
30
+ };
31
+ }
32
+
33
+ /**
34
+ * @description The length of the value when encoded as a Uint8Array
35
+ */
36
+ public get encodedLength (): number {
37
+ throw this.#neverError;
38
+ }
39
+
40
+ /**
41
+ * @description returns a hash of the contents
42
+ */
43
+ public get hash (): IU8a {
44
+ throw this.#neverError;
45
+ }
46
+
47
+ /**
48
+ * @description Checks if the value is an empty value (always true)
49
+ */
50
+ public get isEmpty (): boolean {
51
+ throw this.#neverError;
52
+ }
53
+
54
+ /**
55
+ * @description Unimplemented
56
+ */
57
+ eq (): boolean {
58
+ throw this.#neverError;
59
+ }
60
+
61
+ /**
62
+ * @description Unimplemented
63
+ */
64
+ public inspect (): Inspect {
65
+ throw this.#neverError;
66
+ }
67
+
68
+ /**
69
+ * @description Unimplemented
70
+ */
71
+ toHex (): HexString {
72
+ throw this.#neverError;
73
+ }
74
+
75
+ /**
76
+ * @description Unimplemented
77
+ */
78
+ toHuman (): AnyJson {
79
+ throw this.#neverError;
80
+ }
81
+
82
+ /**
83
+ * @description Unimplemented
84
+ */
85
+ toJSON (): AnyJson {
86
+ throw this.#neverError;
87
+ }
88
+
89
+ /**
90
+ * @description Unimplemented
91
+ */
92
+ toPrimitive (): AnyJson {
93
+ throw this.#neverError;
94
+ }
95
+
96
+ /**
97
+ * @description Unimplemented
98
+ */
99
+ toRawType (): string {
100
+ throw this.#neverError;
101
+ }
102
+
103
+ /**
104
+ * @description Unimplemented
105
+ */
106
+ toString (): string {
107
+ throw this.#neverError;
108
+ }
109
+
110
+ /**
111
+ * @description Unimplemented
112
+ */
113
+ toU8a (): Uint8Array {
114
+ throw this.#neverError;
115
+ }
116
+ }