@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,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,46 @@
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 { AccountReader } from './layout.js';
10
+ // ── Constants ──────────────────────────────────────────────────
11
+ /** Maximum number of signers in a multisig. @since 1.1.0 */
12
+ export const MAX_MULTISIG_SIGNERS = 11;
13
+ /** SPL Multisig account size. @since 1.1.0 */
14
+ export const MULTISIG_SIZE = 355;
15
+ // ── Decoder ────────────────────────────────────────────────────
16
+ /**
17
+ * Decode an SPL Token Multisig account from raw bytes.
18
+ *
19
+ * Layout (355 bytes):
20
+ * - [0] u8 — m (threshold)
21
+ * - [1] u8 — n (total valid signers)
22
+ * - [2] u8 — is_initialized
23
+ * - [3..355] [Pubkey;11] — signer slots (32 bytes each, only first n are valid)
24
+ *
25
+ * @param data - Raw account data (must be >= 355 bytes).
26
+ * @returns Decoded multisig account.
27
+ * @throws {Error} If data is too short.
28
+ * @since 1.1.0
29
+ */
30
+ export function decodeMultisig(data) {
31
+ if (data.length < MULTISIG_SIZE) {
32
+ throw new Error(`Multisig data too short: expected >= ${MULTISIG_SIZE} bytes, got ${data.length}`);
33
+ }
34
+ const r = new AccountReader(data);
35
+ const m = r.u8(); // [0]
36
+ const n = r.u8(); // [1]
37
+ const isInitialized = r.bool(); // [2]
38
+ const signers = [];
39
+ for (let i = 0; i < MAX_MULTISIG_SIGNERS; i++) {
40
+ const pk = r.pubkey();
41
+ if (i < n)
42
+ signers.push(pk);
43
+ }
44
+ return { m, n, isInitialized, signers };
45
+ }
46
+ //# sourceMappingURL=multisig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig.js","sourceRoot":"","sources":["../../../src/decoders/multisig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAyBzC,kEAAkE;AAElE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,kEAAkE;AAElE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,wCAAwC,aAAa,eAAe,IAAI,CAAC,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,aAAa,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,oBAAoB,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,44 @@
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 { AccountReader } from './layout.js';
10
+ // ── Constants ──────────────────────────────────────────────────
11
+ /** System Program ID. @since 1.1.0 */
12
+ export const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
13
+ /** Nonce account data size. @since 1.1.0 */
14
+ export const NONCE_ACCOUNT_SIZE = 80;
15
+ // ── Decoder ────────────────────────────────────────────────────
16
+ /**
17
+ * Decode a Solana nonce account from raw bytes.
18
+ *
19
+ * Layout (80 bytes):
20
+ * - [0..4] u32 — version (0=Legacy, 1=Current)
21
+ * - [4..8] u32 — state (0=uninitialized, 1=initialized)
22
+ * - [8..40] [u8;32] — authority pubkey
23
+ * - [40..72] [u8;32] — durable blockhash
24
+ * - [72..80] u64 — lamports per signature
25
+ *
26
+ * @param data - Raw account data (must be >= 80 bytes).
27
+ * @returns Decoded nonce account.
28
+ * @throws {Error} If data is too short.
29
+ * @since 1.1.0
30
+ */
31
+ export function decodeNonceAccount(data) {
32
+ if (data.length < NONCE_ACCOUNT_SIZE) {
33
+ throw new Error(`Nonce account data too short: expected >= ${NONCE_ACCOUNT_SIZE} bytes, got ${data.length}`);
34
+ }
35
+ const r = new AccountReader(data);
36
+ const version = r.u32(); // [0..4]
37
+ const stateVal = r.u32(); // [4..8]
38
+ const state = stateVal === 1 ? 'initialized' : 'uninitialized';
39
+ const authority = r.pubkey(); // [8..40]
40
+ const blockhash = r.hash(); // [40..72]
41
+ const lamportsPerSignature = r.u64(); // [72..80]
42
+ return { version, state, authority, blockhash, lamportsPerSignature };
43
+ }
44
+ //# sourceMappingURL=nonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce.js","sourceRoot":"","sources":["../../../src/decoders/nonce.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA8BzC,kEAAkE;AAElE,sCAAsC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,kCAAkC,CAAC;AAEpE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,kEAAkE;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAgB;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,6CAA6C,kBAAkB,eAAe,IAAI,CAAC,MAAM,EAAE,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,aAAa,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,82 @@
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 { AccountReader } from './layout.js';
11
+ const STAKE_TYPES = [
12
+ 'uninitialized', 'initialized', 'delegated', 'rewardsPool',
13
+ ];
14
+ // ── Constants ──────────────────────────────────────────────────
15
+ /** Stake Program ID. @since 1.1.0 */
16
+ export const STAKE_PROGRAM_ID = 'Stake11111111111111111111111111111111111111';
17
+ // ── Decoder ────────────────────────────────────────────────────
18
+ /**
19
+ * Decode a Solana stake account from raw bytes.
20
+ *
21
+ * Layout (200 bytes for delegated):
22
+ * - [0..4] u32 — discriminator (0=uninit, 1=init, 2=stake, 3=rewards)
23
+ * - [4..124] meta — rentExemptReserve(8) + authorized(64) + lockup(48)
24
+ * - [124..200] stake — delegation(72) + creditsObserved(8) [only if type=2]
25
+ *
26
+ * @param data - Raw stake account data.
27
+ * @returns Decoded stake account.
28
+ * @throws {Error} If data is too short.
29
+ * @since 1.1.0
30
+ */
31
+ export function decodeStakeAccount(data) {
32
+ if (data.length < 4) {
33
+ throw new Error(`Stake account data too short: expected >= 4 bytes, got ${data.length}`);
34
+ }
35
+ const r = new AccountReader(data);
36
+ const typeIdx = r.u32(); // [0..4]
37
+ const type = STAKE_TYPES[typeIdx] ?? 'uninitialized';
38
+ if (type === 'uninitialized') {
39
+ return { type, meta: null, stake: null, creditsObserved: null };
40
+ }
41
+ // Meta is always present for initialized/delegated/rewardsPool
42
+ if (data.length < 124) {
43
+ throw new Error(`Stake account data too short for meta: expected >= 124 bytes, got ${data.length}`);
44
+ }
45
+ const rentExemptReserve = r.u64(); // [4..12]
46
+ const staker = r.pubkey(); // [12..44]
47
+ const withdrawer = r.pubkey(); // [44..76]
48
+ const unixTimestamp = r.i64(); // [76..84]
49
+ const epoch = r.u64(); // [84..92]
50
+ const custodian = r.pubkey(); // [92..124]
51
+ const meta = {
52
+ rentExemptReserve,
53
+ authorized: { staker, withdrawer },
54
+ lockup: { unixTimestamp, epoch, custodian },
55
+ };
56
+ if (type !== 'delegated') {
57
+ return { type, meta, stake: null, creditsObserved: null };
58
+ }
59
+ // Delegation is present for type=2 (delegated)
60
+ if (data.length < 200) {
61
+ throw new Error(`Stake account data too short for delegation: expected >= 200 bytes, got ${data.length}`);
62
+ }
63
+ const voterPubkey = r.pubkey(); // [124..156]
64
+ const stakeAmount = r.u64(); // [156..164]
65
+ const activationEpoch = r.u64(); // [164..172]
66
+ const deactivationEpoch = r.u64(); // [172..180]
67
+ const warmupCooldownRate = r.f64(); // [180..188]
68
+ const creditsObserved = r.u64(); // [188..196]
69
+ return {
70
+ type,
71
+ meta,
72
+ stake: {
73
+ voterPubkey,
74
+ stake: stakeAmount,
75
+ activationEpoch,
76
+ deactivationEpoch,
77
+ warmupCooldownRate,
78
+ },
79
+ creditsObserved,
80
+ };
81
+ }
82
+ //# 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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"}
@@ -0,0 +1,155 @@
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 { AccountReader } from './layout.js';
11
+ import { decodeTokenAccount, decodeMint, TOKEN_ACCOUNT_SIZE, MINT_SIZE, } from './token.js';
12
+ // ── Extension type enum ────────────────────────────────────────
13
+ /** Known Token-2022 extension types. @since 1.1.0 */
14
+ export var TokenExtensionType;
15
+ (function (TokenExtensionType) {
16
+ TokenExtensionType[TokenExtensionType["Uninitialized"] = 0] = "Uninitialized";
17
+ TokenExtensionType[TokenExtensionType["TransferFeeConfig"] = 1] = "TransferFeeConfig";
18
+ TokenExtensionType[TokenExtensionType["TransferFeeAmount"] = 2] = "TransferFeeAmount";
19
+ TokenExtensionType[TokenExtensionType["MintCloseAuthority"] = 3] = "MintCloseAuthority";
20
+ TokenExtensionType[TokenExtensionType["ConfidentialTransferMint"] = 4] = "ConfidentialTransferMint";
21
+ TokenExtensionType[TokenExtensionType["ConfidentialTransferAccount"] = 5] = "ConfidentialTransferAccount";
22
+ TokenExtensionType[TokenExtensionType["DefaultAccountState"] = 6] = "DefaultAccountState";
23
+ TokenExtensionType[TokenExtensionType["ImmutableOwner"] = 7] = "ImmutableOwner";
24
+ TokenExtensionType[TokenExtensionType["MemoTransfer"] = 8] = "MemoTransfer";
25
+ TokenExtensionType[TokenExtensionType["NonTransferable"] = 9] = "NonTransferable";
26
+ TokenExtensionType[TokenExtensionType["InterestBearingConfig"] = 10] = "InterestBearingConfig";
27
+ TokenExtensionType[TokenExtensionType["CpiGuard"] = 11] = "CpiGuard";
28
+ TokenExtensionType[TokenExtensionType["PermanentDelegate"] = 12] = "PermanentDelegate";
29
+ TokenExtensionType[TokenExtensionType["NonTransferableAccount"] = 13] = "NonTransferableAccount";
30
+ TokenExtensionType[TokenExtensionType["TransferHook"] = 14] = "TransferHook";
31
+ TokenExtensionType[TokenExtensionType["TransferHookAccount"] = 15] = "TransferHookAccount";
32
+ TokenExtensionType[TokenExtensionType["MetadataPointer"] = 18] = "MetadataPointer";
33
+ TokenExtensionType[TokenExtensionType["TokenMetadata"] = 19] = "TokenMetadata";
34
+ TokenExtensionType[TokenExtensionType["GroupPointer"] = 20] = "GroupPointer";
35
+ TokenExtensionType[TokenExtensionType["GroupMemberPointer"] = 22] = "GroupMemberPointer";
36
+ })(TokenExtensionType || (TokenExtensionType = {}));
37
+ /** SPL Token-2022 Program ID. @since 1.1.0 */
38
+ export const TOKEN_2022_PROGRAM_ID = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb';
39
+ // ── TLV parser ─────────────────────────────────────────────────
40
+ /**
41
+ * Parse TLV extensions from raw account data.
42
+ *
43
+ * Layout after base account:
44
+ * - 1 byte: AccountType discriminator (1 = Mint, 2 = Account)
45
+ * - TLV entries: [u16 type, u16 length, ...data] repeated
46
+ *
47
+ * @internal
48
+ */
49
+ function parseTlvExtensions(data, baseSize) {
50
+ const extensions = [];
51
+ // Skip base layout + 1-byte AccountType discriminator
52
+ let offset = baseSize + 1;
53
+ while (offset + 4 <= data.length) {
54
+ const extType = data[offset] | (data[offset + 1] << 8); // u16 LE
55
+ const extLen = data[offset + 2] | (data[offset + 3] << 8); // u16 LE
56
+ offset += 4;
57
+ // End marker: type=0 && length=0
58
+ if (extType === 0 && extLen === 0)
59
+ break;
60
+ if (offset + extLen > data.length)
61
+ break;
62
+ const extData = data.slice(offset, offset + extLen);
63
+ extensions.push(decodeExtension(extType, extData));
64
+ offset += extLen;
65
+ }
66
+ return extensions;
67
+ }
68
+ /** @internal */
69
+ function decodeExtension(extType, data) {
70
+ const r = new AccountReader(data);
71
+ switch (extType) {
72
+ case TokenExtensionType.TransferFeeConfig: {
73
+ const transferFeeConfigAuthority = r.pubkey();
74
+ const withdrawWithheldAuthority = r.pubkey();
75
+ const withheldAmount = r.u64();
76
+ const olderEpoch = r.u64();
77
+ const olderMax = r.u64();
78
+ const olderBps = r.u16();
79
+ const newerEpoch = r.u64();
80
+ const newerMax = r.u64();
81
+ const newerBps = r.u16();
82
+ return {
83
+ type: 'TransferFeeConfig',
84
+ transferFeeConfigAuthority,
85
+ withdrawWithheldAuthority,
86
+ withheldAmount,
87
+ olderTransferFee: { epoch: olderEpoch, maximumFee: olderMax, transferFeeBasisPoints: olderBps },
88
+ newerTransferFee: { epoch: newerEpoch, maximumFee: newerMax, transferFeeBasisPoints: newerBps },
89
+ };
90
+ }
91
+ case TokenExtensionType.TransferFeeAmount:
92
+ return { type: 'TransferFeeAmount', withheldAmount: r.u64() };
93
+ case TokenExtensionType.MintCloseAuthority:
94
+ return { type: 'MintCloseAuthority', closeAuthority: r.pubkey() };
95
+ case TokenExtensionType.DefaultAccountState:
96
+ return { type: 'DefaultAccountState', state: r.u8() };
97
+ case TokenExtensionType.ImmutableOwner:
98
+ return { type: 'ImmutableOwner' };
99
+ case TokenExtensionType.MemoTransfer:
100
+ return { type: 'MemoTransfer', requireIncomingTransferMemos: r.bool() };
101
+ case TokenExtensionType.NonTransferable:
102
+ return { type: 'NonTransferable' };
103
+ case TokenExtensionType.InterestBearingConfig: {
104
+ const rateAuthority = r.pubkey();
105
+ const initializationTimestamp = r.i64();
106
+ const preUpdateAverageRate = r.u16();
107
+ const lastUpdateTimestamp = r.i64();
108
+ const currentRate = r.u16();
109
+ return {
110
+ type: 'InterestBearingConfig',
111
+ rateAuthority,
112
+ initializationTimestamp,
113
+ preUpdateAverageRate,
114
+ lastUpdateTimestamp,
115
+ currentRate,
116
+ };
117
+ }
118
+ case TokenExtensionType.PermanentDelegate:
119
+ return { type: 'PermanentDelegate', delegate: r.pubkey() };
120
+ case TokenExtensionType.MetadataPointer:
121
+ return { type: 'MetadataPointer', authority: r.pubkey(), metadataAddress: r.pubkey() };
122
+ default:
123
+ return { type: 'Unknown', extensionType: extType, data };
124
+ }
125
+ }
126
+ // ── Public decoders ────────────────────────────────────────────
127
+ /**
128
+ * Decode a Token-2022 token account (base layout + TLV extensions).
129
+ *
130
+ * @param data - Raw account data (>= 165 bytes).
131
+ * @returns Decoded account with parsed extensions.
132
+ * @since 1.1.0
133
+ */
134
+ export function decodeToken2022Account(data) {
135
+ const base = decodeTokenAccount(data);
136
+ const extensions = data.length > TOKEN_ACCOUNT_SIZE + 1
137
+ ? parseTlvExtensions(data, TOKEN_ACCOUNT_SIZE)
138
+ : [];
139
+ return { ...base, extensions };
140
+ }
141
+ /**
142
+ * Decode a Token-2022 mint (base layout + TLV extensions).
143
+ *
144
+ * @param data - Raw account data (>= 82 bytes).
145
+ * @returns Decoded mint with parsed extensions.
146
+ * @since 1.1.0
147
+ */
148
+ export function decodeToken2022Mint(data) {
149
+ const base = decodeMint(data);
150
+ const extensions = data.length > MINT_SIZE + 1
151
+ ? parseTlvExtensions(data, MINT_SIZE)
152
+ : [];
153
+ return { ...base, extensions };
154
+ }
155
+ //# sourceMappingURL=token-2022.js.map