@oobe-protocol-labs/synapse-client-sdk 1.0.2 → 1.0.4

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 (577) hide show
  1. package/CHANGELOG.md +93 -2
  2. package/dist/cjs/accounts/helpers.d.ts +88 -0
  3. package/dist/cjs/accounts/helpers.d.ts.map +1 -0
  4. package/dist/cjs/accounts/helpers.js +117 -0
  5. package/dist/cjs/accounts/helpers.js.map +1 -0
  6. package/dist/cjs/accounts/index.d.ts +105 -0
  7. package/dist/cjs/accounts/index.d.ts.map +1 -0
  8. package/dist/cjs/accounts/index.js +137 -0
  9. package/dist/cjs/accounts/index.js.map +1 -0
  10. package/dist/cjs/accounts/lookup.d.ts +30 -0
  11. package/dist/cjs/accounts/lookup.d.ts.map +1 -0
  12. package/dist/cjs/accounts/lookup.js +31 -0
  13. package/dist/cjs/accounts/lookup.js.map +1 -0
  14. package/dist/cjs/accounts/nonce.d.ts +30 -0
  15. package/dist/cjs/accounts/nonce.d.ts.map +1 -0
  16. package/dist/cjs/accounts/nonce.js +31 -0
  17. package/dist/cjs/accounts/nonce.js.map +1 -0
  18. package/dist/cjs/accounts/stake.d.ts +33 -0
  19. package/dist/cjs/accounts/stake.d.ts.map +1 -0
  20. package/dist/cjs/accounts/stake.js +34 -0
  21. package/dist/cjs/accounts/stake.js.map +1 -0
  22. package/dist/cjs/accounts/token.d.ts +98 -0
  23. package/dist/cjs/accounts/token.d.ts.map +1 -0
  24. package/dist/cjs/accounts/token.js +126 -0
  25. package/dist/cjs/accounts/token.js.map +1 -0
  26. package/dist/cjs/ai/tools/index.d.ts +1 -1
  27. package/dist/cjs/ai/tools/index.d.ts.map +1 -1
  28. package/dist/cjs/ai/tools/index.js +11 -2
  29. package/dist/cjs/ai/tools/index.js.map +1 -1
  30. package/dist/cjs/ai/tools/protocols/index.d.ts +13 -1
  31. package/dist/cjs/ai/tools/protocols/index.d.ts.map +1 -1
  32. package/dist/cjs/ai/tools/protocols/index.js +32 -1
  33. package/dist/cjs/ai/tools/protocols/index.js.map +1 -1
  34. package/dist/cjs/ai/tools/protocols/jupiter/index.d.ts +1 -1
  35. package/dist/cjs/ai/tools/protocols/jupiter/index.d.ts.map +1 -1
  36. package/dist/cjs/ai/tools/protocols/jupiter/index.js +2 -1
  37. package/dist/cjs/ai/tools/protocols/jupiter/index.js.map +1 -1
  38. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts +1 -1
  39. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -1
  40. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js +22 -22
  41. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js.map +1 -1
  42. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts +9 -4
  43. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts.map +1 -1
  44. package/dist/cjs/ai/tools/protocols/jupiter/tools.js +38 -6
  45. package/dist/cjs/ai/tools/protocols/jupiter/tools.js.map +1 -1
  46. package/dist/cjs/ai/tools/protocols/jupiter-onchain/index.d.ts +13 -0
  47. package/dist/cjs/ai/tools/protocols/jupiter-onchain/index.d.ts.map +1 -0
  48. package/dist/cjs/ai/tools/protocols/jupiter-onchain/index.js +20 -0
  49. package/dist/cjs/ai/tools/protocols/jupiter-onchain/index.js.map +1 -0
  50. package/dist/cjs/ai/tools/protocols/jupiter-onchain/schemas.d.ts +11 -0
  51. package/dist/cjs/ai/tools/protocols/jupiter-onchain/schemas.d.ts.map +1 -0
  52. package/dist/cjs/ai/tools/protocols/jupiter-onchain/schemas.js +286 -0
  53. package/dist/cjs/ai/tools/protocols/jupiter-onchain/schemas.js.map +1 -0
  54. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.d.ts +58 -0
  55. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.d.ts.map +1 -0
  56. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.js +342 -0
  57. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.js.map +1 -0
  58. package/dist/cjs/ai/tools/protocols/raydium-onchain/index.d.ts +13 -0
  59. package/dist/cjs/ai/tools/protocols/raydium-onchain/index.d.ts.map +1 -0
  60. package/dist/cjs/ai/tools/protocols/raydium-onchain/index.js +20 -0
  61. package/dist/cjs/ai/tools/protocols/raydium-onchain/index.js.map +1 -0
  62. package/dist/cjs/ai/tools/protocols/raydium-onchain/schemas.d.ts +11 -0
  63. package/dist/cjs/ai/tools/protocols/raydium-onchain/schemas.d.ts.map +1 -0
  64. package/dist/cjs/ai/tools/protocols/raydium-onchain/schemas.js +288 -0
  65. package/dist/cjs/ai/tools/protocols/raydium-onchain/schemas.js.map +1 -0
  66. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.d.ts +58 -0
  67. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.d.ts.map +1 -0
  68. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.js +384 -0
  69. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.js.map +1 -0
  70. package/dist/cjs/ai/tools/protocols/shared.d.ts +8 -1
  71. package/dist/cjs/ai/tools/protocols/shared.d.ts.map +1 -1
  72. package/dist/cjs/ai/tools/protocols/shared.js +4 -1
  73. package/dist/cjs/ai/tools/protocols/shared.js.map +1 -1
  74. package/dist/cjs/ai/tools/zod/index.d.ts +1 -1
  75. package/dist/cjs/ai/tools/zod/index.d.ts.map +1 -1
  76. package/dist/cjs/ai/tools/zod/index.js +2 -2
  77. package/dist/cjs/ai/tools/zod/index.js.map +1 -1
  78. package/dist/cjs/ai/tools/zod/types.d.ts +2 -0
  79. package/dist/cjs/ai/tools/zod/types.d.ts.map +1 -1
  80. package/dist/cjs/ai/tools/zod/types.js.map +1 -1
  81. package/dist/cjs/core/client.d.ts +25 -0
  82. package/dist/cjs/core/client.d.ts.map +1 -1
  83. package/dist/cjs/core/client.js +30 -0
  84. package/dist/cjs/core/client.js.map +1 -1
  85. package/dist/cjs/decoders/index.d.ts +36 -0
  86. package/dist/cjs/decoders/index.d.ts.map +1 -0
  87. package/dist/cjs/decoders/index.js +62 -0
  88. package/dist/cjs/decoders/index.js.map +1 -0
  89. package/dist/cjs/decoders/layout.d.ts +105 -0
  90. package/dist/cjs/decoders/layout.d.ts.map +1 -0
  91. package/dist/cjs/decoders/layout.js +188 -0
  92. package/dist/cjs/decoders/layout.js.map +1 -0
  93. package/dist/cjs/decoders/lookup-table.d.ts +60 -0
  94. package/dist/cjs/decoders/lookup-table.d.ts.map +1 -0
  95. package/dist/cjs/decoders/lookup-table.js +75 -0
  96. package/dist/cjs/decoders/lookup-table.js.map +1 -0
  97. package/dist/cjs/decoders/multisig.d.ts +49 -0
  98. package/dist/cjs/decoders/multisig.d.ts.map +1 -0
  99. package/dist/cjs/decoders/multisig.js +50 -0
  100. package/dist/cjs/decoders/multisig.js.map +1 -0
  101. package/dist/cjs/decoders/nonce.d.ts +54 -0
  102. package/dist/cjs/decoders/nonce.d.ts.map +1 -0
  103. package/dist/cjs/decoders/nonce.js +48 -0
  104. package/dist/cjs/decoders/nonce.js.map +1 -0
  105. package/dist/cjs/decoders/stake.d.ts +65 -0
  106. package/dist/cjs/decoders/stake.d.ts.map +1 -0
  107. package/dist/cjs/decoders/stake.js +86 -0
  108. package/dist/cjs/decoders/stake.js.map +1 -0
  109. package/dist/cjs/decoders/token-2022.d.ts +134 -0
  110. package/dist/cjs/decoders/token-2022.d.ts.map +1 -0
  111. package/dist/cjs/decoders/token-2022.js +160 -0
  112. package/dist/cjs/decoders/token-2022.js.map +1 -0
  113. package/dist/cjs/decoders/token.d.ts +87 -0
  114. package/dist/cjs/decoders/token.d.ts.map +1 -0
  115. package/dist/cjs/decoders/token.js +71 -0
  116. package/dist/cjs/decoders/token.js.map +1 -0
  117. package/dist/cjs/index.d.ts +2 -0
  118. package/dist/cjs/index.d.ts.map +1 -1
  119. package/dist/cjs/index.js +4 -0
  120. package/dist/cjs/index.js.map +1 -1
  121. package/dist/docs/assets/navigation.js +1 -1
  122. package/dist/docs/assets/search.js +1 -1
  123. package/dist/docs/classes/AccountReader.html +61 -0
  124. package/dist/docs/classes/AccountsClient.html +43 -0
  125. package/dist/docs/classes/DasClient.html +13 -13
  126. package/dist/docs/classes/GeyserParser.html +17 -17
  127. package/dist/docs/classes/GrpcTransport.html +6 -6
  128. package/dist/docs/classes/HttpTransport.html +4 -4
  129. package/dist/docs/classes/NetworkError.html +5 -5
  130. package/dist/docs/classes/RpcMethodNotFoundError.html +4 -4
  131. package/dist/docs/classes/SolanaRpc.html +55 -55
  132. package/dist/docs/classes/SynapseClient.html +35 -25
  133. package/dist/docs/classes/SynapseError.html +4 -4
  134. package/dist/docs/classes/TimeoutError.html +4 -4
  135. package/dist/docs/classes/UpstreamError.html +6 -6
  136. package/dist/docs/classes/WsClient.html +10 -10
  137. package/dist/docs/enums/SynapseNetwork.html +2 -2
  138. package/dist/docs/enums/SynapseRegion.html +2 -2
  139. package/dist/docs/enums/TokenExtensionType.html +23 -0
  140. package/dist/docs/functions/Epoch-1.html +1 -1
  141. package/dist/docs/functions/Lamports-2.html +1 -1
  142. package/dist/docs/functions/Pubkey-1.html +1 -1
  143. package/dist/docs/functions/Sig.html +1 -1
  144. package/dist/docs/functions/Slot-1.html +1 -1
  145. package/dist/docs/functions/UnixTs.html +1 -1
  146. package/dist/docs/functions/autoSelectRegion.html +1 -1
  147. package/dist/docs/functions/base58Encode.html +1 -1
  148. package/dist/docs/functions/base64ToBytes.html +7 -0
  149. package/dist/docs/functions/chunk.html +1 -1
  150. package/dist/docs/functions/computeBalanceChanges.html +1 -1
  151. package/dist/docs/functions/computeTokenBalanceChanges.html +1 -1
  152. package/dist/docs/functions/createSynapse.html +1 -1
  153. package/dist/docs/functions/decodeLookupTable.html +17 -0
  154. package/dist/docs/functions/decodeMint.html +6 -0
  155. package/dist/docs/functions/decodeMultisig.html +13 -0
  156. package/dist/docs/functions/decodeNonceAccount.html +14 -0
  157. package/dist/docs/functions/decodeStakeAccount.html +12 -0
  158. package/dist/docs/functions/decodeToken2022Account.html +5 -0
  159. package/dist/docs/functions/decodeToken2022Mint.html +5 -0
  160. package/dist/docs/functions/decodeTokenAccount.html +6 -0
  161. package/dist/docs/functions/encodeBase58.html +7 -0
  162. package/dist/docs/functions/fetchLookupTable.html +10 -0
  163. package/dist/docs/functions/fetchMint.html +11 -0
  164. package/dist/docs/functions/fetchNonceAccount.html +10 -0
  165. package/dist/docs/functions/fetchStakeAccount.html +10 -0
  166. package/dist/docs/functions/fetchTokenAccount.html +12 -0
  167. package/dist/docs/functions/fetchTokenAccountsByOwner.html +11 -0
  168. package/dist/docs/functions/fromKitAddress.html +1 -1
  169. package/dist/docs/functions/getAccountInfo.html +1 -1
  170. package/dist/docs/functions/getAsset.html +1 -1
  171. package/dist/docs/functions/getAssetBatch.html +1 -1
  172. package/dist/docs/functions/getAssetProof.html +1 -1
  173. package/dist/docs/functions/getAssetProofBatch.html +1 -1
  174. package/dist/docs/functions/getAssetsByAuthority.html +1 -1
  175. package/dist/docs/functions/getAssetsByCreator.html +1 -1
  176. package/dist/docs/functions/getAssetsByGroup.html +1 -1
  177. package/dist/docs/functions/getAssetsByOwner.html +1 -1
  178. package/dist/docs/functions/getBalance.html +1 -1
  179. package/dist/docs/functions/getBlock.html +1 -1
  180. package/dist/docs/functions/getBlockCommitment.html +1 -1
  181. package/dist/docs/functions/getBlockHeight.html +1 -1
  182. package/dist/docs/functions/getBlockProduction.html +1 -1
  183. package/dist/docs/functions/getBlockTime.html +1 -1
  184. package/dist/docs/functions/getBlocks.html +1 -1
  185. package/dist/docs/functions/getBlocksWithLimit.html +1 -1
  186. package/dist/docs/functions/getClusterNodes.html +1 -1
  187. package/dist/docs/functions/getDecodedAccount.html +14 -0
  188. package/dist/docs/functions/getDecodedAccounts.html +9 -0
  189. package/dist/docs/functions/getEnvironment.html +1 -1
  190. package/dist/docs/functions/getEpochInfo.html +1 -1
  191. package/dist/docs/functions/getEpochSchedule.html +1 -1
  192. package/dist/docs/functions/getFeeForMessage.html +1 -1
  193. package/dist/docs/functions/getFirstAvailableBlock.html +1 -1
  194. package/dist/docs/functions/getGenesisHash.html +1 -1
  195. package/dist/docs/functions/getHealth.html +1 -1
  196. package/dist/docs/functions/getHighestSnapshotSlot.html +1 -1
  197. package/dist/docs/functions/getIdentity.html +1 -1
  198. package/dist/docs/functions/getInflationGovernor.html +1 -1
  199. package/dist/docs/functions/getInflationRate.html +1 -1
  200. package/dist/docs/functions/getInflationReward.html +1 -1
  201. package/dist/docs/functions/getLargestAccounts.html +1 -1
  202. package/dist/docs/functions/getLatestBlockhash.html +1 -1
  203. package/dist/docs/functions/getLeaderSchedule.html +1 -1
  204. package/dist/docs/functions/getMaxRetransmitSlot.html +1 -1
  205. package/dist/docs/functions/getMaxShredInsertSlot.html +1 -1
  206. package/dist/docs/functions/getMinimumBalanceForRentExemption.html +1 -1
  207. package/dist/docs/functions/getMultipleAccounts.html +1 -1
  208. package/dist/docs/functions/getProgramAccounts.html +1 -1
  209. package/dist/docs/functions/getProgramCategory.html +1 -1
  210. package/dist/docs/functions/getRecentPerformanceSamples.html +1 -1
  211. package/dist/docs/functions/getRecentPrioritizationFees.html +1 -1
  212. package/dist/docs/functions/getSignatureStatuses.html +1 -1
  213. package/dist/docs/functions/getSignaturesForAddress.html +1 -1
  214. package/dist/docs/functions/getSignaturesForAsset.html +1 -1
  215. package/dist/docs/functions/getSlot.html +1 -1
  216. package/dist/docs/functions/getSlotLeader.html +1 -1
  217. package/dist/docs/functions/getSlotLeaders.html +1 -1
  218. package/dist/docs/functions/getStakeActivation.html +1 -1
  219. package/dist/docs/functions/getStakeMinimumDelegation.html +1 -1
  220. package/dist/docs/functions/getSupply.html +1 -1
  221. package/dist/docs/functions/getTokenAccountBalance.html +1 -1
  222. package/dist/docs/functions/getTokenAccounts.html +1 -1
  223. package/dist/docs/functions/getTokenAccountsByDelegate.html +1 -1
  224. package/dist/docs/functions/getTokenAccountsByOwner.html +1 -1
  225. package/dist/docs/functions/getTokenLargestAccounts.html +1 -1
  226. package/dist/docs/functions/getTokenSupply.html +1 -1
  227. package/dist/docs/functions/getTransaction.html +1 -1
  228. package/dist/docs/functions/getTransactionCount.html +1 -1
  229. package/dist/docs/functions/getVersion.html +1 -1
  230. package/dist/docs/functions/getVoteAccounts.html +1 -1
  231. package/dist/docs/functions/isBlockhashValid.html +1 -1
  232. package/dist/docs/functions/isBrowser.html +1 -1
  233. package/dist/docs/functions/isProgramInCategory.html +1 -1
  234. package/dist/docs/functions/isServer.html +1 -1
  235. package/dist/docs/functions/isValidPubkey.html +1 -1
  236. package/dist/docs/functions/isValidSignature.html +1 -1
  237. package/dist/docs/functions/lamportsToSol.html +1 -1
  238. package/dist/docs/functions/listEndpoints.html +1 -1
  239. package/dist/docs/functions/listNetworks.html +1 -1
  240. package/dist/docs/functions/listRegions.html +1 -1
  241. package/dist/docs/functions/minimumLedgerSlot.html +1 -1
  242. package/dist/docs/functions/parseAccountUpdate.html +1 -1
  243. package/dist/docs/functions/parseBlockMeta.html +1 -1
  244. package/dist/docs/functions/parseEntry.html +1 -1
  245. package/dist/docs/functions/parseGeyserUpdate.html +1 -1
  246. package/dist/docs/functions/parseSlotUpdate.html +1 -1
  247. package/dist/docs/functions/parseTimestamp.html +1 -1
  248. package/dist/docs/functions/parseTransaction.html +1 -1
  249. package/dist/docs/functions/probeLatency.html +1 -1
  250. package/dist/docs/functions/rawBufferToBase58.html +1 -1
  251. package/dist/docs/functions/rawBufferToBase64.html +1 -1
  252. package/dist/docs/functions/rawBufferToBytes.html +1 -1
  253. package/dist/docs/functions/rawBufferToHex.html +1 -1
  254. package/dist/docs/functions/requestAirdrop.html +1 -1
  255. package/dist/docs/functions/resolveEndpoint.html +1 -1
  256. package/dist/docs/functions/resolveProgram.html +1 -1
  257. package/dist/docs/functions/resolveProgramBatch.html +1 -1
  258. package/dist/docs/functions/retry.html +1 -1
  259. package/dist/docs/functions/searchAssets.html +1 -1
  260. package/dist/docs/functions/sendTransaction.html +1 -1
  261. package/dist/docs/functions/simulateTransaction.html +1 -1
  262. package/dist/docs/functions/sleep.html +1 -1
  263. package/dist/docs/functions/solToLamports.html +1 -1
  264. package/dist/docs/functions/toClientConfig.html +1 -1
  265. package/dist/docs/functions/toKitAddress.html +1 -1
  266. package/dist/docs/functions/toKitLamports.html +1 -1
  267. package/dist/docs/functions/toKitSignatureString.html +1 -1
  268. package/dist/docs/hierarchy.html +1 -1
  269. package/dist/docs/interfaces/AccountInfo.html +7 -7
  270. package/dist/docs/interfaces/AccountNotification.html +2 -2
  271. package/dist/docs/interfaces/AccountSubParams.html +2 -2
  272. package/dist/docs/interfaces/AssetSignatureInfo.html +2 -2
  273. package/dist/docs/interfaces/AssetSignaturesPage.html +2 -2
  274. package/dist/docs/interfaces/BalanceChange.html +6 -6
  275. package/dist/docs/interfaces/BlockProduction.html +3 -3
  276. package/dist/docs/interfaces/BlockResult.html +2 -2
  277. package/dist/docs/interfaces/BlockReward.html +2 -2
  278. package/dist/docs/interfaces/BlockhashResult.html +2 -2
  279. package/dist/docs/interfaces/CallOptions.html +6 -6
  280. package/dist/docs/interfaces/ConfirmedTransaction.html +6 -6
  281. package/dist/docs/interfaces/ContactInfo.html +2 -2
  282. package/dist/docs/interfaces/DasAsset.html +2 -2
  283. package/dist/docs/interfaces/DasAssetProof.html +2 -2
  284. package/dist/docs/interfaces/DasAuthority.html +2 -2
  285. package/dist/docs/interfaces/DasCompression.html +2 -2
  286. package/dist/docs/interfaces/DasContent.html +2 -2
  287. package/dist/docs/interfaces/DasCreator.html +2 -2
  288. package/dist/docs/interfaces/DasFile.html +2 -2
  289. package/dist/docs/interfaces/DasGrouping.html +2 -2
  290. package/dist/docs/interfaces/DasOpts.html +2 -2
  291. package/dist/docs/interfaces/DasOwnership.html +2 -2
  292. package/dist/docs/interfaces/DasPage.html +2 -2
  293. package/dist/docs/interfaces/DasRoyalty.html +2 -2
  294. package/dist/docs/interfaces/DasSearchParams.html +2 -2
  295. package/dist/docs/interfaces/DasSupply.html +2 -2
  296. package/dist/docs/interfaces/DataSlice.html +3 -3
  297. package/dist/docs/interfaces/DecodedAccountResult.html +10 -0
  298. package/dist/docs/interfaces/DecodedLookupTable.html +20 -0
  299. package/dist/docs/interfaces/DecodedMint.html +16 -0
  300. package/dist/docs/interfaces/DecodedMultisig.html +14 -0
  301. package/dist/docs/interfaces/DecodedNonceAccount.html +16 -0
  302. package/dist/docs/interfaces/DecodedStakeAccount.html +7 -0
  303. package/dist/docs/interfaces/DecodedToken2022Account.html +20 -0
  304. package/dist/docs/interfaces/DecodedToken2022Mint.html +14 -0
  305. package/dist/docs/interfaces/DecodedTokenAccount.html +22 -0
  306. package/dist/docs/interfaces/DefaultAccountStateExt.html +5 -0
  307. package/dist/docs/interfaces/EndpointConnectConfig.html +5 -5
  308. package/dist/docs/interfaces/EpochInfo.html +7 -7
  309. package/dist/docs/interfaces/EpochSchedule.html +2 -2
  310. package/dist/docs/interfaces/FetchedMint.html +13 -0
  311. package/dist/docs/interfaces/FetchedTokenAccount.html +13 -0
  312. package/dist/docs/interfaces/GetAccountInfoOpts.html +6 -6
  313. package/dist/docs/interfaces/GetAssetsByAuthorityParams.html +2 -2
  314. package/dist/docs/interfaces/GetAssetsByCreatorParams.html +2 -2
  315. package/dist/docs/interfaces/GetAssetsByGroupParams.html +2 -2
  316. package/dist/docs/interfaces/GetAssetsByOwnerParams.html +2 -2
  317. package/dist/docs/interfaces/GetBlockOpts.html +6 -6
  318. package/dist/docs/interfaces/GetBlockProductionOpts.html +6 -6
  319. package/dist/docs/interfaces/GetMultipleAccountsOpts.html +6 -6
  320. package/dist/docs/interfaces/GetProgramAccountsOpts.html +6 -6
  321. package/dist/docs/interfaces/GetSignatureStatusesOpts.html +6 -6
  322. package/dist/docs/interfaces/GetSignaturesOpts.html +7 -7
  323. package/dist/docs/interfaces/GetTokenAccountsParams.html +2 -2
  324. package/dist/docs/interfaces/GetTransactionOpts.html +6 -6
  325. package/dist/docs/interfaces/GeyserParserConfig.html +6 -6
  326. package/dist/docs/interfaces/GeyserParserEvents.html +9 -9
  327. package/dist/docs/interfaces/GeyserParserStats.html +2 -2
  328. package/dist/docs/interfaces/GrpcCallOptions.html +2 -2
  329. package/dist/docs/interfaces/GrpcTransportConfig.html +6 -6
  330. package/dist/docs/interfaces/ImmutableOwnerExt.html +4 -0
  331. package/dist/docs/interfaces/InflationGovernor.html +2 -2
  332. package/dist/docs/interfaces/InflationRate.html +2 -2
  333. package/dist/docs/interfaces/InflationReward.html +2 -2
  334. package/dist/docs/interfaces/InterestBearingConfigExt.html +9 -0
  335. package/dist/docs/interfaces/LatencyProbeResult.html +2 -2
  336. package/dist/docs/interfaces/LogsNotification.html +2 -2
  337. package/dist/docs/interfaces/LogsSubParams.html +2 -2
  338. package/dist/docs/interfaces/MemoTransferExt.html +5 -0
  339. package/dist/docs/interfaces/MetadataPointerExt.html +6 -0
  340. package/dist/docs/interfaces/MintCloseAuthorityExt.html +5 -0
  341. package/dist/docs/interfaces/NonTransferableExt.html +4 -0
  342. package/dist/docs/interfaces/PaginationOpts.html +2 -2
  343. package/dist/docs/interfaces/ParsedAccountUpdate.html +16 -16
  344. package/dist/docs/interfaces/ParsedBlockMeta.html +2 -2
  345. package/dist/docs/interfaces/ParsedEntry.html +2 -2
  346. package/dist/docs/interfaces/ParsedInstruction.html +9 -9
  347. package/dist/docs/interfaces/ParsedSlotUpdate.html +3 -3
  348. package/dist/docs/interfaces/ParsedTransaction.html +19 -19
  349. package/dist/docs/interfaces/PerfSample.html +2 -2
  350. package/dist/docs/interfaces/PermanentDelegateExt.html +5 -0
  351. package/dist/docs/interfaces/ProgramAccount.html +2 -2
  352. package/dist/docs/interfaces/ProgramNotification.html +2 -2
  353. package/dist/docs/interfaces/ProgramSubParams.html +2 -2
  354. package/dist/docs/interfaces/RawAccountInfo.html +2 -2
  355. package/dist/docs/interfaces/RawBlockMeta.html +2 -2
  356. package/dist/docs/interfaces/RawBuffer.html +2 -2
  357. package/dist/docs/interfaces/RawCompiledInstruction.html +2 -2
  358. package/dist/docs/interfaces/RawEntry.html +2 -2
  359. package/dist/docs/interfaces/RawGeyserUpdate.html +2 -2
  360. package/dist/docs/interfaces/RawInnerInstruction.html +2 -2
  361. package/dist/docs/interfaces/RawSlotInfo.html +2 -2
  362. package/dist/docs/interfaces/RawTimestamp.html +2 -2
  363. package/dist/docs/interfaces/RawTokenBalance.html +2 -2
  364. package/dist/docs/interfaces/RawTransactionInfo.html +2 -2
  365. package/dist/docs/interfaces/RootNotification.html +2 -2
  366. package/dist/docs/interfaces/RootSubParams.html +1 -1
  367. package/dist/docs/interfaces/RpcContext.html +2 -2
  368. package/dist/docs/interfaces/RpcError.html +4 -4
  369. package/dist/docs/interfaces/RpcRequest.html +2 -2
  370. package/dist/docs/interfaces/RpcResponse.html +2 -2
  371. package/dist/docs/interfaces/SendTransactionOpts.html +6 -6
  372. package/dist/docs/interfaces/SignatureInfo.html +7 -7
  373. package/dist/docs/interfaces/SignatureNotification.html +2 -2
  374. package/dist/docs/interfaces/SignatureStatus.html +5 -5
  375. package/dist/docs/interfaces/SignatureSubParams.html +2 -2
  376. package/dist/docs/interfaces/SignaturesForAssetParams.html +2 -2
  377. package/dist/docs/interfaces/SimulateResult.html +2 -2
  378. package/dist/docs/interfaces/SimulateTransactionOpts.html +7 -7
  379. package/dist/docs/interfaces/SlotNotification.html +2 -2
  380. package/dist/docs/interfaces/SlotSubParams.html +1 -1
  381. package/dist/docs/interfaces/SortOpts.html +2 -2
  382. package/dist/docs/interfaces/StakeAuthorized.html +5 -0
  383. package/dist/docs/interfaces/StakeDelegation.html +9 -0
  384. package/dist/docs/interfaces/StakeLockup.html +9 -0
  385. package/dist/docs/interfaces/StakeMeta.html +6 -0
  386. package/dist/docs/interfaces/Supply.html +5 -5
  387. package/dist/docs/interfaces/SynapseClientConfig.html +9 -9
  388. package/dist/docs/interfaces/SynapseEndpoint.html +7 -7
  389. package/dist/docs/interfaces/TokenAccount.html +3 -3
  390. package/dist/docs/interfaces/TokenAccountsByOwnerResult.html +2 -2
  391. package/dist/docs/interfaces/TokenAmount.html +5 -5
  392. package/dist/docs/interfaces/TokenBalanceChange.html +2 -2
  393. package/dist/docs/interfaces/TransactionMeta.html +11 -11
  394. package/dist/docs/interfaces/TransferFeeAmount.html +5 -0
  395. package/dist/docs/interfaces/TransferFeeConfig.html +9 -0
  396. package/dist/docs/interfaces/TransportConfig.html +7 -7
  397. package/dist/docs/interfaces/UnknownExtension.html +6 -0
  398. package/dist/docs/interfaces/VoteAccount.html +9 -9
  399. package/dist/docs/interfaces/VoteAccountsResult.html +3 -3
  400. package/dist/docs/interfaces/WsConfig.html +6 -6
  401. package/dist/docs/media/CHANGELOG.md +93 -2
  402. package/dist/docs/modules.html +65 -2
  403. package/dist/docs/types/AccountFetchOpts.html +3 -0
  404. package/dist/docs/types/AccountFilter.html +1 -1
  405. package/dist/docs/types/Base58.html +1 -1
  406. package/dist/docs/types/Brand.html +1 -1
  407. package/dist/docs/types/Commitment.html +1 -1
  408. package/dist/docs/types/DasSortBy.html +1 -1
  409. package/dist/docs/types/DasSortDirection.html +1 -1
  410. package/dist/docs/types/DataSizeFilter.html +1 -1
  411. package/dist/docs/types/DecodedExtension.html +3 -0
  412. package/dist/docs/types/Encoding.html +1 -1
  413. package/dist/docs/types/Epoch.html +1 -1
  414. package/dist/docs/types/Lamports.html +1 -1
  415. package/dist/docs/types/LogsFilter.html +1 -1
  416. package/dist/docs/types/MemcmpFilter.html +1 -1
  417. package/dist/docs/types/NonceState.html +3 -0
  418. package/dist/docs/types/ParsedGeyserUpdate.html +1 -1
  419. package/dist/docs/types/Pubkey.html +1 -1
  420. package/dist/docs/types/RuntimeEnv.html +1 -1
  421. package/dist/docs/types/Signature.html +1 -1
  422. package/dist/docs/types/Slot.html +1 -1
  423. package/dist/docs/types/StakeAccountType.html +3 -0
  424. package/dist/docs/types/SubscriptionId.html +1 -1
  425. package/dist/docs/types/TokenAccountState.html +3 -0
  426. package/dist/docs/types/TransactionDetail.html +1 -1
  427. package/dist/docs/types/UnaryMethod.html +1 -1
  428. package/dist/docs/types/UnixTimestamp.html +1 -1
  429. package/dist/docs/types/WsNotification.html +1 -1
  430. package/dist/docs/variables/JUPITER_PROGRAMS.html +1 -1
  431. package/dist/docs/variables/KNOWN_PROGRAMS.html +1 -1
  432. package/dist/docs/variables/KNOWN_PROGRAMS_COUNT.html +1 -1
  433. package/dist/docs/variables/LOOKUP_TABLE_HEADER_SIZE.html +3 -0
  434. package/dist/docs/variables/LOOKUP_TABLE_PROGRAM_ID.html +3 -0
  435. package/dist/docs/variables/MARINADE_PROGRAMS.html +1 -1
  436. package/dist/docs/variables/MAX_MULTISIG_SIGNERS.html +3 -0
  437. package/dist/docs/variables/METAPLEX_PROGRAMS.html +1 -1
  438. package/dist/docs/variables/METEORA_PROGRAMS.html +1 -1
  439. package/dist/docs/variables/MINT_SIZE.html +3 -0
  440. package/dist/docs/variables/MULTISIG_SIZE.html +3 -0
  441. package/dist/docs/variables/NONCE_ACCOUNT_SIZE.html +3 -0
  442. package/dist/docs/variables/ORCA_PROGRAMS.html +1 -1
  443. package/dist/docs/variables/OTHER_PROGRAMS.html +1 -1
  444. package/dist/docs/variables/RAYDIUM_PROGRAMS.html +1 -1
  445. package/dist/docs/variables/SDK_USER_AGENT.html +1 -1
  446. package/dist/docs/variables/SPL_PROGRAMS.html +1 -1
  447. package/dist/docs/variables/STAKE_PROGRAM_ID.html +3 -0
  448. package/dist/docs/variables/SYNAPSE_DEVNET_EU.html +1 -1
  449. package/dist/docs/variables/SYNAPSE_DEVNET_US.html +1 -1
  450. package/dist/docs/variables/SYNAPSE_ENDPOINTS.html +1 -1
  451. package/dist/docs/variables/SYNAPSE_MAINNET_EU.html +1 -1
  452. package/dist/docs/variables/SYNAPSE_MAINNET_US.html +1 -1
  453. package/dist/docs/variables/SYSTEM_PROGRAMS.html +1 -1
  454. package/dist/docs/variables/SYSTEM_PROGRAM_ID.html +3 -0
  455. package/dist/docs/variables/TOKEN_2022_PROGRAM_ID.html +3 -0
  456. package/dist/docs/variables/TOKEN_ACCOUNT_SIZE.html +3 -0
  457. package/dist/docs/variables/TOKEN_PROGRAM_ID.html +3 -0
  458. package/dist/esm/accounts/helpers.d.ts +88 -0
  459. package/dist/esm/accounts/helpers.d.ts.map +1 -0
  460. package/dist/esm/accounts/helpers.js +112 -0
  461. package/dist/esm/accounts/helpers.js.map +1 -0
  462. package/dist/esm/accounts/index.d.ts +105 -0
  463. package/dist/esm/accounts/index.d.ts.map +1 -0
  464. package/dist/esm/accounts/index.js +124 -0
  465. package/dist/esm/accounts/index.js.map +1 -0
  466. package/dist/esm/accounts/lookup.d.ts +30 -0
  467. package/dist/esm/accounts/lookup.d.ts.map +1 -0
  468. package/dist/esm/accounts/lookup.js +28 -0
  469. package/dist/esm/accounts/lookup.js.map +1 -0
  470. package/dist/esm/accounts/nonce.d.ts +30 -0
  471. package/dist/esm/accounts/nonce.d.ts.map +1 -0
  472. package/dist/esm/accounts/nonce.js +28 -0
  473. package/dist/esm/accounts/nonce.js.map +1 -0
  474. package/dist/esm/accounts/stake.d.ts +33 -0
  475. package/dist/esm/accounts/stake.d.ts.map +1 -0
  476. package/dist/esm/accounts/stake.js +31 -0
  477. package/dist/esm/accounts/stake.js.map +1 -0
  478. package/dist/esm/accounts/token.d.ts +98 -0
  479. package/dist/esm/accounts/token.d.ts.map +1 -0
  480. package/dist/esm/accounts/token.js +121 -0
  481. package/dist/esm/accounts/token.js.map +1 -0
  482. package/dist/esm/ai/tools/index.d.ts +1 -1
  483. package/dist/esm/ai/tools/index.d.ts.map +1 -1
  484. package/dist/esm/ai/tools/index.js +4 -4
  485. package/dist/esm/ai/tools/index.js.map +1 -1
  486. package/dist/esm/ai/tools/protocols/index.d.ts +13 -1
  487. package/dist/esm/ai/tools/protocols/index.d.ts.map +1 -1
  488. package/dist/esm/ai/tools/protocols/index.js +23 -1
  489. package/dist/esm/ai/tools/protocols/index.js.map +1 -1
  490. package/dist/esm/ai/tools/protocols/jupiter/index.d.ts +1 -1
  491. package/dist/esm/ai/tools/protocols/jupiter/index.d.ts.map +1 -1
  492. package/dist/esm/ai/tools/protocols/jupiter/index.js +1 -1
  493. package/dist/esm/ai/tools/protocols/jupiter/index.js.map +1 -1
  494. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts +1 -1
  495. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -1
  496. package/dist/esm/ai/tools/protocols/jupiter/schemas.js +22 -22
  497. package/dist/esm/ai/tools/protocols/jupiter/schemas.js.map +1 -1
  498. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts +9 -4
  499. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts.map +1 -1
  500. package/dist/esm/ai/tools/protocols/jupiter/tools.js +37 -5
  501. package/dist/esm/ai/tools/protocols/jupiter/tools.js.map +1 -1
  502. package/dist/esm/ai/tools/protocols/jupiter-onchain/index.d.ts +13 -0
  503. package/dist/esm/ai/tools/protocols/jupiter-onchain/index.d.ts.map +1 -0
  504. package/dist/esm/ai/tools/protocols/jupiter-onchain/index.js +13 -0
  505. package/dist/esm/ai/tools/protocols/jupiter-onchain/index.js.map +1 -0
  506. package/dist/esm/ai/tools/protocols/jupiter-onchain/schemas.d.ts +11 -0
  507. package/dist/esm/ai/tools/protocols/jupiter-onchain/schemas.d.ts.map +1 -0
  508. package/dist/esm/ai/tools/protocols/jupiter-onchain/schemas.js +283 -0
  509. package/dist/esm/ai/tools/protocols/jupiter-onchain/schemas.js.map +1 -0
  510. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.d.ts +58 -0
  511. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.d.ts.map +1 -0
  512. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.js +336 -0
  513. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.js.map +1 -0
  514. package/dist/esm/ai/tools/protocols/raydium-onchain/index.d.ts +13 -0
  515. package/dist/esm/ai/tools/protocols/raydium-onchain/index.d.ts.map +1 -0
  516. package/dist/esm/ai/tools/protocols/raydium-onchain/index.js +13 -0
  517. package/dist/esm/ai/tools/protocols/raydium-onchain/index.js.map +1 -0
  518. package/dist/esm/ai/tools/protocols/raydium-onchain/schemas.d.ts +11 -0
  519. package/dist/esm/ai/tools/protocols/raydium-onchain/schemas.d.ts.map +1 -0
  520. package/dist/esm/ai/tools/protocols/raydium-onchain/schemas.js +285 -0
  521. package/dist/esm/ai/tools/protocols/raydium-onchain/schemas.js.map +1 -0
  522. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.d.ts +58 -0
  523. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.d.ts.map +1 -0
  524. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.js +378 -0
  525. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.js.map +1 -0
  526. package/dist/esm/ai/tools/protocols/shared.d.ts +8 -1
  527. package/dist/esm/ai/tools/protocols/shared.d.ts.map +1 -1
  528. package/dist/esm/ai/tools/protocols/shared.js +4 -1
  529. package/dist/esm/ai/tools/protocols/shared.js.map +1 -1
  530. package/dist/esm/ai/tools/zod/index.d.ts +1 -1
  531. package/dist/esm/ai/tools/zod/index.d.ts.map +1 -1
  532. package/dist/esm/ai/tools/zod/index.js +2 -2
  533. package/dist/esm/ai/tools/zod/index.js.map +1 -1
  534. package/dist/esm/ai/tools/zod/types.d.ts +2 -0
  535. package/dist/esm/ai/tools/zod/types.d.ts.map +1 -1
  536. package/dist/esm/ai/tools/zod/types.js.map +1 -1
  537. package/dist/esm/core/client.d.ts +25 -0
  538. package/dist/esm/core/client.d.ts.map +1 -1
  539. package/dist/esm/core/client.js +30 -0
  540. package/dist/esm/core/client.js.map +1 -1
  541. package/dist/esm/decoders/index.d.ts +36 -0
  542. package/dist/esm/decoders/index.d.ts.map +1 -0
  543. package/dist/esm/decoders/index.js +37 -0
  544. package/dist/esm/decoders/index.js.map +1 -0
  545. package/dist/esm/decoders/layout.d.ts +105 -0
  546. package/dist/esm/decoders/layout.d.ts.map +1 -0
  547. package/dist/esm/decoders/layout.js +183 -0
  548. package/dist/esm/decoders/layout.js.map +1 -0
  549. package/dist/esm/decoders/lookup-table.d.ts +60 -0
  550. package/dist/esm/decoders/lookup-table.d.ts.map +1 -0
  551. package/dist/esm/decoders/lookup-table.js +71 -0
  552. package/dist/esm/decoders/lookup-table.js.map +1 -0
  553. package/dist/esm/decoders/multisig.d.ts +49 -0
  554. package/dist/esm/decoders/multisig.d.ts.map +1 -0
  555. package/dist/esm/decoders/multisig.js +46 -0
  556. package/dist/esm/decoders/multisig.js.map +1 -0
  557. package/dist/esm/decoders/nonce.d.ts +54 -0
  558. package/dist/esm/decoders/nonce.d.ts.map +1 -0
  559. package/dist/esm/decoders/nonce.js +44 -0
  560. package/dist/esm/decoders/nonce.js.map +1 -0
  561. package/dist/esm/decoders/stake.d.ts +65 -0
  562. package/dist/esm/decoders/stake.d.ts.map +1 -0
  563. package/dist/esm/decoders/stake.js +82 -0
  564. package/dist/esm/decoders/stake.js.map +1 -0
  565. package/dist/esm/decoders/token-2022.d.ts +134 -0
  566. package/dist/esm/decoders/token-2022.d.ts.map +1 -0
  567. package/dist/esm/decoders/token-2022.js +155 -0
  568. package/dist/esm/decoders/token-2022.js.map +1 -0
  569. package/dist/esm/decoders/token.d.ts +87 -0
  570. package/dist/esm/decoders/token.d.ts.map +1 -0
  571. package/dist/esm/decoders/token.js +66 -0
  572. package/dist/esm/decoders/token.js.map +1 -0
  573. package/dist/esm/index.d.ts +2 -0
  574. package/dist/esm/index.d.ts.map +1 -1
  575. package/dist/esm/index.js +4 -0
  576. package/dist/esm/index.js.map +1 -1
  577. package/package.json +11 -1
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Address Lookup Table decoder.
4
+ *
5
+ * Decodes v0 transaction lookup table accounts used for compressing
6
+ * transaction address lists.
7
+ *
8
+ * @module decoders/lookup-table
9
+ * @since 1.1.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LOOKUP_TABLE_HEADER_SIZE = exports.LOOKUP_TABLE_PROGRAM_ID = void 0;
13
+ exports.decodeLookupTable = decodeLookupTable;
14
+ const types_1 = require("../core/types");
15
+ const layout_1 = require("./layout");
16
+ // ── Constants ──────────────────────────────────────────────────
17
+ /** Address Lookup Table Program ID. @since 1.1.0 */
18
+ exports.LOOKUP_TABLE_PROGRAM_ID = 'AddressLookupTab1e1111111111111111111111111';
19
+ /** Header size of a lookup table account. @since 1.1.0 */
20
+ exports.LOOKUP_TABLE_HEADER_SIZE = 56;
21
+ /** Sentinel value for "no deactivation scheduled". @since 1.1.0 */
22
+ const MAX_U64 = 0xffffffffffffffffn;
23
+ // ── Decoder ────────────────────────────────────────────────────
24
+ /**
25
+ * Decode an Address Lookup Table account from raw bytes.
26
+ *
27
+ * Layout:
28
+ * - [0..4] u32 — discriminator (always 1)
29
+ * - [4..12] u64 — deactivation slot (MAX_U64 = active)
30
+ * - [12..20] u64 — last extended slot
31
+ * - [20] u8 — last extended slot start index
32
+ * - [21] u8 — has authority (0 or 1)
33
+ * - [22..24] [u8;2] — padding
34
+ * - [24..56] [u8;32] — authority (meaningful only if has_authority=1)
35
+ * - [56..] [Pubkey] — addresses (32 bytes each)
36
+ *
37
+ * @param data - Raw account data (must be >= 56 bytes).
38
+ * @returns Decoded lookup table.
39
+ * @throws {Error} If data is too short.
40
+ * @since 1.1.0
41
+ */
42
+ function decodeLookupTable(data) {
43
+ if (data.length < exports.LOOKUP_TABLE_HEADER_SIZE) {
44
+ throw new Error(`Lookup table data too short: expected >= ${exports.LOOKUP_TABLE_HEADER_SIZE} bytes, got ${data.length}`);
45
+ }
46
+ const r = new layout_1.AccountReader(data);
47
+ const discriminator = r.u32(); // [0..4]
48
+ const deactivationSlot = r.u64(); // [4..12]
49
+ const lastExtendedSlot = r.u64(); // [12..20]
50
+ const lastExtendedSlotStartIndex = r.u8(); // [20]
51
+ const hasAuthority = r.u8(); // [21]
52
+ r.skip(2); // [22..24] padding
53
+ const authorityPubkey = r.pubkey(); // [24..56]
54
+ const authority = hasAuthority === 1 ? authorityPubkey : null;
55
+ const isDeactivated = deactivationSlot !== MAX_U64;
56
+ // Parse addresses (remaining data, 32 bytes each)
57
+ const addressesData = data.slice(exports.LOOKUP_TABLE_HEADER_SIZE);
58
+ const numAddresses = Math.floor(addressesData.length / 32);
59
+ const addresses = [];
60
+ for (let i = 0; i < numAddresses; i++) {
61
+ const offset = i * 32;
62
+ const addrBytes = addressesData.slice(offset, offset + 32);
63
+ addresses.push((0, types_1.Pubkey)((0, layout_1.encodeBase58)(addrBytes)));
64
+ }
65
+ return {
66
+ discriminator,
67
+ deactivationSlot,
68
+ lastExtendedSlot,
69
+ lastExtendedSlotStartIndex,
70
+ authority,
71
+ addresses,
72
+ isDeactivated,
73
+ };
74
+ }
75
+ //# sourceMappingURL=lookup-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup-table.js","sourceRoot":"","sources":["../../../src/decoders/lookup-table.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAkEH,8CAwCC;AAvGD,yCAAmD;AACnD,qCAAuD;AA+BvD,kEAAkE;AAElE,oDAAoD;AACvC,QAAA,uBAAuB,GAAG,6CAA6C,CAAC;AAErF,0DAA0D;AAC7C,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C,mEAAmE;AACnE,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAEpC,kEAAkE;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,iBAAiB,CAAC,IAAgB;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,gCAAwB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,4CAA4C,gCAAwB,eAAe,IAAI,CAAC,MAAM,EAAE,CACjG,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAuB,SAAS;IAC9D,MAAM,gBAAgB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAoB,UAAU;IAC/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAoB,WAAW;IAChE,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAW,OAAO;IAC5D,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAyB,OAAO;IAC5D,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAA2C,mBAAmB;IACxE,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAkB,WAAW;IAEhE,MAAM,SAAS,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,aAAa,GAAG,gBAAgB,KAAK,OAAO,CAAC;IAEnD,kDAAkD;IAClD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAwB,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3D,SAAS,CAAC,IAAI,CAAC,IAAA,cAAQ,EAAC,IAAA,qBAAY,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACL,aAAa;QACb,gBAAgB;QAChB,gBAAgB;QAChB,0BAA0B;QAC1B,SAAS;QACT,SAAS;QACT,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SPL Token Multisig account decoder.
3
+ *
4
+ * Decodes the SPL Token multisig account layout (355 bytes).
5
+ *
6
+ * @module decoders/multisig
7
+ * @since 1.1.0
8
+ */
9
+ import type { Pubkey } from '../core/types';
10
+ /**
11
+ * Decoded SPL Multisig account (355 bytes).
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const ms = decodeMultisig(rawBytes);
16
+ * console.log(`Threshold: ${ms.m} of ${ms.n}, Signers: ${ms.signers.length}`);
17
+ * ```
18
+ * @since 1.1.0
19
+ */
20
+ export interface DecodedMultisig {
21
+ /** Number of signers required (threshold). */
22
+ m: number;
23
+ /** Number of valid signers in the list. */
24
+ n: number;
25
+ /** Whether the multisig is initialized. */
26
+ isInitialized: boolean;
27
+ /** List of valid signer public keys (up to 11). */
28
+ signers: Pubkey[];
29
+ }
30
+ /** Maximum number of signers in a multisig. @since 1.1.0 */
31
+ export declare const MAX_MULTISIG_SIGNERS = 11;
32
+ /** SPL Multisig account size. @since 1.1.0 */
33
+ export declare const MULTISIG_SIZE = 355;
34
+ /**
35
+ * Decode an SPL Token Multisig account from raw bytes.
36
+ *
37
+ * Layout (355 bytes):
38
+ * - [0] u8 — m (threshold)
39
+ * - [1] u8 — n (total valid signers)
40
+ * - [2] u8 — is_initialized
41
+ * - [3..355] [Pubkey;11] — signer slots (32 bytes each, only first n are valid)
42
+ *
43
+ * @param data - Raw account data (must be >= 355 bytes).
44
+ * @returns Decoded multisig account.
45
+ * @throws {Error} If data is too short.
46
+ * @since 1.1.0
47
+ */
48
+ export declare function decodeMultisig(data: Uint8Array): DecodedMultisig;
49
+ //# sourceMappingURL=multisig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../../../src/decoders/multisig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAID,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,8CAA8C;AAC9C,eAAO,MAAM,aAAa,MAAM,CAAC;AAIjC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAoBhE"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * SPL Token Multisig account decoder.
4
+ *
5
+ * Decodes the SPL Token multisig account layout (355 bytes).
6
+ *
7
+ * @module decoders/multisig
8
+ * @since 1.1.0
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.MULTISIG_SIZE = exports.MAX_MULTISIG_SIGNERS = void 0;
12
+ exports.decodeMultisig = decodeMultisig;
13
+ const layout_1 = require("./layout");
14
+ // ── Constants ──────────────────────────────────────────────────
15
+ /** Maximum number of signers in a multisig. @since 1.1.0 */
16
+ exports.MAX_MULTISIG_SIGNERS = 11;
17
+ /** SPL Multisig account size. @since 1.1.0 */
18
+ exports.MULTISIG_SIZE = 355;
19
+ // ── Decoder ────────────────────────────────────────────────────
20
+ /**
21
+ * Decode an SPL Token Multisig account from raw bytes.
22
+ *
23
+ * Layout (355 bytes):
24
+ * - [0] u8 — m (threshold)
25
+ * - [1] u8 — n (total valid signers)
26
+ * - [2] u8 — is_initialized
27
+ * - [3..355] [Pubkey;11] — signer slots (32 bytes each, only first n are valid)
28
+ *
29
+ * @param data - Raw account data (must be >= 355 bytes).
30
+ * @returns Decoded multisig account.
31
+ * @throws {Error} If data is too short.
32
+ * @since 1.1.0
33
+ */
34
+ function decodeMultisig(data) {
35
+ if (data.length < exports.MULTISIG_SIZE) {
36
+ throw new Error(`Multisig data too short: expected >= ${exports.MULTISIG_SIZE} bytes, got ${data.length}`);
37
+ }
38
+ const r = new layout_1.AccountReader(data);
39
+ const m = r.u8(); // [0]
40
+ const n = r.u8(); // [1]
41
+ const isInitialized = r.bool(); // [2]
42
+ const signers = [];
43
+ for (let i = 0; i < exports.MAX_MULTISIG_SIGNERS; i++) {
44
+ const pk = r.pubkey();
45
+ if (i < n)
46
+ signers.push(pk);
47
+ }
48
+ return { m, n, isInitialized, signers };
49
+ }
50
+ //# sourceMappingURL=multisig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig.js","sourceRoot":"","sources":["../../../src/decoders/multisig.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAoDH,wCAoBC;AArED,qCAAyC;AAyBzC,kEAAkE;AAElE,4DAA4D;AAC/C,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAEvC,8CAA8C;AACjC,QAAA,aAAa,GAAG,GAAG,CAAC;AAEjC,kEAAkE;AAElE;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,qBAAa,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,wCAAwC,qBAAa,eAAe,IAAI,CAAC,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAc,MAAM;IACrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAc,MAAM;IACrC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;IAEtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,4BAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Solana Nonce Account decoder.
3
+ *
4
+ * Decodes durable nonce accounts used for offline/delayed transaction signing.
5
+ *
6
+ * @module decoders/nonce
7
+ * @since 1.1.0
8
+ */
9
+ import type { Pubkey } from '../core/types';
10
+ /** Nonce account state. @since 1.1.0 */
11
+ export type NonceState = 'uninitialized' | 'initialized';
12
+ /**
13
+ * Decoded Solana Nonce Account (80 bytes).
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const nonce = decodeNonceAccount(rawBytes);
18
+ * console.log(`Blockhash: ${nonce.blockhash}, Authority: ${nonce.authority}`);
19
+ * ```
20
+ * @since 1.1.0
21
+ */
22
+ export interface DecodedNonceAccount {
23
+ /** Nonce version discriminant (0 = Legacy, 1 = Current). Most nonces are Current (1). */
24
+ version: number;
25
+ /** Account state. */
26
+ state: NonceState;
27
+ /** Authority that can advance the nonce. */
28
+ authority: Pubkey;
29
+ /** Stored durable blockhash. */
30
+ blockhash: string;
31
+ /** Fee calculator lamports per signature at the stored blockhash. */
32
+ lamportsPerSignature: bigint;
33
+ }
34
+ /** System Program ID. @since 1.1.0 */
35
+ export declare const SYSTEM_PROGRAM_ID = "11111111111111111111111111111111";
36
+ /** Nonce account data size. @since 1.1.0 */
37
+ export declare const NONCE_ACCOUNT_SIZE = 80;
38
+ /**
39
+ * Decode a Solana nonce account from raw bytes.
40
+ *
41
+ * Layout (80 bytes):
42
+ * - [0..4] u32 — version (0=Legacy, 1=Current)
43
+ * - [4..8] u32 — state (0=uninitialized, 1=initialized)
44
+ * - [8..40] [u8;32] — authority pubkey
45
+ * - [40..72] [u8;32] — durable blockhash
46
+ * - [72..80] u64 — lamports per signature
47
+ *
48
+ * @param data - Raw account data (must be >= 80 bytes).
49
+ * @returns Decoded nonce account.
50
+ * @throws {Error} If data is too short.
51
+ * @since 1.1.0
52
+ */
53
+ export declare function decodeNonceAccount(data: Uint8Array): DecodedNonceAccount;
54
+ //# sourceMappingURL=nonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce.d.ts","sourceRoot":"","sources":["../../../src/decoders/nonce.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,wCAAwC;AACxC,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,aAAa,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IAClC,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAID,sCAAsC;AACtC,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAIrC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAiBxE"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Solana Nonce Account decoder.
4
+ *
5
+ * Decodes durable nonce accounts used for offline/delayed transaction signing.
6
+ *
7
+ * @module decoders/nonce
8
+ * @since 1.1.0
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.NONCE_ACCOUNT_SIZE = exports.SYSTEM_PROGRAM_ID = void 0;
12
+ exports.decodeNonceAccount = decodeNonceAccount;
13
+ const layout_1 = require("./layout");
14
+ // ── Constants ──────────────────────────────────────────────────
15
+ /** System Program ID. @since 1.1.0 */
16
+ exports.SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
17
+ /** Nonce account data size. @since 1.1.0 */
18
+ exports.NONCE_ACCOUNT_SIZE = 80;
19
+ // ── Decoder ────────────────────────────────────────────────────
20
+ /**
21
+ * Decode a Solana nonce account from raw bytes.
22
+ *
23
+ * Layout (80 bytes):
24
+ * - [0..4] u32 — version (0=Legacy, 1=Current)
25
+ * - [4..8] u32 — state (0=uninitialized, 1=initialized)
26
+ * - [8..40] [u8;32] — authority pubkey
27
+ * - [40..72] [u8;32] — durable blockhash
28
+ * - [72..80] u64 — lamports per signature
29
+ *
30
+ * @param data - Raw account data (must be >= 80 bytes).
31
+ * @returns Decoded nonce account.
32
+ * @throws {Error} If data is too short.
33
+ * @since 1.1.0
34
+ */
35
+ function decodeNonceAccount(data) {
36
+ if (data.length < exports.NONCE_ACCOUNT_SIZE) {
37
+ throw new Error(`Nonce account data too short: expected >= ${exports.NONCE_ACCOUNT_SIZE} bytes, got ${data.length}`);
38
+ }
39
+ const r = new layout_1.AccountReader(data);
40
+ const version = r.u32(); // [0..4]
41
+ const stateVal = r.u32(); // [4..8]
42
+ const state = stateVal === 1 ? 'initialized' : 'uninitialized';
43
+ const authority = r.pubkey(); // [8..40]
44
+ const blockhash = r.hash(); // [40..72]
45
+ const lamportsPerSignature = r.u64(); // [72..80]
46
+ return { version, state, authority, blockhash, lamportsPerSignature };
47
+ }
48
+ //# sourceMappingURL=nonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce.js","sourceRoot":"","sources":["../../../src/decoders/nonce.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA0DH,gDAiBC;AAxED,qCAAyC;AA8BzC,kEAAkE;AAElE,sCAAsC;AACzB,QAAA,iBAAiB,GAAG,kCAAkC,CAAC;AAEpE,4CAA4C;AAC/B,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC,kEAAkE;AAElE;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB,CAAC,IAAgB;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,0BAAkB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,6CAA6C,0BAAkB,eAAe,IAAI,CAAC,MAAM,EAAE,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAA2B,SAAS;IAC5D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAA0B,SAAS;IAC5D,MAAM,KAAK,GAAe,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;IAC3E,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAsB,UAAU;IAC7D,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAwB,WAAW;IAC9D,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAc,WAAW;IAE9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;AACxE,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Solana Stake Account decoder.
3
+ *
4
+ * Decodes the native stake program account layout into typed objects,
5
+ * including meta (authorized, lockup) and delegation fields.
6
+ *
7
+ * @module decoders/stake
8
+ * @since 1.1.0
9
+ */
10
+ import type { Pubkey } from '../core/types';
11
+ /** Stake account type discriminator. @since 1.1.0 */
12
+ export type StakeAccountType = 'uninitialized' | 'initialized' | 'delegated' | 'rewardsPool';
13
+ /** Authorized staker and withdrawer. @since 1.1.0 */
14
+ export interface StakeAuthorized {
15
+ staker: Pubkey;
16
+ withdrawer: Pubkey;
17
+ }
18
+ /** Lockup configuration. @since 1.1.0 */
19
+ export interface StakeLockup {
20
+ /** Unix timestamp until which stake is locked. 0 = no time lock. */
21
+ unixTimestamp: bigint;
22
+ /** Epoch until which stake is locked. 0 = no epoch lock. */
23
+ epoch: bigint;
24
+ /** Custodian who can override the lockup. */
25
+ custodian: Pubkey;
26
+ }
27
+ /** Stake account metadata (always present after initialization). @since 1.1.0 */
28
+ export interface StakeMeta {
29
+ rentExemptReserve: bigint;
30
+ authorized: StakeAuthorized;
31
+ lockup: StakeLockup;
32
+ }
33
+ /** Stake delegation information (only present when type = 'delegated'). @since 1.1.0 */
34
+ export interface StakeDelegation {
35
+ voterPubkey: Pubkey;
36
+ stake: bigint;
37
+ activationEpoch: bigint;
38
+ deactivationEpoch: bigint;
39
+ /** @deprecated Unused in modern Solana runtime, always 0.25 */
40
+ warmupCooldownRate: number;
41
+ }
42
+ /** Fully decoded stake account. @since 1.1.0 */
43
+ export interface DecodedStakeAccount {
44
+ type: StakeAccountType;
45
+ meta: StakeMeta | null;
46
+ stake: StakeDelegation | null;
47
+ creditsObserved: bigint | null;
48
+ }
49
+ /** Stake Program ID. @since 1.1.0 */
50
+ export declare const STAKE_PROGRAM_ID = "Stake11111111111111111111111111111111111111";
51
+ /**
52
+ * Decode a Solana stake account from raw bytes.
53
+ *
54
+ * Layout (200 bytes for delegated):
55
+ * - [0..4] u32 — discriminator (0=uninit, 1=init, 2=stake, 3=rewards)
56
+ * - [4..124] meta — rentExemptReserve(8) + authorized(64) + lockup(48)
57
+ * - [124..200] stake — delegation(72) + creditsObserved(8) [only if type=2]
58
+ *
59
+ * @param data - Raw stake account data.
60
+ * @returns Decoded stake account.
61
+ * @throws {Error} If data is too short.
62
+ * @since 1.1.0
63
+ */
64
+ export declare function decodeStakeAccount(data: Uint8Array): DecodedStakeAccount;
65
+ //# sourceMappingURL=stake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stake.d.ts","sourceRoot":"","sources":["../../../src/decoders/stake.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,qDAAqD;AACrD,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;AAQ7F,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAID,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,gDAAgD,CAAC;AAI9E;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAgExE"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Solana Stake Account decoder.
4
+ *
5
+ * Decodes the native stake program account layout into typed objects,
6
+ * including meta (authorized, lockup) and delegation fields.
7
+ *
8
+ * @module decoders/stake
9
+ * @since 1.1.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.STAKE_PROGRAM_ID = void 0;
13
+ exports.decodeStakeAccount = decodeStakeAccount;
14
+ const layout_1 = require("./layout");
15
+ const STAKE_TYPES = [
16
+ 'uninitialized', 'initialized', 'delegated', 'rewardsPool',
17
+ ];
18
+ // ── Constants ──────────────────────────────────────────────────
19
+ /** Stake Program ID. @since 1.1.0 */
20
+ exports.STAKE_PROGRAM_ID = 'Stake11111111111111111111111111111111111111';
21
+ // ── Decoder ────────────────────────────────────────────────────
22
+ /**
23
+ * Decode a Solana stake account from raw bytes.
24
+ *
25
+ * Layout (200 bytes for delegated):
26
+ * - [0..4] u32 — discriminator (0=uninit, 1=init, 2=stake, 3=rewards)
27
+ * - [4..124] meta — rentExemptReserve(8) + authorized(64) + lockup(48)
28
+ * - [124..200] stake — delegation(72) + creditsObserved(8) [only if type=2]
29
+ *
30
+ * @param data - Raw stake account data.
31
+ * @returns Decoded stake account.
32
+ * @throws {Error} If data is too short.
33
+ * @since 1.1.0
34
+ */
35
+ function decodeStakeAccount(data) {
36
+ if (data.length < 4) {
37
+ throw new Error(`Stake account data too short: expected >= 4 bytes, got ${data.length}`);
38
+ }
39
+ const r = new layout_1.AccountReader(data);
40
+ const typeIdx = r.u32(); // [0..4]
41
+ const type = STAKE_TYPES[typeIdx] ?? 'uninitialized';
42
+ if (type === 'uninitialized') {
43
+ return { type, meta: null, stake: null, creditsObserved: null };
44
+ }
45
+ // Meta is always present for initialized/delegated/rewardsPool
46
+ if (data.length < 124) {
47
+ throw new Error(`Stake account data too short for meta: expected >= 124 bytes, got ${data.length}`);
48
+ }
49
+ const rentExemptReserve = r.u64(); // [4..12]
50
+ const staker = r.pubkey(); // [12..44]
51
+ const withdrawer = r.pubkey(); // [44..76]
52
+ const unixTimestamp = r.i64(); // [76..84]
53
+ const epoch = r.u64(); // [84..92]
54
+ const custodian = r.pubkey(); // [92..124]
55
+ const meta = {
56
+ rentExemptReserve,
57
+ authorized: { staker, withdrawer },
58
+ lockup: { unixTimestamp, epoch, custodian },
59
+ };
60
+ if (type !== 'delegated') {
61
+ return { type, meta, stake: null, creditsObserved: null };
62
+ }
63
+ // Delegation is present for type=2 (delegated)
64
+ if (data.length < 200) {
65
+ throw new Error(`Stake account data too short for delegation: expected >= 200 bytes, got ${data.length}`);
66
+ }
67
+ const voterPubkey = r.pubkey(); // [124..156]
68
+ const stakeAmount = r.u64(); // [156..164]
69
+ const activationEpoch = r.u64(); // [164..172]
70
+ const deactivationEpoch = r.u64(); // [172..180]
71
+ const warmupCooldownRate = r.f64(); // [180..188]
72
+ const creditsObserved = r.u64(); // [188..196]
73
+ return {
74
+ type,
75
+ meta,
76
+ stake: {
77
+ voterPubkey,
78
+ stake: stakeAmount,
79
+ activationEpoch,
80
+ deactivationEpoch,
81
+ warmupCooldownRate,
82
+ },
83
+ creditsObserved,
84
+ };
85
+ }
86
+ //# sourceMappingURL=stake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stake.js","sourceRoot":"","sources":["../../../src/decoders/stake.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * SPL Token-2022 (Token Extensions) decoder.
3
+ *
4
+ * Parses TLV (Type-Length-Value) extensions appended after the standard
5
+ * 165-byte token account or 82-byte mint layout.
6
+ *
7
+ * @module decoders/token-2022
8
+ * @since 1.1.0
9
+ */
10
+ import type { DecodedTokenAccount, DecodedMint } from './token';
11
+ import type { Pubkey } from '../core/types';
12
+ /** Known Token-2022 extension types. @since 1.1.0 */
13
+ export declare enum TokenExtensionType {
14
+ Uninitialized = 0,
15
+ TransferFeeConfig = 1,
16
+ TransferFeeAmount = 2,
17
+ MintCloseAuthority = 3,
18
+ ConfidentialTransferMint = 4,
19
+ ConfidentialTransferAccount = 5,
20
+ DefaultAccountState = 6,
21
+ ImmutableOwner = 7,
22
+ MemoTransfer = 8,
23
+ NonTransferable = 9,
24
+ InterestBearingConfig = 10,
25
+ CpiGuard = 11,
26
+ PermanentDelegate = 12,
27
+ NonTransferableAccount = 13,
28
+ TransferHook = 14,
29
+ TransferHookAccount = 15,
30
+ MetadataPointer = 18,
31
+ TokenMetadata = 19,
32
+ GroupPointer = 20,
33
+ GroupMemberPointer = 22
34
+ }
35
+ /** Transfer fee configuration extension. @since 1.1.0 */
36
+ export interface TransferFeeConfig {
37
+ type: 'TransferFeeConfig';
38
+ transferFeeConfigAuthority: Pubkey;
39
+ withdrawWithheldAuthority: Pubkey;
40
+ withheldAmount: bigint;
41
+ olderTransferFee: {
42
+ epoch: bigint;
43
+ maximumFee: bigint;
44
+ transferFeeBasisPoints: number;
45
+ };
46
+ newerTransferFee: {
47
+ epoch: bigint;
48
+ maximumFee: bigint;
49
+ transferFeeBasisPoints: number;
50
+ };
51
+ }
52
+ /** Transfer fee amount (on token accounts). @since 1.1.0 */
53
+ export interface TransferFeeAmount {
54
+ type: 'TransferFeeAmount';
55
+ withheldAmount: bigint;
56
+ }
57
+ /** Mint close authority extension. @since 1.1.0 */
58
+ export interface MintCloseAuthorityExt {
59
+ type: 'MintCloseAuthority';
60
+ closeAuthority: Pubkey;
61
+ }
62
+ /** Default account state extension. @since 1.1.0 */
63
+ export interface DefaultAccountStateExt {
64
+ type: 'DefaultAccountState';
65
+ state: number;
66
+ }
67
+ /** Immutable owner extension (marker, no data). @since 1.1.0 */
68
+ export interface ImmutableOwnerExt {
69
+ type: 'ImmutableOwner';
70
+ }
71
+ /** Memo transfer extension. @since 1.1.0 */
72
+ export interface MemoTransferExt {
73
+ type: 'MemoTransfer';
74
+ requireIncomingTransferMemos: boolean;
75
+ }
76
+ /** Non-transferable extension (marker). @since 1.1.0 */
77
+ export interface NonTransferableExt {
78
+ type: 'NonTransferable';
79
+ }
80
+ /** Interest-bearing config extension. @since 1.1.0 */
81
+ export interface InterestBearingConfigExt {
82
+ type: 'InterestBearingConfig';
83
+ rateAuthority: Pubkey;
84
+ initializationTimestamp: bigint;
85
+ preUpdateAverageRate: number;
86
+ lastUpdateTimestamp: bigint;
87
+ currentRate: number;
88
+ }
89
+ /** Permanent delegate extension. @since 1.1.0 */
90
+ export interface PermanentDelegateExt {
91
+ type: 'PermanentDelegate';
92
+ delegate: Pubkey;
93
+ }
94
+ /** Metadata pointer extension. @since 1.1.0 */
95
+ export interface MetadataPointerExt {
96
+ type: 'MetadataPointer';
97
+ authority: Pubkey;
98
+ metadataAddress: Pubkey;
99
+ }
100
+ /** Unknown / unrecognized extension. @since 1.1.0 */
101
+ export interface UnknownExtension {
102
+ type: 'Unknown';
103
+ extensionType: number;
104
+ data: Uint8Array;
105
+ }
106
+ /** Union of all decoded extensions. @since 1.1.0 */
107
+ export type DecodedExtension = TransferFeeConfig | TransferFeeAmount | MintCloseAuthorityExt | DefaultAccountStateExt | ImmutableOwnerExt | MemoTransferExt | NonTransferableExt | InterestBearingConfigExt | PermanentDelegateExt | MetadataPointerExt | UnknownExtension;
108
+ /** Decoded Token-2022 account with extensions. @since 1.1.0 */
109
+ export interface DecodedToken2022Account extends DecodedTokenAccount {
110
+ extensions: DecodedExtension[];
111
+ }
112
+ /** Decoded Token-2022 mint with extensions. @since 1.1.0 */
113
+ export interface DecodedToken2022Mint extends DecodedMint {
114
+ extensions: DecodedExtension[];
115
+ }
116
+ /** SPL Token-2022 Program ID. @since 1.1.0 */
117
+ export declare const TOKEN_2022_PROGRAM_ID = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
118
+ /**
119
+ * Decode a Token-2022 token account (base layout + TLV extensions).
120
+ *
121
+ * @param data - Raw account data (>= 165 bytes).
122
+ * @returns Decoded account with parsed extensions.
123
+ * @since 1.1.0
124
+ */
125
+ export declare function decodeToken2022Account(data: Uint8Array): DecodedToken2022Account;
126
+ /**
127
+ * Decode a Token-2022 mint (base layout + TLV extensions).
128
+ *
129
+ * @param data - Raw account data (>= 82 bytes).
130
+ * @returns Decoded mint with parsed extensions.
131
+ * @since 1.1.0
132
+ */
133
+ export declare function decodeToken2022Mint(data: Uint8Array): DecodedToken2022Mint;
134
+ //# sourceMappingURL=token-2022.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-2022.d.ts","sourceRoot":"","sources":["../../../src/decoders/token-2022.ts"],"names":[],"mappings":"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"}