@meteora-ag/cp-amm-sdk 1.0.0-rc.9 → 1.0.1-1.rc-0

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 (975) hide show
  1. package/dist/index.d.mts +1266 -332
  2. package/dist/index.d.ts +1266 -332
  3. package/dist/index.js +1231 -362
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1248 -379
  6. package/dist/index.mjs.map +1 -1
  7. package/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +19 -24
  8. package/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +178 -210
  9. package/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +19 -24
  10. package/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +178 -210
  11. package/node_modules/@babel/runtime/package.json +1 -4
  12. package/node_modules/@coral-xyz/anchor/dist/browser/index.js +11 -12
  13. package/node_modules/@coral-xyz/anchor/dist/browser/index.js.map +1 -1
  14. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/idl.d.ts.map +1 -1
  15. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.d.ts.map +1 -1
  16. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js +8 -9
  17. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js.map +1 -1
  18. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js +3 -3
  19. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js.map +1 -1
  20. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.d.ts.map +1 -1
  21. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.js +8 -9
  22. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.js.map +1 -1
  23. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.js +3 -3
  24. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.js.map +1 -1
  25. package/node_modules/@coral-xyz/anchor/dist/tsconfig.cjs.tsbuildinfo +1 -1
  26. package/node_modules/@coral-xyz/anchor/dist/tsconfig.tsbuildinfo +1 -1
  27. package/node_modules/@coral-xyz/anchor/package.json +3 -3
  28. package/node_modules/@coral-xyz/anchor-errors/package.json +1 -1
  29. package/node_modules/@coral-xyz/borsh/package.json +1 -1
  30. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/README.md +321 -436
  31. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/_shortw_utils.d.ts +2 -2
  32. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/_shortw_utils.js +2 -2
  33. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/abstract/bls.d.ts +5 -5
  34. package/node_modules/@noble/curves/abstract/bls.d.ts.map +1 -0
  35. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/bls.js +15 -16
  36. package/node_modules/@noble/curves/abstract/bls.js.map +1 -0
  37. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/abstract/curve.d.ts +11 -3
  38. package/node_modules/@noble/curves/abstract/curve.d.ts.map +1 -0
  39. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/curve.js +93 -81
  40. package/node_modules/@noble/curves/abstract/curve.js.map +1 -0
  41. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/edwards.d.ts +2 -2
  42. package/node_modules/@noble/curves/abstract/edwards.d.ts.map +1 -0
  43. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/edwards.js +72 -72
  44. package/node_modules/@noble/curves/abstract/edwards.js.map +1 -0
  45. package/node_modules/@noble/curves/abstract/fft.d.ts +120 -0
  46. package/node_modules/@noble/curves/abstract/fft.d.ts.map +1 -0
  47. package/node_modules/@noble/curves/abstract/fft.js +439 -0
  48. package/node_modules/@noble/curves/abstract/fft.js.map +1 -0
  49. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/abstract/hash-to-curve.d.ts +15 -9
  50. package/node_modules/@noble/curves/abstract/hash-to-curve.d.ts.map +1 -0
  51. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/hash-to-curve.js +49 -39
  52. package/node_modules/@noble/curves/abstract/hash-to-curve.js.map +1 -0
  53. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/abstract/modular.d.ts +13 -12
  54. package/node_modules/@noble/curves/abstract/modular.d.ts.map +1 -0
  55. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/modular.js +167 -167
  56. package/node_modules/@noble/curves/abstract/modular.js.map +1 -0
  57. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/abstract/montgomery.d.ts +4 -9
  58. package/node_modules/@noble/curves/abstract/montgomery.d.ts.map +1 -0
  59. package/node_modules/@noble/curves/abstract/montgomery.js +140 -0
  60. package/node_modules/@noble/curves/abstract/montgomery.js.map +1 -0
  61. package/node_modules/@noble/curves/abstract/poseidon.d.ts +76 -0
  62. package/node_modules/@noble/curves/abstract/poseidon.d.ts.map +1 -0
  63. package/node_modules/@noble/curves/abstract/poseidon.js +300 -0
  64. package/node_modules/@noble/curves/abstract/poseidon.js.map +1 -0
  65. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/abstract/tower.d.ts +2 -2
  66. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/tower.d.ts.map +1 -1
  67. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/tower.js +17 -18
  68. package/node_modules/@noble/curves/abstract/tower.js.map +1 -0
  69. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/utils.d.ts +5 -2
  70. package/node_modules/@noble/curves/abstract/utils.d.ts.map +1 -0
  71. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/utils.js +27 -14
  72. package/node_modules/@noble/curves/abstract/utils.js.map +1 -0
  73. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/weierstrass.d.ts +45 -10
  74. package/node_modules/@noble/curves/abstract/weierstrass.d.ts.map +1 -0
  75. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/abstract/weierstrass.js +153 -117
  76. package/node_modules/@noble/curves/abstract/weierstrass.js.map +1 -0
  77. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/bls12-381.d.ts +1 -1
  78. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/bls12-381.d.ts.map +1 -1
  79. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/bls12-381.js +50 -64
  80. package/node_modules/@noble/curves/bls12-381.js.map +1 -0
  81. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/bn254.d.ts +3 -2
  82. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/bn254.d.ts.map +1 -1
  83. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/bn254.js +39 -29
  84. package/node_modules/@noble/curves/bn254.js.map +1 -0
  85. package/node_modules/{@solana/web3.js/node_modules/@noble/curves/esm → @noble/curves}/ed25519.d.ts +26 -10
  86. package/node_modules/@noble/curves/ed25519.d.ts.map +1 -0
  87. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/ed25519.js +93 -83
  88. package/node_modules/@noble/curves/ed25519.js.map +1 -0
  89. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/ed448.d.ts +26 -10
  90. package/node_modules/@noble/curves/ed448.d.ts.map +1 -0
  91. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/ed448.js +92 -82
  92. package/node_modules/@noble/curves/ed448.js.map +1 -0
  93. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/_shortw_utils.d.ts +2 -2
  94. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/_shortw_utils.js +1 -1
  95. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/abstract/bls.d.ts +5 -5
  96. package/node_modules/@noble/curves/esm/abstract/bls.d.ts.map +1 -0
  97. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/bls.js +6 -7
  98. package/node_modules/@noble/curves/esm/abstract/bls.js.map +1 -0
  99. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/abstract/curve.d.ts +11 -3
  100. package/node_modules/@noble/curves/esm/abstract/curve.d.ts.map +1 -0
  101. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/curve.js +90 -78
  102. package/node_modules/@noble/curves/esm/abstract/curve.js.map +1 -0
  103. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/edwards.d.ts +2 -2
  104. package/node_modules/@noble/curves/esm/abstract/edwards.d.ts.map +1 -0
  105. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/edwards.js +53 -53
  106. package/node_modules/@noble/curves/esm/abstract/edwards.js.map +1 -0
  107. package/node_modules/@noble/curves/esm/abstract/fft.d.ts +120 -0
  108. package/node_modules/@noble/curves/esm/abstract/fft.d.ts.map +1 -0
  109. package/node_modules/@noble/curves/esm/abstract/fft.js +426 -0
  110. package/node_modules/@noble/curves/esm/abstract/fft.js.map +1 -0
  111. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/abstract/hash-to-curve.d.ts +15 -9
  112. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.d.ts.map +1 -0
  113. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/hash-to-curve.js +33 -23
  114. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.js.map +1 -0
  115. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/abstract/modular.d.ts +13 -12
  116. package/node_modules/@noble/curves/esm/abstract/modular.d.ts.map +1 -0
  117. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/modular.js +159 -159
  118. package/node_modules/@noble/curves/esm/abstract/modular.js.map +1 -0
  119. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/abstract/montgomery.d.ts +4 -9
  120. package/node_modules/@noble/curves/esm/abstract/montgomery.d.ts.map +1 -0
  121. package/node_modules/@noble/curves/esm/abstract/montgomery.js +137 -0
  122. package/node_modules/@noble/curves/esm/abstract/montgomery.js.map +1 -0
  123. package/node_modules/@noble/curves/esm/abstract/poseidon.d.ts +76 -0
  124. package/node_modules/@noble/curves/esm/abstract/poseidon.d.ts.map +1 -0
  125. package/node_modules/@noble/curves/esm/abstract/poseidon.js +291 -0
  126. package/node_modules/@noble/curves/esm/abstract/poseidon.js.map +1 -0
  127. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/abstract/tower.d.ts +2 -2
  128. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/tower.d.ts.map +1 -1
  129. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/tower.js +9 -10
  130. package/node_modules/@noble/curves/esm/abstract/tower.js.map +1 -0
  131. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/utils.d.ts +5 -2
  132. package/node_modules/@noble/curves/esm/abstract/utils.d.ts.map +1 -0
  133. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/utils.js +26 -13
  134. package/node_modules/@noble/curves/esm/abstract/utils.js.map +1 -0
  135. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/weierstrass.d.ts +45 -10
  136. package/node_modules/@noble/curves/esm/abstract/weierstrass.d.ts.map +1 -0
  137. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/abstract/weierstrass.js +127 -91
  138. package/node_modules/@noble/curves/esm/abstract/weierstrass.js.map +1 -0
  139. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/bls12-381.d.ts +1 -1
  140. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/bls12-381.d.ts.map +1 -1
  141. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/bls12-381.js +18 -32
  142. package/node_modules/@noble/curves/esm/bls12-381.js.map +1 -0
  143. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/bn254.d.ts +3 -2
  144. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/bn254.d.ts.map +1 -1
  145. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/bn254.js +17 -7
  146. package/node_modules/@noble/curves/esm/bn254.js.map +1 -0
  147. package/node_modules/{@solana/web3.js/node_modules/@noble/curves → @noble/curves/esm}/ed25519.d.ts +26 -10
  148. package/node_modules/@noble/curves/esm/ed25519.d.ts.map +1 -0
  149. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/ed25519.js +48 -38
  150. package/node_modules/@noble/curves/esm/ed25519.js.map +1 -0
  151. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/ed448.d.ts +26 -10
  152. package/node_modules/@noble/curves/esm/ed448.d.ts.map +1 -0
  153. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/ed448.js +59 -49
  154. package/node_modules/@noble/curves/esm/ed448.js.map +1 -0
  155. package/node_modules/@noble/curves/esm/jubjub.d.ts +12 -0
  156. package/node_modules/@noble/curves/esm/jubjub.d.ts.map +1 -0
  157. package/node_modules/@noble/curves/esm/jubjub.js +12 -0
  158. package/node_modules/@noble/curves/esm/jubjub.js.map +1 -0
  159. package/node_modules/@noble/curves/esm/misc.d.ts +21 -0
  160. package/node_modules/@noble/curves/esm/misc.d.ts.map +1 -0
  161. package/node_modules/@noble/curves/esm/misc.js +107 -0
  162. package/node_modules/@noble/curves/esm/misc.js.map +1 -0
  163. package/node_modules/@noble/curves/esm/nist.d.ts +30 -0
  164. package/node_modules/@noble/curves/esm/nist.d.ts.map +1 -0
  165. package/node_modules/@noble/curves/esm/nist.js +121 -0
  166. package/node_modules/@noble/curves/esm/nist.js.map +1 -0
  167. package/node_modules/@noble/curves/esm/p256.d.ts +12 -0
  168. package/node_modules/@noble/curves/esm/p256.d.ts.map +1 -0
  169. package/node_modules/@noble/curves/esm/p256.js +12 -0
  170. package/node_modules/@noble/curves/esm/p256.js.map +1 -0
  171. package/node_modules/@noble/curves/esm/p384.d.ts +13 -0
  172. package/node_modules/@noble/curves/esm/p384.d.ts.map +1 -0
  173. package/node_modules/@noble/curves/esm/p384.js +13 -0
  174. package/node_modules/@noble/curves/esm/p384.js.map +1 -0
  175. package/node_modules/@noble/curves/esm/p521.d.ts +12 -0
  176. package/node_modules/@noble/curves/esm/p521.d.ts.map +1 -0
  177. package/node_modules/@noble/curves/esm/p521.js +12 -0
  178. package/node_modules/@noble/curves/esm/p521.js.map +1 -0
  179. package/node_modules/@noble/curves/esm/pasta.d.ts +10 -0
  180. package/node_modules/@noble/curves/esm/pasta.d.ts.map +1 -0
  181. package/node_modules/@noble/curves/esm/pasta.js +10 -0
  182. package/node_modules/@noble/curves/esm/pasta.js.map +1 -0
  183. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/secp256k1.d.ts +15 -10
  184. package/node_modules/@noble/curves/esm/secp256k1.d.ts.map +1 -0
  185. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/secp256k1.js +23 -20
  186. package/node_modules/@noble/curves/esm/secp256k1.js.map +1 -0
  187. package/node_modules/@noble/curves/jubjub.d.ts +12 -0
  188. package/node_modules/@noble/curves/jubjub.d.ts.map +1 -0
  189. package/node_modules/@noble/curves/jubjub.js +15 -0
  190. package/node_modules/@noble/curves/jubjub.js.map +1 -0
  191. package/node_modules/@noble/curves/misc.d.ts +21 -0
  192. package/node_modules/@noble/curves/misc.d.ts.map +1 -0
  193. package/node_modules/@noble/curves/misc.js +112 -0
  194. package/node_modules/@noble/curves/misc.js.map +1 -0
  195. package/node_modules/@noble/curves/nist.d.ts +30 -0
  196. package/node_modules/@noble/curves/nist.d.ts.map +1 -0
  197. package/node_modules/@noble/curves/nist.js +124 -0
  198. package/node_modules/@noble/curves/nist.js.map +1 -0
  199. package/node_modules/@noble/curves/p256.d.ts +12 -0
  200. package/node_modules/@noble/curves/p256.d.ts.map +1 -0
  201. package/node_modules/@noble/curves/p256.js +9 -0
  202. package/node_modules/@noble/curves/p256.js.map +1 -0
  203. package/node_modules/@noble/curves/p384.d.ts +13 -0
  204. package/node_modules/@noble/curves/p384.d.ts.map +1 -0
  205. package/node_modules/@noble/curves/p384.js +10 -0
  206. package/node_modules/@noble/curves/p384.js.map +1 -0
  207. package/node_modules/@noble/curves/p521.d.ts +12 -0
  208. package/node_modules/@noble/curves/p521.d.ts.map +1 -0
  209. package/node_modules/@noble/curves/p521.js +9 -0
  210. package/node_modules/@noble/curves/p521.js.map +1 -0
  211. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/package.json +126 -13
  212. package/node_modules/@noble/curves/pasta.d.ts +10 -0
  213. package/node_modules/@noble/curves/pasta.d.ts.map +1 -0
  214. package/node_modules/@noble/curves/pasta.js +13 -0
  215. package/node_modules/@noble/curves/pasta.js.map +1 -0
  216. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/secp256k1.d.ts +15 -10
  217. package/node_modules/@noble/curves/secp256k1.d.ts.map +1 -0
  218. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/secp256k1.js +62 -59
  219. package/node_modules/@noble/curves/secp256k1.js.map +1 -0
  220. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/_shortw_utils.ts +2 -2
  221. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/bls.ts +10 -10
  222. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/curve.ts +99 -85
  223. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/edwards.ts +71 -64
  224. package/node_modules/@noble/curves/src/abstract/fft.ts +508 -0
  225. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/hash-to-curve.ts +49 -39
  226. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/modular.ts +155 -154
  227. package/node_modules/@noble/curves/src/abstract/montgomery.ts +165 -0
  228. package/node_modules/@noble/curves/src/abstract/poseidon.ts +331 -0
  229. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/tower.ts +10 -11
  230. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/utils.ts +28 -15
  231. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/abstract/weierstrass.ts +182 -120
  232. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/bls12-381.ts +21 -37
  233. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/bn254.ts +18 -8
  234. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/ed25519.ts +55 -40
  235. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/ed448.ts +105 -88
  236. package/node_modules/@noble/curves/src/jubjub.ts +12 -0
  237. package/node_modules/@noble/curves/src/misc.ts +123 -0
  238. package/node_modules/@noble/curves/src/nist.ts +155 -0
  239. package/node_modules/@noble/curves/src/p256.ts +11 -0
  240. package/node_modules/@noble/curves/src/p384.ts +13 -0
  241. package/node_modules/@noble/curves/src/p521.ts +11 -0
  242. package/node_modules/@noble/curves/src/pasta.ts +9 -0
  243. package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/secp256k1.ts +27 -22
  244. package/node_modules/@noble/hashes/README.md +217 -268
  245. package/node_modules/@noble/hashes/_assert.d.ts +12 -18
  246. package/node_modules/@noble/hashes/_assert.d.ts.map +1 -1
  247. package/node_modules/@noble/hashes/_assert.js +12 -44
  248. package/node_modules/@noble/hashes/_assert.js.map +1 -1
  249. package/node_modules/@noble/hashes/_blake.d.ts +8 -28
  250. package/node_modules/@noble/hashes/_blake.d.ts.map +1 -1
  251. package/node_modules/@noble/hashes/_blake.js +19 -106
  252. package/node_modules/@noble/hashes/_blake.js.map +1 -1
  253. package/node_modules/@noble/hashes/_md.d.ts +22 -5
  254. package/node_modules/@noble/hashes/_md.d.ts.map +1 -1
  255. package/node_modules/@noble/hashes/_md.js +43 -18
  256. package/node_modules/@noble/hashes/_md.js.map +1 -1
  257. package/node_modules/@noble/hashes/_u64.d.ts +1 -1
  258. package/node_modules/@noble/hashes/_u64.d.ts.map +1 -1
  259. package/node_modules/@noble/hashes/_u64.js +6 -5
  260. package/node_modules/@noble/hashes/_u64.js.map +1 -1
  261. package/node_modules/@noble/hashes/argon2.d.ts +9 -9
  262. package/node_modules/@noble/hashes/argon2.d.ts.map +1 -1
  263. package/node_modules/@noble/hashes/argon2.js +62 -57
  264. package/node_modules/@noble/hashes/argon2.js.map +1 -1
  265. package/node_modules/@noble/hashes/blake1.d.ts +19 -39
  266. package/node_modules/@noble/hashes/blake1.d.ts.map +1 -1
  267. package/node_modules/@noble/hashes/blake1.js +107 -119
  268. package/node_modules/@noble/hashes/blake1.js.map +1 -1
  269. package/node_modules/@noble/hashes/blake2.d.ts +116 -0
  270. package/node_modules/@noble/hashes/blake2.d.ts.map +1 -0
  271. package/node_modules/@noble/hashes/blake2.js +420 -0
  272. package/node_modules/@noble/hashes/blake2.js.map +1 -0
  273. package/node_modules/@noble/hashes/blake2b.d.ts +6 -48
  274. package/node_modules/@noble/hashes/blake2b.d.ts.map +1 -1
  275. package/node_modules/@noble/hashes/blake2b.js +6 -189
  276. package/node_modules/@noble/hashes/blake2b.js.map +1 -1
  277. package/node_modules/@noble/hashes/blake2s.d.ts +14 -55
  278. package/node_modules/@noble/hashes/blake2s.d.ts.map +1 -1
  279. package/node_modules/@noble/hashes/blake2s.js +17 -125
  280. package/node_modules/@noble/hashes/blake2s.js.map +1 -1
  281. package/node_modules/@noble/hashes/blake3.d.ts +6 -6
  282. package/node_modules/@noble/hashes/blake3.d.ts.map +1 -1
  283. package/node_modules/@noble/hashes/blake3.js +62 -62
  284. package/node_modules/@noble/hashes/blake3.js.map +1 -1
  285. package/node_modules/@noble/hashes/eskdf.d.ts.map +1 -1
  286. package/node_modules/@noble/hashes/eskdf.js +18 -20
  287. package/node_modules/@noble/hashes/eskdf.js.map +1 -1
  288. package/node_modules/@noble/hashes/esm/_assert.d.ts +12 -18
  289. package/node_modules/@noble/hashes/esm/_assert.d.ts.map +1 -1
  290. package/node_modules/@noble/hashes/esm/_assert.js +10 -39
  291. package/node_modules/@noble/hashes/esm/_assert.js.map +1 -1
  292. package/node_modules/@noble/hashes/esm/_blake.d.ts +8 -28
  293. package/node_modules/@noble/hashes/esm/_blake.d.ts.map +1 -1
  294. package/node_modules/@noble/hashes/esm/_blake.js +16 -104
  295. package/node_modules/@noble/hashes/esm/_blake.js.map +1 -1
  296. package/node_modules/@noble/hashes/esm/_md.d.ts +22 -5
  297. package/node_modules/@noble/hashes/esm/_md.d.ts.map +1 -1
  298. package/node_modules/@noble/hashes/esm/_md.js +35 -10
  299. package/node_modules/@noble/hashes/esm/_md.js.map +1 -1
  300. package/node_modules/@noble/hashes/esm/_u64.d.ts +1 -1
  301. package/node_modules/@noble/hashes/esm/_u64.d.ts.map +1 -1
  302. package/node_modules/@noble/hashes/esm/_u64.js +5 -4
  303. package/node_modules/@noble/hashes/esm/_u64.js.map +1 -1
  304. package/node_modules/@noble/hashes/esm/argon2.d.ts +9 -9
  305. package/node_modules/@noble/hashes/esm/argon2.d.ts.map +1 -1
  306. package/node_modules/@noble/hashes/esm/argon2.js +44 -39
  307. package/node_modules/@noble/hashes/esm/argon2.js.map +1 -1
  308. package/node_modules/@noble/hashes/esm/blake1.d.ts +19 -39
  309. package/node_modules/@noble/hashes/esm/blake1.d.ts.map +1 -1
  310. package/node_modules/@noble/hashes/esm/blake1.js +84 -96
  311. package/node_modules/@noble/hashes/esm/blake1.js.map +1 -1
  312. package/node_modules/@noble/hashes/esm/blake2.d.ts +116 -0
  313. package/node_modules/@noble/hashes/esm/blake2.d.ts.map +1 -0
  314. package/node_modules/@noble/hashes/esm/blake2.js +413 -0
  315. package/node_modules/@noble/hashes/esm/blake2.js.map +1 -0
  316. package/node_modules/@noble/hashes/esm/blake2b.d.ts +6 -48
  317. package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +1 -1
  318. package/node_modules/@noble/hashes/esm/blake2b.js +6 -188
  319. package/node_modules/@noble/hashes/esm/blake2b.js.map +1 -1
  320. package/node_modules/@noble/hashes/esm/blake2s.d.ts +14 -55
  321. package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +1 -1
  322. package/node_modules/@noble/hashes/esm/blake2s.js +16 -120
  323. package/node_modules/@noble/hashes/esm/blake2s.js.map +1 -1
  324. package/node_modules/@noble/hashes/esm/blake3.d.ts +6 -6
  325. package/node_modules/@noble/hashes/esm/blake3.d.ts.map +1 -1
  326. package/node_modules/@noble/hashes/esm/blake3.js +46 -57
  327. package/node_modules/@noble/hashes/esm/blake3.js.map +1 -1
  328. package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +1 -1
  329. package/node_modules/@noble/hashes/esm/eskdf.js +9 -11
  330. package/node_modules/@noble/hashes/esm/eskdf.js.map +1 -1
  331. package/node_modules/@noble/hashes/esm/hkdf.d.ts +1 -1
  332. package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +1 -1
  333. package/node_modules/@noble/hashes/esm/hkdf.js +10 -11
  334. package/node_modules/@noble/hashes/esm/hkdf.js.map +1 -1
  335. package/node_modules/@noble/hashes/esm/hmac.d.ts +6 -1
  336. package/node_modules/@noble/hashes/esm/hmac.d.ts.map +1 -1
  337. package/node_modules/@noble/hashes/esm/hmac.js +5 -3
  338. package/node_modules/@noble/hashes/esm/hmac.js.map +1 -1
  339. package/node_modules/@noble/hashes/esm/index.js +3 -5
  340. package/node_modules/@noble/hashes/esm/index.js.map +1 -1
  341. package/node_modules/@noble/hashes/esm/legacy.d.ts +71 -0
  342. package/node_modules/@noble/hashes/esm/legacy.d.ts.map +1 -0
  343. package/node_modules/@noble/hashes/esm/legacy.js +281 -0
  344. package/node_modules/@noble/hashes/esm/legacy.js.map +1 -0
  345. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +4 -4
  346. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +1 -1
  347. package/node_modules/@noble/hashes/esm/pbkdf2.js +8 -8
  348. package/node_modules/@noble/hashes/esm/pbkdf2.js.map +1 -1
  349. package/node_modules/@noble/hashes/esm/ripemd160.d.ts +6 -17
  350. package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +1 -1
  351. package/node_modules/@noble/hashes/esm/ripemd160.js +6 -96
  352. package/node_modules/@noble/hashes/esm/ripemd160.js.map +1 -1
  353. package/node_modules/@noble/hashes/esm/scrypt.d.ts +3 -3
  354. package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +1 -1
  355. package/node_modules/@noble/hashes/esm/scrypt.js +14 -19
  356. package/node_modules/@noble/hashes/esm/scrypt.js.map +1 -1
  357. package/node_modules/@noble/hashes/esm/sha1.d.ts +6 -17
  358. package/node_modules/@noble/hashes/esm/sha1.d.ts.map +1 -1
  359. package/node_modules/@noble/hashes/esm/sha1.js +6 -79
  360. package/node_modules/@noble/hashes/esm/sha1.js.map +1 -1
  361. package/node_modules/@noble/hashes/esm/sha2.d.ts +155 -3
  362. package/node_modules/@noble/hashes/esm/sha2.d.ts.map +1 -1
  363. package/node_modules/@noble/hashes/esm/sha2.js +371 -4
  364. package/node_modules/@noble/hashes/esm/sha2.js.map +1 -1
  365. package/node_modules/@noble/hashes/esm/sha256.d.ts +10 -22
  366. package/node_modules/@noble/hashes/esm/sha256.d.ts.map +1 -1
  367. package/node_modules/@noble/hashes/esm/sha256.js +10 -120
  368. package/node_modules/@noble/hashes/esm/sha256.js.map +1 -1
  369. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +16 -4
  370. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +1 -1
  371. package/node_modules/@noble/hashes/esm/sha3-addons.js +27 -21
  372. package/node_modules/@noble/hashes/esm/sha3-addons.js.map +1 -1
  373. package/node_modules/@noble/hashes/esm/sha3.d.ts +7 -6
  374. package/node_modules/@noble/hashes/esm/sha3.d.ts.map +1 -1
  375. package/node_modules/@noble/hashes/esm/sha3.js +42 -35
  376. package/node_modules/@noble/hashes/esm/sha3.js.map +1 -1
  377. package/node_modules/@noble/hashes/esm/sha512.d.ts +18 -108
  378. package/node_modules/@noble/hashes/esm/sha512.d.ts.map +1 -1
  379. package/node_modules/@noble/hashes/esm/sha512.js +18 -234
  380. package/node_modules/@noble/hashes/esm/sha512.js.map +1 -1
  381. package/node_modules/@noble/hashes/esm/utils.d.ts +60 -19
  382. package/node_modules/@noble/hashes/esm/utils.d.ts.map +1 -1
  383. package/node_modules/@noble/hashes/esm/utils.js +94 -25
  384. package/node_modules/@noble/hashes/esm/utils.js.map +1 -1
  385. package/node_modules/@noble/hashes/hkdf.d.ts +1 -1
  386. package/node_modules/@noble/hashes/hkdf.d.ts.map +1 -1
  387. package/node_modules/@noble/hashes/hkdf.js +15 -16
  388. package/node_modules/@noble/hashes/hkdf.js.map +1 -1
  389. package/node_modules/@noble/hashes/hmac.d.ts +6 -1
  390. package/node_modules/@noble/hashes/hmac.d.ts.map +1 -1
  391. package/node_modules/@noble/hashes/hmac.js +11 -9
  392. package/node_modules/@noble/hashes/hmac.js.map +1 -1
  393. package/node_modules/@noble/hashes/index.js +3 -5
  394. package/node_modules/@noble/hashes/index.js.map +1 -1
  395. package/node_modules/@noble/hashes/legacy.d.ts +71 -0
  396. package/node_modules/@noble/hashes/legacy.d.ts.map +1 -0
  397. package/node_modules/@noble/hashes/legacy.js +287 -0
  398. package/node_modules/@noble/hashes/legacy.js.map +1 -0
  399. package/node_modules/@noble/hashes/package.json +104 -6
  400. package/node_modules/@noble/hashes/pbkdf2.d.ts +4 -4
  401. package/node_modules/@noble/hashes/pbkdf2.d.ts.map +1 -1
  402. package/node_modules/@noble/hashes/pbkdf2.js +17 -17
  403. package/node_modules/@noble/hashes/pbkdf2.js.map +1 -1
  404. package/node_modules/@noble/hashes/ripemd160.d.ts +6 -17
  405. package/node_modules/@noble/hashes/ripemd160.d.ts.map +1 -1
  406. package/node_modules/@noble/hashes/ripemd160.js +6 -97
  407. package/node_modules/@noble/hashes/ripemd160.js.map +1 -1
  408. package/node_modules/@noble/hashes/scrypt.d.ts +3 -3
  409. package/node_modules/@noble/hashes/scrypt.d.ts.map +1 -1
  410. package/node_modules/@noble/hashes/scrypt.js +60 -65
  411. package/node_modules/@noble/hashes/scrypt.js.map +1 -1
  412. package/node_modules/@noble/hashes/sha1.d.ts +6 -17
  413. package/node_modules/@noble/hashes/sha1.d.ts.map +1 -1
  414. package/node_modules/@noble/hashes/sha1.js +6 -80
  415. package/node_modules/@noble/hashes/sha1.js.map +1 -1
  416. package/node_modules/@noble/hashes/sha2.d.ts +155 -3
  417. package/node_modules/@noble/hashes/sha2.d.ts.map +1 -1
  418. package/node_modules/@noble/hashes/sha2.js +378 -11
  419. package/node_modules/@noble/hashes/sha2.js.map +1 -1
  420. package/node_modules/@noble/hashes/sha256.d.ts +10 -22
  421. package/node_modules/@noble/hashes/sha256.d.ts.map +1 -1
  422. package/node_modules/@noble/hashes/sha256.js +11 -122
  423. package/node_modules/@noble/hashes/sha256.js.map +1 -1
  424. package/node_modules/@noble/hashes/sha3-addons.d.ts +16 -4
  425. package/node_modules/@noble/hashes/sha3-addons.d.ts.map +1 -1
  426. package/node_modules/@noble/hashes/sha3-addons.js +41 -35
  427. package/node_modules/@noble/hashes/sha3-addons.js.map +1 -1
  428. package/node_modules/@noble/hashes/sha3.d.ts +7 -6
  429. package/node_modules/@noble/hashes/sha3.d.ts.map +1 -1
  430. package/node_modules/@noble/hashes/sha3.js +52 -45
  431. package/node_modules/@noble/hashes/sha3.js.map +1 -1
  432. package/node_modules/@noble/hashes/sha512.d.ts +18 -108
  433. package/node_modules/@noble/hashes/sha512.d.ts.map +1 -1
  434. package/node_modules/@noble/hashes/sha512.js +19 -239
  435. package/node_modules/@noble/hashes/sha512.js.map +1 -1
  436. package/node_modules/@noble/hashes/src/_assert.ts +18 -50
  437. package/node_modules/@noble/hashes/src/_blake.ts +18 -115
  438. package/node_modules/@noble/hashes/src/_md.ts +47 -12
  439. package/node_modules/@noble/hashes/src/_u64.ts +5 -9
  440. package/node_modules/@noble/hashes/src/argon2.ts +60 -49
  441. package/node_modules/@noble/hashes/src/blake1.ts +112 -126
  442. package/node_modules/@noble/hashes/src/blake2.ts +486 -0
  443. package/node_modules/@noble/hashes/src/blake2b.ts +6 -205
  444. package/node_modules/@noble/hashes/src/blake2s.ts +16 -150
  445. package/node_modules/@noble/hashes/src/blake3.ts +53 -62
  446. package/node_modules/@noble/hashes/src/eskdf.ts +9 -11
  447. package/node_modules/@noble/hashes/src/hkdf.ts +10 -11
  448. package/node_modules/@noble/hashes/src/hmac.ts +5 -3
  449. package/node_modules/@noble/hashes/src/index.ts +3 -5
  450. package/node_modules/@noble/hashes/src/legacy.ts +293 -0
  451. package/node_modules/@noble/hashes/src/pbkdf2.ts +20 -18
  452. package/node_modules/@noble/hashes/src/ripemd160.ts +6 -103
  453. package/node_modules/@noble/hashes/src/scrypt.ts +25 -20
  454. package/node_modules/@noble/hashes/src/sha1.ts +6 -79
  455. package/node_modules/@noble/hashes/src/sha2.ts +399 -4
  456. package/node_modules/@noble/hashes/src/sha256.ts +15 -127
  457. package/node_modules/@noble/hashes/src/sha3-addons.ts +34 -23
  458. package/node_modules/@noble/hashes/src/sha3.ts +59 -45
  459. package/node_modules/@noble/hashes/src/sha512.ts +27 -250
  460. package/node_modules/@noble/hashes/src/utils.ts +132 -42
  461. package/node_modules/@noble/hashes/utils.d.ts +60 -19
  462. package/node_modules/@noble/hashes/utils.d.ts.map +1 -1
  463. package/node_modules/@noble/hashes/utils.js +110 -33
  464. package/node_modules/@noble/hashes/utils.js.map +1 -1
  465. package/node_modules/{file-uri-to-path → @solana/codecs-core}/LICENSE +8 -8
  466. package/node_modules/@solana/codecs-core/README.md +662 -0
  467. package/node_modules/@solana/codecs-core/dist/index.browser.cjs +504 -0
  468. package/node_modules/@solana/codecs-core/dist/index.browser.cjs.map +1 -0
  469. package/node_modules/@solana/codecs-core/dist/index.browser.mjs +460 -0
  470. package/node_modules/@solana/codecs-core/dist/index.browser.mjs.map +1 -0
  471. package/node_modules/@solana/codecs-core/dist/index.native.mjs +460 -0
  472. package/node_modules/@solana/codecs-core/dist/index.native.mjs.map +1 -0
  473. package/node_modules/@solana/codecs-core/dist/index.node.cjs +504 -0
  474. package/node_modules/@solana/codecs-core/dist/index.node.cjs.map +1 -0
  475. package/node_modules/@solana/codecs-core/dist/index.node.mjs +460 -0
  476. package/node_modules/@solana/codecs-core/dist/index.node.mjs.map +1 -0
  477. package/node_modules/@solana/codecs-core/dist/types/add-codec-sentinel.d.ts +70 -0
  478. package/node_modules/@solana/codecs-core/dist/types/add-codec-sentinel.d.ts.map +1 -0
  479. package/node_modules/@solana/codecs-core/dist/types/add-codec-size-prefix.d.ts +67 -0
  480. package/node_modules/@solana/codecs-core/dist/types/add-codec-size-prefix.d.ts.map +1 -0
  481. package/node_modules/@solana/codecs-core/dist/types/assertions.d.ts +62 -0
  482. package/node_modules/@solana/codecs-core/dist/types/assertions.d.ts.map +1 -0
  483. package/node_modules/@solana/codecs-core/dist/types/bytes.d.ts +92 -0
  484. package/node_modules/@solana/codecs-core/dist/types/bytes.d.ts.map +1 -0
  485. package/node_modules/@solana/codecs-core/dist/types/codec.d.ts +827 -0
  486. package/node_modules/@solana/codecs-core/dist/types/codec.d.ts.map +1 -0
  487. package/node_modules/@solana/codecs-core/dist/types/combine-codec.d.ts +75 -0
  488. package/node_modules/@solana/codecs-core/dist/types/combine-codec.d.ts.map +1 -0
  489. package/node_modules/@solana/codecs-core/dist/types/fix-codec-size.d.ts +111 -0
  490. package/node_modules/@solana/codecs-core/dist/types/fix-codec-size.d.ts.map +1 -0
  491. package/node_modules/@solana/codecs-core/dist/types/index.d.ts +667 -0
  492. package/node_modules/@solana/codecs-core/dist/types/index.d.ts.map +1 -0
  493. package/node_modules/@solana/codecs-core/dist/types/offset-codec.d.ts +328 -0
  494. package/node_modules/@solana/codecs-core/dist/types/offset-codec.d.ts.map +1 -0
  495. package/node_modules/@solana/codecs-core/dist/types/pad-codec.d.ts +162 -0
  496. package/node_modules/@solana/codecs-core/dist/types/pad-codec.d.ts.map +1 -0
  497. package/node_modules/@solana/codecs-core/dist/types/readonly-uint8array.d.ts +19 -0
  498. package/node_modules/@solana/codecs-core/dist/types/readonly-uint8array.d.ts.map +1 -0
  499. package/node_modules/@solana/codecs-core/dist/types/resize-codec.d.ts +129 -0
  500. package/node_modules/@solana/codecs-core/dist/types/resize-codec.d.ts.map +1 -0
  501. package/node_modules/@solana/codecs-core/dist/types/reverse-codec.d.ts +92 -0
  502. package/node_modules/@solana/codecs-core/dist/types/reverse-codec.d.ts.map +1 -0
  503. package/node_modules/@solana/codecs-core/dist/types/transform-codec.d.ts +114 -0
  504. package/node_modules/@solana/codecs-core/dist/types/transform-codec.d.ts.map +1 -0
  505. package/node_modules/@solana/codecs-core/package.json +83 -0
  506. package/node_modules/@solana/codecs-numbers/LICENSE +20 -0
  507. package/node_modules/@solana/codecs-numbers/README.md +130 -0
  508. package/node_modules/@solana/codecs-numbers/dist/index.browser.cjs +331 -0
  509. package/node_modules/@solana/codecs-numbers/dist/index.browser.cjs.map +1 -0
  510. package/node_modules/@solana/codecs-numbers/dist/index.browser.mjs +289 -0
  511. package/node_modules/@solana/codecs-numbers/dist/index.browser.mjs.map +1 -0
  512. package/node_modules/@solana/codecs-numbers/dist/index.native.mjs +289 -0
  513. package/node_modules/@solana/codecs-numbers/dist/index.native.mjs.map +1 -0
  514. package/node_modules/@solana/codecs-numbers/dist/index.node.cjs +331 -0
  515. package/node_modules/@solana/codecs-numbers/dist/index.node.cjs.map +1 -0
  516. package/node_modules/@solana/codecs-numbers/dist/index.node.mjs +289 -0
  517. package/node_modules/@solana/codecs-numbers/dist/index.node.mjs.map +1 -0
  518. package/node_modules/@solana/codecs-numbers/dist/types/assertions.d.ts +27 -0
  519. package/node_modules/@solana/codecs-numbers/dist/types/assertions.d.ts.map +1 -0
  520. package/node_modules/@solana/codecs-numbers/dist/types/common.d.ts +84 -0
  521. package/node_modules/@solana/codecs-numbers/dist/types/common.d.ts.map +1 -0
  522. package/node_modules/@solana/codecs-numbers/dist/types/f32.d.ts +87 -0
  523. package/node_modules/@solana/codecs-numbers/dist/types/f32.d.ts.map +1 -0
  524. package/node_modules/@solana/codecs-numbers/dist/types/f64.d.ts +87 -0
  525. package/node_modules/@solana/codecs-numbers/dist/types/f64.d.ts.map +1 -0
  526. package/node_modules/@solana/codecs-numbers/dist/types/i128.d.ts +91 -0
  527. package/node_modules/@solana/codecs-numbers/dist/types/i128.d.ts.map +1 -0
  528. package/node_modules/@solana/codecs-numbers/dist/types/i16.d.ts +87 -0
  529. package/node_modules/@solana/codecs-numbers/dist/types/i16.d.ts.map +1 -0
  530. package/node_modules/@solana/codecs-numbers/dist/types/i32.d.ts +87 -0
  531. package/node_modules/@solana/codecs-numbers/dist/types/i32.d.ts.map +1 -0
  532. package/node_modules/@solana/codecs-numbers/dist/types/i64.d.ts +90 -0
  533. package/node_modules/@solana/codecs-numbers/dist/types/i64.d.ts.map +1 -0
  534. package/node_modules/@solana/codecs-numbers/dist/types/i8.d.ts +75 -0
  535. package/node_modules/@solana/codecs-numbers/dist/types/i8.d.ts.map +1 -0
  536. package/node_modules/@solana/codecs-numbers/dist/types/index.d.ts +26 -0
  537. package/node_modules/@solana/codecs-numbers/dist/types/index.d.ts.map +1 -0
  538. package/node_modules/@solana/codecs-numbers/dist/types/short-u16.d.ts +96 -0
  539. package/node_modules/@solana/codecs-numbers/dist/types/short-u16.d.ts.map +1 -0
  540. package/node_modules/@solana/codecs-numbers/dist/types/u128.d.ts +87 -0
  541. package/node_modules/@solana/codecs-numbers/dist/types/u128.d.ts.map +1 -0
  542. package/node_modules/@solana/codecs-numbers/dist/types/u16.d.ts +85 -0
  543. package/node_modules/@solana/codecs-numbers/dist/types/u16.d.ts.map +1 -0
  544. package/node_modules/@solana/codecs-numbers/dist/types/u32.d.ts +85 -0
  545. package/node_modules/@solana/codecs-numbers/dist/types/u32.d.ts.map +1 -0
  546. package/node_modules/@solana/codecs-numbers/dist/types/u64.d.ts +88 -0
  547. package/node_modules/@solana/codecs-numbers/dist/types/u64.d.ts.map +1 -0
  548. package/node_modules/@solana/codecs-numbers/dist/types/u8.d.ts +71 -0
  549. package/node_modules/@solana/codecs-numbers/dist/types/u8.d.ts.map +1 -0
  550. package/node_modules/@solana/codecs-numbers/dist/types/utils.d.ts +18 -0
  551. package/node_modules/@solana/codecs-numbers/dist/types/utils.d.ts.map +1 -0
  552. package/node_modules/@solana/codecs-numbers/package.json +83 -0
  553. package/node_modules/@solana/errors/LICENSE +20 -0
  554. package/node_modules/@solana/errors/README.md +87 -0
  555. package/node_modules/@solana/errors/bin/cli.mjs +7 -0
  556. package/node_modules/@solana/errors/dist/cli.mjs +570 -0
  557. package/node_modules/@solana/errors/dist/index.browser.cjs +1084 -0
  558. package/node_modules/@solana/errors/dist/index.browser.cjs.map +1 -0
  559. package/node_modules/@solana/errors/dist/index.browser.mjs +852 -0
  560. package/node_modules/@solana/errors/dist/index.browser.mjs.map +1 -0
  561. package/node_modules/@solana/errors/dist/index.native.mjs +852 -0
  562. package/node_modules/@solana/errors/dist/index.native.mjs.map +1 -0
  563. package/node_modules/@solana/errors/dist/index.node.cjs +1084 -0
  564. package/node_modules/@solana/errors/dist/index.node.cjs.map +1 -0
  565. package/node_modules/@solana/errors/dist/index.node.mjs +852 -0
  566. package/node_modules/@solana/errors/dist/index.node.mjs.map +1 -0
  567. package/node_modules/@solana/errors/dist/types/codes.d.ts +275 -0
  568. package/node_modules/@solana/errors/dist/types/codes.d.ts.map +1 -0
  569. package/node_modules/@solana/errors/dist/types/context.d.ts +398 -0
  570. package/node_modules/@solana/errors/dist/types/context.d.ts.map +1 -0
  571. package/node_modules/@solana/errors/dist/types/error.d.ts +75 -0
  572. package/node_modules/@solana/errors/dist/types/error.d.ts.map +1 -0
  573. package/node_modules/@solana/errors/dist/types/index.d.ts +72 -0
  574. package/node_modules/@solana/errors/dist/types/index.d.ts.map +1 -0
  575. package/node_modules/@solana/errors/dist/types/instruction-error.d.ts +9 -0
  576. package/node_modules/@solana/errors/dist/types/instruction-error.d.ts.map +1 -0
  577. package/node_modules/@solana/errors/dist/types/json-rpc-error.d.ts +51 -0
  578. package/node_modules/@solana/errors/dist/types/json-rpc-error.d.ts.map +1 -0
  579. package/node_modules/@solana/errors/dist/types/message-formatter.d.ts +4 -0
  580. package/node_modules/@solana/errors/dist/types/message-formatter.d.ts.map +1 -0
  581. package/node_modules/@solana/errors/dist/types/messages.d.ts +16 -0
  582. package/node_modules/@solana/errors/dist/types/messages.d.ts.map +1 -0
  583. package/node_modules/@solana/errors/dist/types/rpc-enum-errors.d.ts +31 -0
  584. package/node_modules/@solana/errors/dist/types/rpc-enum-errors.d.ts.map +1 -0
  585. package/node_modules/@solana/errors/dist/types/stack-trace.d.ts +2 -0
  586. package/node_modules/@solana/errors/dist/types/stack-trace.d.ts.map +1 -0
  587. package/node_modules/@solana/errors/dist/types/transaction-error.d.ts +5 -0
  588. package/node_modules/@solana/errors/dist/types/transaction-error.d.ts.map +1 -0
  589. package/node_modules/@solana/errors/node_modules/chalk/package.json +83 -0
  590. package/node_modules/@solana/errors/node_modules/chalk/readme.md +297 -0
  591. package/node_modules/@solana/errors/node_modules/chalk/source/index.d.ts +325 -0
  592. package/node_modules/@solana/errors/node_modules/chalk/source/index.js +225 -0
  593. package/node_modules/@solana/errors/node_modules/chalk/source/utilities.js +33 -0
  594. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  595. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  596. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  597. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  598. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  599. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/index.js +182 -0
  600. package/node_modules/{bindings/LICENSE.md → @solana/errors/node_modules/commander/LICENSE} +1 -1
  601. package/node_modules/@solana/errors/node_modules/commander/Readme.md +1149 -0
  602. package/node_modules/@solana/errors/node_modules/commander/esm.mjs +16 -0
  603. package/node_modules/@solana/errors/node_modules/commander/index.js +24 -0
  604. package/node_modules/@solana/errors/node_modules/commander/lib/argument.js +149 -0
  605. package/node_modules/@solana/errors/node_modules/commander/lib/command.js +2662 -0
  606. package/node_modules/@solana/errors/node_modules/commander/lib/error.js +39 -0
  607. package/node_modules/@solana/errors/node_modules/commander/lib/help.js +709 -0
  608. package/node_modules/@solana/errors/node_modules/commander/lib/option.js +367 -0
  609. package/node_modules/@solana/errors/node_modules/commander/lib/suggestSimilar.js +101 -0
  610. package/node_modules/@solana/errors/node_modules/commander/package-support.json +16 -0
  611. package/node_modules/@solana/errors/node_modules/commander/package.json +82 -0
  612. package/node_modules/@solana/errors/node_modules/commander/typings/esm.d.mts +3 -0
  613. package/node_modules/@solana/errors/node_modules/commander/typings/index.d.ts +1045 -0
  614. package/node_modules/@solana/errors/package.json +84 -0
  615. package/node_modules/@solana/web3.js/README.md +4 -4
  616. package/node_modules/@solana/web3.js/lib/index.browser.cjs.js +10 -20
  617. package/node_modules/@solana/web3.js/lib/index.browser.cjs.js.map +1 -1
  618. package/node_modules/@solana/web3.js/lib/index.browser.esm.js +8 -18
  619. package/node_modules/@solana/web3.js/lib/index.browser.esm.js.map +1 -1
  620. package/node_modules/@solana/web3.js/lib/index.cjs.js +10 -20
  621. package/node_modules/@solana/web3.js/lib/index.cjs.js.map +1 -1
  622. package/node_modules/@solana/web3.js/lib/index.esm.js +8 -18
  623. package/node_modules/@solana/web3.js/lib/index.esm.js.map +1 -1
  624. package/node_modules/@solana/web3.js/lib/index.iife.js +213 -88
  625. package/node_modules/@solana/web3.js/lib/index.iife.js.map +1 -1
  626. package/node_modules/@solana/web3.js/lib/index.iife.min.js +2 -2
  627. package/node_modules/@solana/web3.js/lib/index.iife.min.js.map +1 -1
  628. package/node_modules/@solana/web3.js/lib/index.native.js +10 -20
  629. package/node_modules/@solana/web3.js/lib/index.native.js.map +1 -1
  630. package/node_modules/@solana/web3.js/package.json +5 -5
  631. package/node_modules/@solana/web3.js/src/programs/address-lookup-table/index.ts +5 -2
  632. package/node_modules/@solana/web3.js/src/utils/bigint.ts +14 -33
  633. package/node_modules/@swc/helpers/_/_overload_yield/package.json +4 -0
  634. package/node_modules/@swc/helpers/cjs/_async_generator.cjs +10 -12
  635. package/node_modules/@swc/helpers/cjs/_async_generator_delegate.cjs +11 -7
  636. package/node_modules/@swc/helpers/cjs/_await_async_generator.cjs +2 -2
  637. package/node_modules/@swc/helpers/cjs/_overload_yield.cjs +8 -0
  638. package/node_modules/@swc/helpers/cjs/index.cjs +4 -0
  639. package/node_modules/@swc/helpers/esm/_async_generator.js +10 -12
  640. package/node_modules/@swc/helpers/esm/_async_generator_delegate.js +11 -7
  641. package/node_modules/@swc/helpers/esm/_await_async_generator.js +2 -2
  642. package/node_modules/@swc/helpers/esm/_overload_yield.js +6 -0
  643. package/node_modules/@swc/helpers/esm/index.js +1 -0
  644. package/node_modules/@swc/helpers/package.json +219 -1
  645. package/node_modules/@swc/helpers/scripts/build.js +15 -3
  646. package/node_modules/@swc/helpers/src/_overload_yield.mjs +1 -0
  647. package/node_modules/@types/node/README.md +2 -2
  648. package/node_modules/@types/node/assert.d.ts +7 -48
  649. package/node_modules/@types/node/async_hooks.d.ts +64 -2
  650. package/node_modules/@types/node/buffer.buffer.d.ts +3 -0
  651. package/node_modules/@types/node/buffer.d.ts +2 -2
  652. package/node_modules/@types/node/cluster.d.ts +1 -1
  653. package/node_modules/@types/node/crypto.d.ts +8 -9
  654. package/node_modules/@types/node/diagnostics_channel.d.ts +20 -1
  655. package/node_modules/@types/node/fs/promises.d.ts +21 -24
  656. package/node_modules/@types/node/fs.d.ts +93 -9
  657. package/node_modules/@types/node/globals.d.ts +141 -281
  658. package/node_modules/@types/node/http.d.ts +22 -1
  659. package/node_modules/@types/node/http2.d.ts +3 -4
  660. package/node_modules/@types/node/inspector.d.ts +36 -0
  661. package/node_modules/@types/node/module.d.ts +25 -0
  662. package/node_modules/@types/node/net.d.ts +14 -8
  663. package/node_modules/@types/node/package.json +7 -2
  664. package/node_modules/@types/node/process.d.ts +22 -0
  665. package/node_modules/@types/node/querystring.d.ts +2 -3
  666. package/node_modules/@types/node/readline.d.ts +6 -1
  667. package/node_modules/@types/node/sqlite.d.ts +36 -13
  668. package/node_modules/@types/node/stream/web.d.ts +3 -3
  669. package/node_modules/@types/node/test.d.ts +54 -6
  670. package/node_modules/@types/node/tls.d.ts +34 -1
  671. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +3 -0
  672. package/node_modules/@types/node/util.d.ts +232 -94
  673. package/node_modules/@types/node/v8.d.ts +81 -0
  674. package/node_modules/@types/node/vm.d.ts +20 -5
  675. package/node_modules/@types/node/zlib.d.ts +167 -36
  676. package/node_modules/bn.js/README.md +2 -2
  677. package/node_modules/bn.js/lib/bn.js +1 -0
  678. package/node_modules/bn.js/package.json +1 -1
  679. package/node_modules/{jsonparse/README.markdown → camelcase/license} +2 -4
  680. package/node_modules/jayson/lib/utils.js +11 -8
  681. package/node_modules/jayson/package.json +10 -7
  682. package/node_modules/rpc-websockets/node_modules/ws/lib/permessage-deflate.js +14 -0
  683. package/node_modules/rpc-websockets/node_modules/ws/lib/websocket.js +1 -1
  684. package/node_modules/rpc-websockets/node_modules/ws/package.json +2 -2
  685. package/node_modules/stream-chain/LICENSE +11 -0
  686. package/node_modules/stream-chain/README.md +334 -0
  687. package/node_modules/stream-chain/defs.js +22 -0
  688. package/node_modules/stream-chain/index.js +203 -0
  689. package/node_modules/stream-chain/package.json +31 -0
  690. package/node_modules/stream-chain/utils/FromIterable.js +94 -0
  691. package/node_modules/stream-chain/utils/Reduce.js +40 -0
  692. package/node_modules/stream-chain/utils/asFun.js +85 -0
  693. package/node_modules/stream-chain/utils/asGen.js +77 -0
  694. package/node_modules/stream-chain/utils/comp.js +20 -0
  695. package/node_modules/stream-chain/utils/fold.js +43 -0
  696. package/node_modules/stream-chain/utils/gen.js +24 -0
  697. package/node_modules/stream-chain/utils/scan.js +41 -0
  698. package/node_modules/stream-chain/utils/skip.js +32 -0
  699. package/node_modules/stream-chain/utils/skipWhile.js +46 -0
  700. package/node_modules/stream-chain/utils/take.js +39 -0
  701. package/node_modules/stream-chain/utils/takeWhile.js +47 -0
  702. package/node_modules/stream-json/Assembler.js +154 -0
  703. package/node_modules/stream-json/Disassembler.js +209 -0
  704. package/node_modules/stream-json/Emitter.js +22 -0
  705. package/node_modules/stream-json/LICENSE +34 -0
  706. package/node_modules/stream-json/Parser.js +545 -0
  707. package/node_modules/stream-json/README.md +128 -0
  708. package/node_modules/stream-json/Stringer.js +153 -0
  709. package/node_modules/stream-json/filters/Filter.js +130 -0
  710. package/node_modules/stream-json/filters/FilterBase.js +201 -0
  711. package/node_modules/stream-json/filters/Ignore.js +24 -0
  712. package/node_modules/stream-json/filters/Pick.js +58 -0
  713. package/node_modules/stream-json/filters/Replace.js +115 -0
  714. package/node_modules/stream-json/index.js +11 -0
  715. package/node_modules/stream-json/jsonl/Parser.js +131 -0
  716. package/node_modules/stream-json/jsonl/Stringer.js +29 -0
  717. package/node_modules/stream-json/package.json +45 -0
  718. package/node_modules/stream-json/streamers/StreamArray.js +44 -0
  719. package/node_modules/stream-json/streamers/StreamBase.js +101 -0
  720. package/node_modules/stream-json/streamers/StreamObject.js +43 -0
  721. package/node_modules/stream-json/streamers/StreamValues.js +33 -0
  722. package/node_modules/stream-json/utils/Batch.js +44 -0
  723. package/node_modules/stream-json/utils/Utf8Stream.js +53 -0
  724. package/node_modules/stream-json/utils/Verifier.js +485 -0
  725. package/node_modules/stream-json/utils/emit.js +5 -0
  726. package/node_modules/stream-json/utils/withParser.js +10 -0
  727. package/package.json +2 -1
  728. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/bls.d.ts.map +0 -1
  729. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/bls.js.map +0 -1
  730. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/curve.d.ts.map +0 -1
  731. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/curve.js.map +0 -1
  732. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/edwards.d.ts.map +0 -1
  733. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/edwards.js.map +0 -1
  734. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/hash-to-curve.d.ts.map +0 -1
  735. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/hash-to-curve.js.map +0 -1
  736. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/modular.d.ts.map +0 -1
  737. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/modular.js.map +0 -1
  738. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/montgomery.d.ts.map +0 -1
  739. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/montgomery.js +0 -160
  740. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/montgomery.js.map +0 -1
  741. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/poseidon.d.ts +0 -39
  742. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/poseidon.d.ts.map +0 -1
  743. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/poseidon.js +0 -121
  744. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/poseidon.js.map +0 -1
  745. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/tower.js.map +0 -1
  746. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/utils.d.ts.map +0 -1
  747. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/utils.js.map +0 -1
  748. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/weierstrass.d.ts.map +0 -1
  749. package/node_modules/@solana/web3.js/node_modules/@noble/curves/abstract/weierstrass.js.map +0 -1
  750. package/node_modules/@solana/web3.js/node_modules/@noble/curves/bls12-381.js.map +0 -1
  751. package/node_modules/@solana/web3.js/node_modules/@noble/curves/bn254.js.map +0 -1
  752. package/node_modules/@solana/web3.js/node_modules/@noble/curves/ed25519.d.ts.map +0 -1
  753. package/node_modules/@solana/web3.js/node_modules/@noble/curves/ed25519.js.map +0 -1
  754. package/node_modules/@solana/web3.js/node_modules/@noble/curves/ed448.d.ts.map +0 -1
  755. package/node_modules/@solana/web3.js/node_modules/@noble/curves/ed448.js.map +0 -1
  756. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/bls.d.ts.map +0 -1
  757. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/bls.js.map +0 -1
  758. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/curve.d.ts.map +0 -1
  759. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/curve.js.map +0 -1
  760. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/edwards.d.ts.map +0 -1
  761. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/edwards.js.map +0 -1
  762. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/hash-to-curve.d.ts.map +0 -1
  763. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/hash-to-curve.js.map +0 -1
  764. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/modular.d.ts.map +0 -1
  765. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/modular.js.map +0 -1
  766. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/montgomery.d.ts.map +0 -1
  767. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/montgomery.js +0 -157
  768. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/montgomery.js.map +0 -1
  769. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/poseidon.d.ts +0 -39
  770. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/poseidon.d.ts.map +0 -1
  771. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/poseidon.js +0 -116
  772. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/poseidon.js.map +0 -1
  773. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/tower.js.map +0 -1
  774. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/utils.d.ts.map +0 -1
  775. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/utils.js.map +0 -1
  776. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/weierstrass.d.ts.map +0 -1
  777. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/abstract/weierstrass.js.map +0 -1
  778. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/bls12-381.js.map +0 -1
  779. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/bn254.js.map +0 -1
  780. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/ed25519.d.ts.map +0 -1
  781. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/ed25519.js.map +0 -1
  782. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/ed448.d.ts.map +0 -1
  783. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/ed448.js.map +0 -1
  784. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/jubjub.d.ts +0 -5
  785. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/jubjub.d.ts.map +0 -1
  786. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/jubjub.js +0 -61
  787. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/jubjub.js.map +0 -1
  788. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p256.d.ts +0 -11
  789. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p256.d.ts.map +0 -1
  790. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p256.js +0 -49
  791. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p256.js.map +0 -1
  792. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p384.d.ts +0 -11
  793. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p384.d.ts.map +0 -1
  794. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p384.js +0 -53
  795. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p384.js.map +0 -1
  796. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p521.d.ts +0 -12
  797. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p521.d.ts.map +0 -1
  798. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p521.js +0 -61
  799. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/p521.js.map +0 -1
  800. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/pasta.d.ts +0 -8
  801. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/pasta.d.ts.map +0 -1
  802. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/pasta.js +0 -34
  803. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/pasta.js.map +0 -1
  804. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/secp256k1.d.ts.map +0 -1
  805. package/node_modules/@solana/web3.js/node_modules/@noble/curves/esm/secp256k1.js.map +0 -1
  806. package/node_modules/@solana/web3.js/node_modules/@noble/curves/jubjub.d.ts +0 -5
  807. package/node_modules/@solana/web3.js/node_modules/@noble/curves/jubjub.d.ts.map +0 -1
  808. package/node_modules/@solana/web3.js/node_modules/@noble/curves/jubjub.js +0 -66
  809. package/node_modules/@solana/web3.js/node_modules/@noble/curves/jubjub.js.map +0 -1
  810. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p256.d.ts +0 -11
  811. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p256.d.ts.map +0 -1
  812. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p256.js +0 -52
  813. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p256.js.map +0 -1
  814. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p384.d.ts +0 -11
  815. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p384.d.ts.map +0 -1
  816. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p384.js +0 -56
  817. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p384.js.map +0 -1
  818. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p521.d.ts +0 -12
  819. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p521.d.ts.map +0 -1
  820. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p521.js +0 -64
  821. package/node_modules/@solana/web3.js/node_modules/@noble/curves/p521.js.map +0 -1
  822. package/node_modules/@solana/web3.js/node_modules/@noble/curves/pasta.d.ts +0 -8
  823. package/node_modules/@solana/web3.js/node_modules/@noble/curves/pasta.d.ts.map +0 -1
  824. package/node_modules/@solana/web3.js/node_modules/@noble/curves/pasta.js +0 -37
  825. package/node_modules/@solana/web3.js/node_modules/@noble/curves/pasta.js.map +0 -1
  826. package/node_modules/@solana/web3.js/node_modules/@noble/curves/secp256k1.d.ts.map +0 -1
  827. package/node_modules/@solana/web3.js/node_modules/@noble/curves/secp256k1.js.map +0 -1
  828. package/node_modules/@solana/web3.js/node_modules/@noble/curves/src/abstract/montgomery.ts +0 -196
  829. package/node_modules/@solana/web3.js/node_modules/@noble/curves/src/abstract/poseidon.ts +0 -136
  830. package/node_modules/@solana/web3.js/node_modules/@noble/curves/src/jubjub.ts +0 -63
  831. package/node_modules/@solana/web3.js/node_modules/@noble/curves/src/p256.ts +0 -54
  832. package/node_modules/@solana/web3.js/node_modules/@noble/curves/src/p384.ts +0 -58
  833. package/node_modules/@solana/web3.js/node_modules/@noble/curves/src/p521.ts +0 -75
  834. package/node_modules/@solana/web3.js/node_modules/@noble/curves/src/pasta.ts +0 -39
  835. package/node_modules/JSONStream/.travis.yml +0 -8
  836. package/node_modules/JSONStream/LICENSE.APACHE2 +0 -15
  837. package/node_modules/JSONStream/LICENSE.MIT +0 -24
  838. package/node_modules/JSONStream/bin.js +0 -12
  839. package/node_modules/JSONStream/examples/all_docs.js +0 -13
  840. package/node_modules/JSONStream/index.js +0 -247
  841. package/node_modules/JSONStream/package.json +0 -40
  842. package/node_modules/JSONStream/readme.markdown +0 -207
  843. package/node_modules/JSONStream/test/bool.js +0 -41
  844. package/node_modules/JSONStream/test/browser.js +0 -18
  845. package/node_modules/JSONStream/test/destroy_missing.js +0 -27
  846. package/node_modules/JSONStream/test/doubledot1.js +0 -29
  847. package/node_modules/JSONStream/test/doubledot2.js +0 -30
  848. package/node_modules/JSONStream/test/empty.js +0 -44
  849. package/node_modules/JSONStream/test/error_contents.js +0 -45
  850. package/node_modules/JSONStream/test/fixtures/all_npm.json +0 -4030
  851. package/node_modules/JSONStream/test/fixtures/couch_sample.json +0 -18
  852. package/node_modules/JSONStream/test/fixtures/depth.json +0 -15
  853. package/node_modules/JSONStream/test/fixtures/error.json +0 -1
  854. package/node_modules/JSONStream/test/fixtures/header_footer.json +0 -19
  855. package/node_modules/JSONStream/test/fn.js +0 -39
  856. package/node_modules/JSONStream/test/gen.js +0 -135
  857. package/node_modules/JSONStream/test/header_footer.js +0 -55
  858. package/node_modules/JSONStream/test/issues.js +0 -34
  859. package/node_modules/JSONStream/test/keys.js +0 -105
  860. package/node_modules/JSONStream/test/map.js +0 -40
  861. package/node_modules/JSONStream/test/multiple_objects.js +0 -36
  862. package/node_modules/JSONStream/test/multiple_objects_error.js +0 -29
  863. package/node_modules/JSONStream/test/null.js +0 -28
  864. package/node_modules/JSONStream/test/parsejson.js +0 -29
  865. package/node_modules/JSONStream/test/run.js +0 -13
  866. package/node_modules/JSONStream/test/stringify.js +0 -41
  867. package/node_modules/JSONStream/test/stringify_object.js +0 -47
  868. package/node_modules/JSONStream/test/test.js +0 -35
  869. package/node_modules/JSONStream/test/test2.js +0 -29
  870. package/node_modules/JSONStream/test/two-ways.js +0 -41
  871. package/node_modules/bigint-buffer/.travis.yml +0 -51
  872. package/node_modules/bigint-buffer/LICENSE +0 -202
  873. package/node_modules/bigint-buffer/README.md +0 -121
  874. package/node_modules/bigint-buffer/binding.gyp +0 -8
  875. package/node_modules/bigint-buffer/build/Makefile +0 -347
  876. package/node_modules/bigint-buffer/build/Release/.deps/Release/bigint_buffer.node.d +0 -1
  877. package/node_modules/bigint-buffer/build/Release/.deps/Release/obj.target/bigint_buffer/src/bigint-buffer.o.d +0 -12
  878. package/node_modules/bigint-buffer/build/Release/bigint_buffer.node +0 -0
  879. package/node_modules/bigint-buffer/build/Release/obj.target/bigint_buffer/src/bigint-buffer.o +0 -0
  880. package/node_modules/bigint-buffer/build/bigint_buffer.target.mk +0 -180
  881. package/node_modules/bigint-buffer/build/binding.Makefile +0 -6
  882. package/node_modules/bigint-buffer/build/config.gypi +0 -450
  883. package/node_modules/bigint-buffer/build/gyp-mac-tool +0 -772
  884. package/node_modules/bigint-buffer/dist/browser.js +0 -69
  885. package/node_modules/bigint-buffer/dist/index.bench.d.ts +0 -1
  886. package/node_modules/bigint-buffer/dist/index.d.ts +0 -27
  887. package/node_modules/bigint-buffer/dist/index.spec.d.ts +0 -1
  888. package/node_modules/bigint-buffer/dist/node.js +0 -77
  889. package/node_modules/bigint-buffer/helper/bigint.d.ts +0 -3
  890. package/node_modules/bigint-buffer/karma.conf.js +0 -62
  891. package/node_modules/bigint-buffer/package.json +0 -89
  892. package/node_modules/bigint-buffer/rollup.config.js +0 -13
  893. package/node_modules/bigint-buffer/src/bigint-buffer.c +0 -203
  894. package/node_modules/bigint-buffer/src/index.bench.ts +0 -207
  895. package/node_modules/bigint-buffer/src/index.spec.ts +0 -288
  896. package/node_modules/bigint-buffer/src/index.ts +0 -84
  897. package/node_modules/bigint-buffer/tsconfig.json +0 -19
  898. package/node_modules/bindings/README.md +0 -98
  899. package/node_modules/bindings/bindings.js +0 -221
  900. package/node_modules/bindings/package.json +0 -28
  901. package/node_modules/file-uri-to-path/.npmignore +0 -1
  902. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  903. package/node_modules/file-uri-to-path/History.md +0 -21
  904. package/node_modules/file-uri-to-path/README.md +0 -74
  905. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  906. package/node_modules/file-uri-to-path/index.js +0 -66
  907. package/node_modules/file-uri-to-path/package.json +0 -32
  908. package/node_modules/file-uri-to-path/test/test.js +0 -24
  909. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  910. package/node_modules/jsonparse/.npmignore +0 -1
  911. package/node_modules/jsonparse/LICENSE +0 -24
  912. package/node_modules/jsonparse/bench.js +0 -26
  913. package/node_modules/jsonparse/examples/twitterfeed.js +0 -30
  914. package/node_modules/jsonparse/jsonparse.js +0 -413
  915. package/node_modules/jsonparse/package.json +0 -22
  916. package/node_modules/jsonparse/samplejson/basic.json +0 -167
  917. package/node_modules/jsonparse/samplejson/basic2.json +0 -180
  918. package/node_modules/jsonparse/test/big-token.js +0 -24
  919. package/node_modules/jsonparse/test/boundary.js +0 -110
  920. package/node_modules/jsonparse/test/offset.js +0 -67
  921. package/node_modules/jsonparse/test/primitives.js +0 -57
  922. package/node_modules/jsonparse/test/surrogate.js +0 -26
  923. package/node_modules/jsonparse/test/unvalid.js +0 -15
  924. package/node_modules/jsonparse/test/utf8.js +0 -38
  925. package/node_modules/regenerator-runtime/LICENSE +0 -21
  926. package/node_modules/regenerator-runtime/README.md +0 -31
  927. package/node_modules/regenerator-runtime/package.json +0 -19
  928. package/node_modules/regenerator-runtime/path.js +0 -11
  929. package/node_modules/regenerator-runtime/runtime.js +0 -761
  930. package/node_modules/through/.travis.yml +0 -5
  931. package/node_modules/through/LICENSE.APACHE2 +0 -15
  932. package/node_modules/through/LICENSE.MIT +0 -24
  933. package/node_modules/through/index.js +0 -108
  934. package/node_modules/through/package.json +0 -36
  935. package/node_modules/through/readme.markdown +0 -64
  936. package/node_modules/through/test/async.js +0 -28
  937. package/node_modules/through/test/auto-destroy.js +0 -30
  938. package/node_modules/through/test/buffering.js +0 -71
  939. package/node_modules/through/test/end.js +0 -45
  940. package/node_modules/through/test/index.js +0 -133
  941. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/LICENSE +0 -0
  942. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/_shortw_utils.d.ts.map +0 -0
  943. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/_shortw_utils.js.map +0 -0
  944. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/_shortw_utils.d.ts.map +0 -0
  945. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/_shortw_utils.js.map +0 -0
  946. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/index.d.ts +0 -0
  947. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/index.d.ts.map +0 -0
  948. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/index.js +0 -0
  949. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/index.js.map +0 -0
  950. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/esm/package.json +0 -0
  951. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/index.d.ts +0 -0
  952. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/index.d.ts.map +0 -0
  953. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/index.js +0 -0
  954. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/index.js.map +0 -0
  955. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/index.ts +0 -0
  956. /package/node_modules/{@solana/web3.js/node_modules/@noble → @noble}/curves/src/package.json +0 -0
  957. /package/node_modules/{@coral-xyz/anchor/node_modules/camelcase → @solana/errors/node_modules/chalk}/license +0 -0
  958. /package/node_modules/{@coral-xyz/anchor/node_modules/camelcase → camelcase}/index.d.ts +0 -0
  959. /package/node_modules/{@coral-xyz/anchor/node_modules/camelcase → camelcase}/index.js +0 -0
  960. /package/node_modules/{@coral-xyz/anchor/node_modules/camelcase → camelcase}/package.json +0 -0
  961. /package/node_modules/{@coral-xyz/anchor/node_modules/camelcase → camelcase}/readme.md +0 -0
  962. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/CopyrightNotice.txt +0 -0
  963. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/LICENSE.txt +0 -0
  964. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/README.md +0 -0
  965. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/SECURITY.md +0 -0
  966. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/modules/index.d.ts +0 -0
  967. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/modules/index.js +0 -0
  968. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/modules/package.json +0 -0
  969. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/package.json +0 -0
  970. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/tslib.d.ts +0 -0
  971. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/tslib.es6.html +0 -0
  972. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/tslib.es6.js +0 -0
  973. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/tslib.es6.mjs +0 -0
  974. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/tslib.html +0 -0
  975. /package/node_modules/{@swc/helpers/node_modules/tslib → tslib}/tslib.js +0 -0
@@ -0,0 +1,662 @@
1
+ [![npm][npm-image]][npm-url]
2
+ [![npm-downloads][npm-downloads-image]][npm-url]
3
+ <br />
4
+ [![code-style-prettier][code-style-prettier-image]][code-style-prettier-url]
5
+
6
+ [code-style-prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
7
+ [code-style-prettier-url]: https://github.com/prettier/prettier
8
+ [npm-downloads-image]: https://img.shields.io/npm/dm/@solana/codecs-core?style=flat
9
+ [npm-image]: https://img.shields.io/npm/v/@solana/codecs-core?style=flat
10
+ [npm-url]: https://www.npmjs.com/package/@solana/codecs-core
11
+
12
+ # @solana/codecs-core
13
+
14
+ This package contains the core types and functions for encoding and decoding data structures on Solana. It can be used standalone, but it is also exported as part of Kit [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).
15
+
16
+ This package is also part of the [`@solana/codecs` package](https://github.com/anza-xyz/kit/tree/main/packages/codecs) which acts as an entry point for all codec packages as well as for their documentation.
17
+
18
+ ## Composing codecs
19
+
20
+ The easiest way to create your own codecs is to compose the [various codecs](https://github.com/anza-xyz/kit/tree/main/packages/codecs) offered by this library. For instance, here’s how you would define a codec for a `Person` object that contains a `name` string attribute and an `age` number stored in 4 bytes.
21
+
22
+ ```ts
23
+ type Person = { name: string; age: number };
24
+ const getPersonCodec = (): Codec<Person> =>
25
+ getStructCodec([
26
+ ['name', addCodecSizePrefix(getUtf8Codec(), getU32Codec())],
27
+ ['age', getU32Codec()],
28
+ ]);
29
+ ```
30
+
31
+ This function returns a `Codec` object which contains both an `encode` and `decode` function that can be used to convert a `Person` type to and from a `Uint8Array`.
32
+
33
+ ```ts
34
+ const personCodec = getPersonCodec();
35
+ const bytes = personCodec.encode({ name: 'John', age: 42 });
36
+ const person = personCodec.decode(bytes);
37
+ ```
38
+
39
+ There is a significant library of composable codecs at your disposal, enabling you to compose complex types. You may be interested in the documentation of these other packages to learn more about them:
40
+
41
+ - [`@solana/codecs-numbers`](https://github.com/anza-xyz/kit/tree/main/packages/codecs-numbers) for number codecs.
42
+ - [`@solana/codecs-strings`](https://github.com/anza-xyz/kit/tree/main/packages/codecs-strings) for string codecs.
43
+ - [`@solana/codecs-data-structures`](https://github.com/anza-xyz/kit/tree/main/packages/codecs-data-structures) for many data structure codecs such as objects, arrays, tuples, sets, maps, enums, discriminated unions, booleans, etc.
44
+ - [`@solana/options`](https://github.com/anza-xyz/kit/tree/main/packages/options) for a Rust-like `Option` type and associated codec.
45
+
46
+ You may also be interested in some of the helpers of this `@solana/codecs-core` library such as `transformCodec`, `fixCodecSize` or `reverseCodec` that create new codecs from existing ones.
47
+
48
+ Note that all of these libraries are included in the [`@solana/codecs` package](https://github.com/anza-xyz/kit/tree/main/packages/codecs) as well as the main `@solana/kit` package for your convenience.
49
+
50
+ ## Composing encoders and decoders
51
+
52
+ Whilst Codecs can both encode and decode, it is possible to only focus on encoding or decoding data, enabling the unused logic to be tree-shaken. For instance, here’s our previous example using Encoders only to encode a `Person` type.
53
+
54
+ ```ts
55
+ const getPersonEncoder = (): Encoder<Person> =>
56
+ getStructEncoder([
57
+ ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],
58
+ ['age', getU32Encoder()],
59
+ ]);
60
+
61
+ const bytes = getPersonEncoder().encode({ name: 'John', age: 42 });
62
+ ```
63
+
64
+ The same can be done for decoding the `Person` type by using Decoders like so.
65
+
66
+ ```ts
67
+ const getPersonDecoder = (): Decoder<Person> =>
68
+ getStructDecoder([
69
+ ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
70
+ ['age', getU32Decoder()],
71
+ ]);
72
+
73
+ const person = getPersonDecoder().decode(bytes);
74
+ ```
75
+
76
+ ## Combining encoders and decoders
77
+
78
+ Separating Codecs into Encoders and Decoders is particularly good practice for library maintainers as it allows their users to tree-shake any of the encoders and/or decoders they don’t need. However, we may still want to offer a codec helper for users who need both for convenience.
79
+
80
+ That’s why this library offers a `combineCodec` helper that creates a `Codec` instance from a matching `Encoder` and `Decoder`.
81
+
82
+ ```ts
83
+ const getPersonCodec = (): Codec<Person> => combineCodec(getPersonEncoder(), getPersonDecoder());
84
+ ```
85
+
86
+ This means library maintainers can offer Encoders, Decoders and Codecs for all their types whilst staying efficient and tree-shakeable. In summary, we recommend the following pattern when creating codecs for library types.
87
+
88
+ ```ts
89
+ type MyType = /* ... */;
90
+ const getMyTypeEncoder = (): Encoder<MyType> => { /* ... */ };
91
+ const getMyTypeDecoder = (): Decoder<MyType> => { /* ... */ };
92
+ const getMyTypeCodec = (): Codec<MyType> =>
93
+ combineCodec(getMyTypeEncoder(), getMyTypeDecoder());
94
+ ```
95
+
96
+ ## Different From and To types
97
+
98
+ When creating codecs, the encoded type is allowed to be looser than the decoded type. A good example of that is the u64 number codec:
99
+
100
+ ```ts
101
+ const u64Codec: Codec<number | bigint, bigint> = getU64Codec();
102
+ ```
103
+
104
+ As you can see, the first type parameter is looser since it accepts numbers or big integers, whereas the second type parameter only accepts big integers. That’s because when _encoding_ a u64 number, you may provide either a `bigint` or a `number` for convenience. However, when you decode a u64 number, you will always get a `bigint` because not all u64 values can fit in a JavaScript `number` type.
105
+
106
+ ```ts
107
+ const bytes = u64Codec.encode(42);
108
+ const value = u64Codec.decode(bytes); // BigInt(42)
109
+ ```
110
+
111
+ This relationship between the type we encode “From” and decode “To” can be generalized in TypeScript as `To extends From`.
112
+
113
+ Here’s another example using an object with default values. You can read more about the `transformEncoder` helper below.
114
+
115
+ ```ts
116
+ type Person = { name: string, age: number };
117
+ type PersonInput = { name: string, age?: number };
118
+
119
+ const getPersonEncoder = (): Encoder<PersonInput> =>
120
+ transformEncoder(
121
+ getStructEncoder([
122
+ ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],
123
+ ['age', getU32Encoder()],
124
+ ]),
125
+ input => { ...input, age: input.age ?? 42 }
126
+ );
127
+
128
+ const getPersonDecoder = (): Decoder<Person> =>
129
+ getStructDecoder([
130
+ ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
131
+ ['age', getU32Decoder()],
132
+ ]);
133
+
134
+ const getPersonCodec = (): Codec<PersonInput, Person> =>
135
+ combineCodec(getPersonEncoder(), getPersonDecoder())
136
+ ```
137
+
138
+ ## Fixed-size and variable-size codecs
139
+
140
+ It is also worth noting that Codecs can either be of fixed size or variable size.
141
+
142
+ `FixedSizeCodecs` have a `fixedSize` number attribute that tells us exactly how big their encoded data is in bytes.
143
+
144
+ ```ts
145
+ const myCodec: FixedSizeCodec<number> = getU32Codec();
146
+ myCodec.fixedSize; // 4 bytes.
147
+ ```
148
+
149
+ On the other hand, `VariableSizeCodecs` do not know the size of their encoded data in advance. Instead, they will grab that information either from the provided encoded data or from the value to encode. For the former, we can simply access the length of the `Uint8Array`. For the latter, it provides a `getSizeFromValue` that tells us the encoded byte size of the provided value.
150
+
151
+ ```ts
152
+ const myCodec: VariableSizeCodec<string> = addCodecSizePrefix(getUtf8Codec(), getU32Codec());
153
+ myCodec.getSizeFromValue('hello world'); // 4 + 11 bytes.
154
+ ```
155
+
156
+ Also note that, if the `VariableSizeCodec` is bounded by a maximum size, it can be provided as a `maxSize` number attribute.
157
+
158
+ The following type guards are available to identify and/or assert the size of codecs: `isFixedSize`, `isVariableSize`, `assertIsFixedSize` and `assertIsVariableSize`.
159
+
160
+ Finally, note that the same is true for `Encoders` and `Decoders`.
161
+
162
+ - A `FixedSizeEncoder` has a `fixedSize` number attribute.
163
+ - A `VariableSizeEncoder` has a `getSizeFromValue` function and an optional `maxSize` number attribute.
164
+ - A `FixedSizeDecoder` has a `fixedSize` number attribute.
165
+ - A `VariableSizeDecoder` has an optional `maxSize` number attribute.
166
+
167
+ ## Creating custom codecs
168
+
169
+ If composing codecs isn’t enough for you, you may implement your own codec logic by using the `createCodec` function. This function requires an object with a `read` and a `write` function telling us how to read from and write to an existing byte array.
170
+
171
+ The `read` function accepts the `bytes` to decode from and the `offset` at each we should start reading. It returns an array with two items:
172
+
173
+ - The first item should be the decoded value.
174
+ - The second item should be the next offset to read from.
175
+
176
+ ```ts
177
+ createCodec({
178
+ read(bytes, offset) {
179
+ const value = bytes[offset];
180
+ return [value, offset + 1];
181
+ },
182
+ // ...
183
+ });
184
+ ```
185
+
186
+ Reciprocally, the `write` function accepts the `value` to encode, the array of `bytes` to write the encoded value to and the `offset` at which it should be written. It should encode the given value, insert it in the byte array, and provide the next offset to write to as the return value.
187
+
188
+ ```ts
189
+ createCodec({
190
+ write(value, bytes, offset) {
191
+ bytes.set(value, offset);
192
+ return offset + 1;
193
+ },
194
+ // ...
195
+ });
196
+ ```
197
+
198
+ Additionally, we must specify the size of the codec. If we are defining a `FixedSizeCodec`, we must simply provide the `fixedSize` number attribute. For `VariableSizeCodecs`, we must provide the `getSizeFromValue` function as described in the previous section.
199
+
200
+ ```ts
201
+ // FixedSizeCodec.
202
+ createCodec({
203
+ fixedSize: 1,
204
+ // ...
205
+ });
206
+
207
+ // VariableSizeCodec.
208
+ createCodec({
209
+ getSizeFromValue: (value: string) => value.length,
210
+ // ...
211
+ });
212
+ ```
213
+
214
+ Here’s a concrete example of a custom codec that encodes any unsigned integer in a single byte. Since a single byte can only store integers from 0 to 255, if any other integer is provided it will take its modulo 256 to ensure it fits in a single byte. Because it always requires a single byte, that codec is a `FixedSizeCodec` of size `1`.
215
+
216
+ ```ts
217
+ const getModuloU8Codec = () =>
218
+ createCodec<number>({
219
+ fixedSize: 1,
220
+ read(bytes, offset) {
221
+ const value = bytes[offset];
222
+ return [value, offset + 1];
223
+ },
224
+ write(value, bytes, offset) {
225
+ bytes.set(value % 256, offset);
226
+ return offset + 1;
227
+ },
228
+ });
229
+ ```
230
+
231
+ Note that, it is also possible to create custom encoders and decoders separately by using the `createEncoder` and `createDecoder` functions respectively and then use the `combineCodec` function on them just like we were doing with composed codecs.
232
+
233
+ This approach is recommended to library maintainers as it allows their users to tree-shake any of the encoders and/or decoders they don’t need.
234
+
235
+ Here’s our previous modulo u8 example but split into separate `Encoder`, `Decoder` and `Codec` instances.
236
+
237
+ ```ts
238
+ const getModuloU8Encoder = () =>
239
+ createEncoder<number>({
240
+ fixedSize: 1,
241
+ write(value, bytes, offset) {
242
+ bytes.set(value % 256, offset);
243
+ return offset + 1;
244
+ },
245
+ });
246
+
247
+ const getModuloU8Decoder = () =>
248
+ createDecoder<number>({
249
+ fixedSize: 1,
250
+ read(bytes, offset) {
251
+ const value = bytes[offset];
252
+ return [value, offset + 1];
253
+ },
254
+ });
255
+
256
+ const getModuloU8Codec = () => combineCodec(getModuloU8Encoder(), getModuloU8Decoder());
257
+ ```
258
+
259
+ Here’s another example returning a `VariableSizeCodec`. This one transforms a simple string composed of characters from `a` to `z` to a buffer of numbers from `1` to `26` where `0` bytes are spaces.
260
+
261
+ ```ts
262
+ const alphabet = ' abcdefghijklmnopqrstuvwxyz';
263
+
264
+ const getCipherEncoder = () =>
265
+ createEncoder<string>({
266
+ getSizeFromValue: value => value.length,
267
+ write(value, bytes, offset) {
268
+ const bytesToAdd = [...value].map(char => alphabet.indexOf(char));
269
+ bytes.set(bytesToAdd, offset);
270
+ return offset + bytesToAdd.length;
271
+ },
272
+ });
273
+
274
+ const getCipherDecoder = () =>
275
+ createDecoder<string>({
276
+ read(bytes, offset) {
277
+ const value = [...bytes.slice(offset)].map(byte => alphabet.charAt(byte)).join('');
278
+ return [value, bytes.length];
279
+ },
280
+ });
281
+
282
+ const getCipherCodec = () => combineCodec(getCipherEncoder(), getCipherDecoder());
283
+ ```
284
+
285
+ ## Transforming codecs
286
+
287
+ It is possible to transform a `Codec<T>` to a `Codec<U>` by providing two mapping functions: one that goes from `T` to `U` and one that does the opposite.
288
+
289
+ For instance, here’s how you would map a `u32` integer into a `string` representation of that number.
290
+
291
+ ```ts
292
+ const getStringU32Codec = () =>
293
+ transformCodec(
294
+ getU32Codec(),
295
+ (integerAsString: string): number => parseInt(integerAsString),
296
+ (integer: number): string => integer.toString(),
297
+ );
298
+
299
+ getStringU32Codec().encode('42'); // new Uint8Array([42])
300
+ getStringU32Codec().decode(new Uint8Array([42])); // "42"
301
+ ```
302
+
303
+ If a `Codec` has [different From and To types](#different-from-and-to-types), say `Codec<OldFrom, OldTo>`, and we want to map it to `Codec<NewFrom, NewTo>`, we must provide functions that map from `NewFrom` to `OldFrom` and from `OldTo` to `NewTo`.
304
+
305
+ To illustrate that, let’s take our previous `getStringU32Codec` example but make it use a `getU64Codec` codec instead as it returns a `Codec<number | bigint, bigint>`. Additionally, let’s make it so our `getStringU64Codec` function returns a `Codec<number | string, string>` so that it also accepts numbers when encoding values. Here’s what our mapping functions look like:
306
+
307
+ ```ts
308
+ const getStringU64Codec = () =>
309
+ transformCodec(
310
+ getU64Codec(),
311
+ (integerInput: number | string): number | bigint =>
312
+ typeof integerInput === 'string' ? BigInt(integerAsString) : integerInput,
313
+ (integer: bigint): string => integer.toString(),
314
+ );
315
+ ```
316
+
317
+ Note that the second function that maps the decoded type is optional. That means, you can omit it to simply update or loosen the type to encode whilst keeping the decoded type the same.
318
+
319
+ This is particularly useful to provide default values to object structures. For instance, here’s how we can map our `Person` codec to give a default value to its `age` attribute.
320
+
321
+ ```ts
322
+ type Person = { name: string; age: number; }
323
+ const getPersonCodec = (): Codec<Person> => { /*...*/ }
324
+
325
+ type PersonInput = { name: string; age?: number; }
326
+ const getPersonWithDefaultValueCodec = (): Codec<PersonInput, Person> =>
327
+ transformCodec(
328
+ getPersonCodec(),
329
+ (person: PersonInput): Person => { ...person, age: person.age ?? 42 }
330
+ )
331
+ ```
332
+
333
+ Similar helpers exist to map `Encoder` and `Decoder` instances allowing you to separate your codec logic into tree-shakeable functions. Here’s our `getStringU32Codec` written that way.
334
+
335
+ ```ts
336
+ const getStringU32Encoder = () =>
337
+ transformEncoder(getU32Encoder(), (integerAsString: string): number => parseInt(integerAsString));
338
+ const getStringU32Decoder = () => transformDecoder(getU32Decoder(), (integer: number): string => integer.toString());
339
+ const getStringU32Codec = () => combineCodec(getStringU32Encoder(), getStringU32Decoder());
340
+ ```
341
+
342
+ ## Fixing the size of codecs
343
+
344
+ The `fixCodecSize` function allows you to bind the size of a given codec to the given fixed size.
345
+
346
+ For instance, say you want to represent a base-58 string that uses exactly 32 bytes when decoded. Here’s how you can use the `fixCodecSize` helper to achieve that.
347
+
348
+ ```ts
349
+ const get32BytesBase58Codec = () => fixCodecSize(getBase58Codec(), 32);
350
+ ```
351
+
352
+ You may also use the `fixEncoderSize` and `fixDecoderSize` functions to separate your codec logic like so:
353
+
354
+ ```ts
355
+ const get32BytesBase58Encoder = () => fixEncoderSize(getBase58Encoder(), 32);
356
+ const get32BytesBase58Decoder = () => fixDecoderSize(getBase58Decoder(), 32);
357
+ const get32BytesBase58Codec = () => combineCodec(get32BytesBase58Encoder(), get32BytesBase58Decoder());
358
+ ```
359
+
360
+ ## Prefixing codecs with their size
361
+
362
+ The `addCodecSizePrefix` function allows you to store the byte size of any codec as a number prefix. This allows you to contain variable-size codecs to their actual size.
363
+
364
+ When encoding, the size of the encoded data is stored before the encoded data itself. When decoding, the size is read first to know how many bytes to read next.
365
+
366
+ For example, say we want to represent a variable-size base-58 string using a `u32` size prefix. Here’s how you can use the `addCodecSizePrefix` function to achieve that.
367
+
368
+ ```ts
369
+ const getU32Base58Codec = () => addCodecSizePrefix(getBase58Codec(), getU32Codec());
370
+
371
+ getU32Base58Codec().encode('hello world');
372
+ // 0x0b00000068656c6c6f20776f726c64
373
+ // | └-- Our encoded base-58 string.
374
+ // └-- Our encoded u32 size prefix.
375
+ ```
376
+
377
+ You may also use the `addEncoderSizePrefix` and `addDecoderSizePrefix` functions to separate your codec logic like so:
378
+
379
+ ```ts
380
+ const getU32Base58Encoder = () => addEncoderSizePrefix(getBase58Encoder(), getU32Encoder());
381
+ const getU32Base58Decoder = () => addDecoderSizePrefix(getBase58Decoder(), getU32Decoder());
382
+ const getU32Base58Codec = () => combineCodec(getU32Base58Encoder(), getU32Base58Decoder());
383
+ ```
384
+
385
+ ## Adding sentinels to codecs
386
+
387
+ Another way of delimiting the size of a codec is to use sentinels. The `addCodecSentinel` function allows us to add a sentinel to the end of the encoded data and to read until that sentinel is found when decoding. It accepts any codec and a `Uint8Array` sentinel responsible for delimiting the encoded data.
388
+
389
+ ```ts
390
+ const codec = addCodecSentinel(getUtf8Codec(), new Uint8Array([255, 255]));
391
+ codec.encode('hello');
392
+ // 0x68656c6c6fffff
393
+ // | └-- Our sentinel.
394
+ // └-- Our encoded string.
395
+ ```
396
+
397
+ Note that the sentinel _must not_ be present in the encoded data and _must_ be present in the decoded data for this to work. If this is not the case, dedicated errors will be thrown.
398
+
399
+ ```ts
400
+ const sentinel = new Uint8Array([108, 108]); // 'll'
401
+ const codec = addCodecSentinel(getUtf8Codec(), sentinel);
402
+
403
+ codec.encode('hello'); // Throws: sentinel is in encoded data.
404
+ codec.decode(new Uint8Array([1, 2, 3])); // Throws: sentinel missing in decoded data.
405
+ ```
406
+
407
+ Separate `addEncoderSentinel` and `addDecoderSentinel` functions are also available.
408
+
409
+ ```ts
410
+ const bytes = addEncoderSentinel(getUtf8Encoder(), sentinel).encode('hello');
411
+ const value = addDecoderSentinel(getUtf8Decoder(), sentinel).decode(bytes);
412
+ ```
413
+
414
+ ## Adjusting the size of codecs
415
+
416
+ The `resizeCodec` helper re-defines the size of a given codec by accepting a function that takes the current size of the codec and returns a new size. This works for both fixed-size and variable-size codecs.
417
+
418
+ ```ts
419
+ // Fixed-size codec.
420
+ const getBiggerU32Codec = () => resizeCodec(getU32Codec(), size => size + 4);
421
+ getBiggerU32Codec().encode(42);
422
+ // 0x2a00000000000000
423
+ // | └-- Empty buffer space caused by the resizeCodec function.
424
+ // └-- Our encoded u32 number.
425
+
426
+ // Variable-size codec.
427
+ const getBiggerUtf8Codec = () => resizeCodec(getUtf8Codec(), size => size + 4);
428
+ getBiggerUtf8Codec().encode('ABC');
429
+ // 0x41424300000000
430
+ // | └-- Empty buffer space caused by the resizeCodec function.
431
+ // └-- Our encoded string.
432
+ ```
433
+
434
+ Note that the `resizeCodec` function doesn't change any encoded or decoded bytes, it merely tells the `encode` and `decode` functions how big the `Uint8Array` should be before delegating to their respective `write` and `read` functions. In fact, this is completely bypassed when using the `write` and `read` functions directly. For instance:
435
+
436
+ ```ts
437
+ const getBiggerU32Codec = () => resizeCodec(getU32Codec(), size => size + 4);
438
+
439
+ // Using the encode function.
440
+ getBiggerU32Codec().encode(42);
441
+ // 0x2a00000000000000
442
+
443
+ // Using the lower-level write function.
444
+ const myCustomBytes = new Uint8Array(4);
445
+ getBiggerU32Codec().write(42, myCustomBytes, 0);
446
+ // 0x2a000000
447
+ ```
448
+
449
+ So when would it make sense to use the `resizeCodec` function? This function is particularly useful when combined with the `offsetCodec` function described below. Whilst the `offsetCodec` may help us push the offset forward — e.g. to skip some padding — it won't change the size of the encoded data which means the last bytes will be truncated by how much we pushed the offset forward. The `resizeCodec` function can be used to fix that. For instance, here's how we can use the `resizeCodec` and the `offsetCodec` functions together to create a struct codec that includes some padding.
450
+
451
+ ```ts
452
+ const personCodec = getStructCodec([
453
+ ['name', fixCodecSize(getUtf8Codec(), 8)],
454
+ // There is a 4-byte padding between name and age.
455
+ [
456
+ 'age',
457
+ offsetCodec(
458
+ resizeCodec(getU32Codec(), size => size + 4),
459
+ { preOffset: ({ preOffset }) => preOffset + 4 },
460
+ ),
461
+ ],
462
+ ]);
463
+
464
+ personCodec.encode({ name: 'Alice', age: 42 });
465
+ // 0x416c696365000000000000002a000000
466
+ // | | └-- Our encoded u32 (42).
467
+ // | └-- The 4-bytes of padding we are skipping.
468
+ // └-- Our 8-byte encoded string ("Alice").
469
+ ```
470
+
471
+ As usual, the `resizeEncoder` and `resizeDecoder` functions can also be used to achieve that.
472
+
473
+ ```ts
474
+ const getBiggerU32Encoder = () => resizeEncoder(getU32Codec(), size => size + 4);
475
+ const getBiggerU32Decoder = () => resizeDecoder(getU32Codec(), size => size + 4);
476
+ const getBiggerU32Codec = () => combineCodec(getBiggerU32Encoder(), getBiggerU32Decoder());
477
+ ```
478
+
479
+ ## Offsetting codecs
480
+
481
+ The `offsetCodec` function is a powerful codec primitive that allows you to move the offset of a given codec forward or backwards. It accepts one or two functions that takes the current offset and returns a new offset.
482
+
483
+ To understand how this works, let's take our previous `biggerU32Codec` example which encodes a `u32` number inside an 8-byte buffer.
484
+
485
+ ```ts
486
+ const biggerU32Codec = resizeCodec(getU32Codec(), size => size + 4);
487
+ biggerU32Codec.encode(0xffffffff);
488
+ // 0xffffffff00000000
489
+ // | └-- Empty buffer space caused by the resizeCodec function.
490
+ // └-- Our encoded u32 number.
491
+ ```
492
+
493
+ Now, let's say we want to move the offset of that codec 2 bytes forward so that the encoded number sits in the middle of the buffer. To achieve, this we can use the `offsetCodec` helper and provide a `preOffset` function that moves the "pre-offset" of the codec 2 bytes forward.
494
+
495
+ ```ts
496
+ const u32InTheMiddleCodec = offsetCodec(biggerU32Codec, {
497
+ preOffset: ({ preOffset }) => preOffset + 2,
498
+ });
499
+ u32InTheMiddleCodec.encode(0xffffffff);
500
+ // 0x0000ffffffff0000
501
+ // └-- Our encoded u32 number is now in the middle of the buffer.
502
+ ```
503
+
504
+ We refer to this offset as the "pre-offset" because, once the inner codec is encoded or decoded, an additional offset will be returned which we refer to as the "post-offset". That "post-offset" is important as, unless we are reaching the end of our codec, it will be used by any further codecs to continue encoding or decoding data.
505
+
506
+ By default, that "post-offset" is simply the addition of the "pre-offset" and the size of the encoded or decoded inner data.
507
+
508
+ ```ts
509
+ const u32InTheMiddleCodec = offsetCodec(biggerU32Codec, {
510
+ preOffset: ({ preOffset }) => preOffset + 2,
511
+ });
512
+ u32InTheMiddleCodec.encode(0xffffffff);
513
+ // 0x0000ffffffff0000
514
+ // | | └-- Post-offset.
515
+ // | └-- New pre-offset: The original pre-offset + 2.
516
+ // └-- Pre-offset: The original pre-offset before we adjusted it.
517
+ ```
518
+
519
+ However, you may also provide a `postOffset` function to adjust the "post-offset". For instance, let's push the "post-offset" 2 bytes forward as well such that any further codecs will start doing their job at the end of our 8-byte `u32` number.
520
+
521
+ ```ts
522
+ const u32InTheMiddleCodec = offsetCodec(biggerU32Codec, {
523
+ preOffset: ({ preOffset }) => preOffset + 2,
524
+ postOffset: ({ postOffset }) => postOffset + 2,
525
+ });
526
+ u32InTheMiddleCodec.encode(0xffffffff);
527
+ // 0x0000ffffffff0000
528
+ // | | | └-- New post-offset: The original post-offset + 2.
529
+ // | | └-- Post-offset: The original post-offset before we adjusted it.
530
+ // | └-- New pre-offset: The original pre-offset + 2.
531
+ // └-- Pre-offset: The original pre-offset before we adjusted it.
532
+ ```
533
+
534
+ Both the `preOffset` and `postOffset` functions offer the following attributes:
535
+
536
+ - `bytes`: The entire byte array being encoded or decoded.
537
+ - `preOffset`: The original and unaltered pre-offset.
538
+ - `wrapBytes`: A helper function that wraps the given offset around the byte array length. E.g. `wrapBytes(-1)` will refer to the last byte of the byte array.
539
+
540
+ Additionally, the post-offset function also provides the following attributes:
541
+
542
+ - `newPreOffset`: The new pre-offset after the pre-offset function has been applied.
543
+ - `postOffset`: The original and unaltered post-offset.
544
+
545
+ Note that you may also decide to ignore these attributes to achieve absolute offsets. However, relative offsets are usually recommended as they won't break your codecs when composed with other codecs.
546
+
547
+ ```ts
548
+ const u32InTheMiddleCodec = offsetCodec(biggerU32Codec, {
549
+ preOffset: () => 2,
550
+ postOffset: () => 8,
551
+ });
552
+ u32InTheMiddleCodec.encode(0xffffffff);
553
+ // 0x0000ffffffff0000
554
+ ```
555
+
556
+ Also note that any negative offset or offset that exceeds the size of the byte array will throw a `SolanaError` of code `SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE`.
557
+
558
+ ```ts
559
+ const u32InTheEndCodec = offsetCodec(biggerU32Codec, { preOffset: () => -4 });
560
+ u32InTheEndCodec.encode(0xffffffff);
561
+ // throws new SolanaError(SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE)
562
+ ```
563
+
564
+ To avoid this, you may use the `wrapBytes` function to wrap the offset around the byte array length. For instance, here's how we can use the `wrapBytes` function to move the pre-offset 4 bytes from the end of the byte array.
565
+
566
+ ```ts
567
+ const u32InTheEndCodec = offsetCodec(biggerU32Codec, {
568
+ preOffset: ({ wrapBytes }) => wrapBytes(-4),
569
+ });
570
+ u32InTheEndCodec.encode(0xffffffff);
571
+ // 0x00000000ffffffff
572
+ ```
573
+
574
+ As you can see, the `offsetCodec` helper allows you to jump all over the place with your codecs. This non-linear approach to encoding and decoding data allows you to achieve complex serialization strategies that would otherwise be impossible.
575
+
576
+ As usual, the `offsetEncoder` and `offsetDecoder` functions can also be used to split your codec logic into tree-shakeable functions.
577
+
578
+ ```ts
579
+ const getU32InTheMiddleEncoder = () => offsetEncoder(biggerU32Encoder, { preOffset: ({ preOffset }) => preOffset + 2 });
580
+ const getU32InTheMiddleDecoder = () => offsetDecoder(biggerU32Decoder, { preOffset: ({ preOffset }) => preOffset + 2 });
581
+ const getU32InTheMiddleCodec = () => combineCodec(getU32InTheMiddleEncoder(), getU32InTheMiddleDecoder());
582
+ ```
583
+
584
+ ## Padding codecs
585
+
586
+ The `padLeftCodec` and `padRightCodec` helpers can be used to add padding to the left or right of a given codec. They accept an `offset` number that tells us how big the padding should be.
587
+
588
+ ```ts
589
+ const getLeftPaddedCodec = () => padLeftCodec(getU16Codec(), 4);
590
+ getLeftPaddedCodec().encode(0xffff);
591
+ // 0x00000000ffff
592
+ // | └-- Our encoded u16 number.
593
+ // └-- Our 4-byte padding.
594
+
595
+ const getRightPaddedCodec = () => padRightCodec(getU16Codec(), 4);
596
+ getRightPaddedCodec().encode(0xffff);
597
+ // 0xffff00000000
598
+ // | └-- Our 4-byte padding.
599
+ // └-- Our encoded u16 number.
600
+ ```
601
+
602
+ Note that both the `padLeftCodec` and `padRightCodec` functions are simple wrappers around the `offsetCodec` and `resizeCodec` functions. For more complex padding strategies, you may want to use the `offsetCodec` and `resizeCodec` functions directly instead.
603
+
604
+ As usual, encoder-only and decoder-only helpers are available for these padding functions. Namely, `padLeftEncoder`, `padRightEncoder`, `padLeftDecoder` and `padRightDecoder`.
605
+
606
+ ```ts
607
+ const getMyPaddedEncoder = () => padLeftEncoder(getU16Encoder());
608
+ const getMyPaddedDecoder = () => padLeftDecoder(getU16Decoder());
609
+ const getMyPaddedCodec = () => combineCodec(getMyPaddedEncoder(), getMyPaddedDecoder());
610
+ ```
611
+
612
+ ## Reversing codecs
613
+
614
+ The `reverseCodec` helper reverses the bytes of the provided `FixedSizeCodec`.
615
+
616
+ ```ts
617
+ const getBigEndianU64Codec = () => reverseCodec(getU64Codec());
618
+ ```
619
+
620
+ Note that number codecs can already do that for you via their `endian` option.
621
+
622
+ ```ts
623
+ const getBigEndianU64Codec = () => getU64Codec({ endian: Endian.Big });
624
+ ```
625
+
626
+ As usual, the `reverseEncoder` and `reverseDecoder` functions can also be used to achieve that.
627
+
628
+ ```ts
629
+ const getBigEndianU64Encoder = () => reverseEncoder(getU64Encoder());
630
+ const getBigEndianU64Decoder = () => reverseDecoder(getU64Decoder());
631
+ const getBigEndianU64Codec = () => combineCodec(getBigEndianU64Encoder(), getBigEndianU64Decoder());
632
+ ```
633
+
634
+ ## Byte helpers
635
+
636
+ This package also provides utility functions for managing bytes such as:
637
+
638
+ - `mergeBytes`: Concatenates an array of `Uint8Arrays` into a single `Uint8Array`.
639
+ - `padBytes`: Pads a `Uint8Array` with zeroes (to the right) to the specified length.
640
+ - `fixBytes`: Pads or truncates a `Uint8Array` so it has the specified length.
641
+ - `containsBytes`: Checks if a `Uint8Array` contains another `Uint8Array` at a given offset.
642
+
643
+ ```ts
644
+ // Merge multiple Uint8Array buffers into one.
645
+ mergeBytes([new Uint8Array([1, 2]), new Uint8Array([3, 4])]); // Uint8Array([1, 2, 3, 4])
646
+
647
+ // Pad a Uint8Array buffer to the given size.
648
+ padBytes(new Uint8Array([1, 2]), 4); // Uint8Array([1, 2, 0, 0])
649
+ padBytes(new Uint8Array([1, 2, 3, 4]), 2); // Uint8Array([1, 2, 3, 4])
650
+
651
+ // Pad and truncate a Uint8Array buffer to the given size.
652
+ fixBytes(new Uint8Array([1, 2]), 4); // Uint8Array([1, 2, 0, 0])
653
+ fixBytes(new Uint8Array([1, 2, 3, 4]), 2); // Uint8Array([1, 2])
654
+
655
+ // Check if a Uint8Array contains another Uint8Array at a given offset.
656
+ containsBytes(new Uint8Array([1, 2, 3, 4]), new Uint8Array([2, 3]), 1); // true
657
+ containsBytes(new Uint8Array([1, 2, 3, 4]), new Uint8Array([2, 3]), 2); // false
658
+ ```
659
+
660
+ ---
661
+
662
+ To read more about the available codecs and how to use them, check out the documentation of the main [`@solana/codecs` package](https://github.com/anza-xyz/kit/tree/main/packages/codecs).