@oobe-protocol-labs/synapse-client-sdk 1.0.2 → 1.0.3
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.
- package/CHANGELOG.md +32 -0
- package/dist/cjs/accounts/helpers.d.ts +88 -0
- package/dist/cjs/accounts/helpers.d.ts.map +1 -0
- package/dist/cjs/accounts/helpers.js +117 -0
- package/dist/cjs/accounts/helpers.js.map +1 -0
- package/dist/cjs/accounts/index.d.ts +105 -0
- package/dist/cjs/accounts/index.d.ts.map +1 -0
- package/dist/cjs/accounts/index.js +137 -0
- package/dist/cjs/accounts/index.js.map +1 -0
- package/dist/cjs/accounts/lookup.d.ts +30 -0
- package/dist/cjs/accounts/lookup.d.ts.map +1 -0
- package/dist/cjs/accounts/lookup.js +31 -0
- package/dist/cjs/accounts/lookup.js.map +1 -0
- package/dist/cjs/accounts/nonce.d.ts +30 -0
- package/dist/cjs/accounts/nonce.d.ts.map +1 -0
- package/dist/cjs/accounts/nonce.js +31 -0
- package/dist/cjs/accounts/nonce.js.map +1 -0
- package/dist/cjs/accounts/stake.d.ts +33 -0
- package/dist/cjs/accounts/stake.d.ts.map +1 -0
- package/dist/cjs/accounts/stake.js +34 -0
- package/dist/cjs/accounts/stake.js.map +1 -0
- package/dist/cjs/accounts/token.d.ts +98 -0
- package/dist/cjs/accounts/token.d.ts.map +1 -0
- package/dist/cjs/accounts/token.js +126 -0
- package/dist/cjs/accounts/token.js.map +1 -0
- package/dist/cjs/ai/tools/zod/index.d.ts +1 -1
- package/dist/cjs/ai/tools/zod/index.d.ts.map +1 -1
- package/dist/cjs/ai/tools/zod/index.js +2 -2
- package/dist/cjs/ai/tools/zod/index.js.map +1 -1
- package/dist/cjs/ai/tools/zod/types.d.ts +2 -0
- package/dist/cjs/ai/tools/zod/types.d.ts.map +1 -1
- package/dist/cjs/ai/tools/zod/types.js.map +1 -1
- package/dist/cjs/core/client.d.ts +25 -0
- package/dist/cjs/core/client.d.ts.map +1 -1
- package/dist/cjs/core/client.js +30 -0
- package/dist/cjs/core/client.js.map +1 -1
- package/dist/cjs/decoders/index.d.ts +36 -0
- package/dist/cjs/decoders/index.d.ts.map +1 -0
- package/dist/cjs/decoders/index.js +62 -0
- package/dist/cjs/decoders/index.js.map +1 -0
- package/dist/cjs/decoders/layout.d.ts +105 -0
- package/dist/cjs/decoders/layout.d.ts.map +1 -0
- package/dist/cjs/decoders/layout.js +188 -0
- package/dist/cjs/decoders/layout.js.map +1 -0
- package/dist/cjs/decoders/lookup-table.d.ts +60 -0
- package/dist/cjs/decoders/lookup-table.d.ts.map +1 -0
- package/dist/cjs/decoders/lookup-table.js +75 -0
- package/dist/cjs/decoders/lookup-table.js.map +1 -0
- package/dist/cjs/decoders/multisig.d.ts +49 -0
- package/dist/cjs/decoders/multisig.d.ts.map +1 -0
- package/dist/cjs/decoders/multisig.js +50 -0
- package/dist/cjs/decoders/multisig.js.map +1 -0
- package/dist/cjs/decoders/nonce.d.ts +54 -0
- package/dist/cjs/decoders/nonce.d.ts.map +1 -0
- package/dist/cjs/decoders/nonce.js +48 -0
- package/dist/cjs/decoders/nonce.js.map +1 -0
- package/dist/cjs/decoders/stake.d.ts +65 -0
- package/dist/cjs/decoders/stake.d.ts.map +1 -0
- package/dist/cjs/decoders/stake.js +86 -0
- package/dist/cjs/decoders/stake.js.map +1 -0
- package/dist/cjs/decoders/token-2022.d.ts +134 -0
- package/dist/cjs/decoders/token-2022.d.ts.map +1 -0
- package/dist/cjs/decoders/token-2022.js +160 -0
- package/dist/cjs/decoders/token-2022.js.map +1 -0
- package/dist/cjs/decoders/token.d.ts +87 -0
- package/dist/cjs/decoders/token.d.ts.map +1 -0
- package/dist/cjs/decoders/token.js +71 -0
- package/dist/cjs/decoders/token.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs/assets/navigation.js +1 -1
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/classes/AccountReader.html +61 -0
- package/dist/docs/classes/AccountsClient.html +43 -0
- package/dist/docs/classes/DasClient.html +13 -13
- package/dist/docs/classes/GeyserParser.html +17 -17
- package/dist/docs/classes/GrpcTransport.html +6 -6
- package/dist/docs/classes/HttpTransport.html +4 -4
- package/dist/docs/classes/NetworkError.html +5 -5
- package/dist/docs/classes/RpcMethodNotFoundError.html +4 -4
- package/dist/docs/classes/SolanaRpc.html +55 -55
- package/dist/docs/classes/SynapseClient.html +35 -25
- package/dist/docs/classes/SynapseError.html +4 -4
- package/dist/docs/classes/TimeoutError.html +4 -4
- package/dist/docs/classes/UpstreamError.html +6 -6
- package/dist/docs/classes/WsClient.html +10 -10
- package/dist/docs/enums/SynapseNetwork.html +2 -2
- package/dist/docs/enums/SynapseRegion.html +2 -2
- package/dist/docs/enums/TokenExtensionType.html +23 -0
- package/dist/docs/functions/Epoch-1.html +1 -1
- package/dist/docs/functions/Lamports-2.html +1 -1
- package/dist/docs/functions/Pubkey-1.html +1 -1
- package/dist/docs/functions/Sig.html +1 -1
- package/dist/docs/functions/Slot-1.html +1 -1
- package/dist/docs/functions/UnixTs.html +1 -1
- package/dist/docs/functions/autoSelectRegion.html +1 -1
- package/dist/docs/functions/base58Encode.html +1 -1
- package/dist/docs/functions/base64ToBytes.html +7 -0
- package/dist/docs/functions/chunk.html +1 -1
- package/dist/docs/functions/computeBalanceChanges.html +1 -1
- package/dist/docs/functions/computeTokenBalanceChanges.html +1 -1
- package/dist/docs/functions/createSynapse.html +1 -1
- package/dist/docs/functions/decodeLookupTable.html +17 -0
- package/dist/docs/functions/decodeMint.html +6 -0
- package/dist/docs/functions/decodeMultisig.html +13 -0
- package/dist/docs/functions/decodeNonceAccount.html +14 -0
- package/dist/docs/functions/decodeStakeAccount.html +12 -0
- package/dist/docs/functions/decodeToken2022Account.html +5 -0
- package/dist/docs/functions/decodeToken2022Mint.html +5 -0
- package/dist/docs/functions/decodeTokenAccount.html +6 -0
- package/dist/docs/functions/encodeBase58.html +7 -0
- package/dist/docs/functions/fetchLookupTable.html +10 -0
- package/dist/docs/functions/fetchMint.html +11 -0
- package/dist/docs/functions/fetchNonceAccount.html +10 -0
- package/dist/docs/functions/fetchStakeAccount.html +10 -0
- package/dist/docs/functions/fetchTokenAccount.html +12 -0
- package/dist/docs/functions/fetchTokenAccountsByOwner.html +11 -0
- package/dist/docs/functions/fromKitAddress.html +1 -1
- package/dist/docs/functions/getAccountInfo.html +1 -1
- package/dist/docs/functions/getAsset.html +1 -1
- package/dist/docs/functions/getAssetBatch.html +1 -1
- package/dist/docs/functions/getAssetProof.html +1 -1
- package/dist/docs/functions/getAssetProofBatch.html +1 -1
- package/dist/docs/functions/getAssetsByAuthority.html +1 -1
- package/dist/docs/functions/getAssetsByCreator.html +1 -1
- package/dist/docs/functions/getAssetsByGroup.html +1 -1
- package/dist/docs/functions/getAssetsByOwner.html +1 -1
- package/dist/docs/functions/getBalance.html +1 -1
- package/dist/docs/functions/getBlock.html +1 -1
- package/dist/docs/functions/getBlockCommitment.html +1 -1
- package/dist/docs/functions/getBlockHeight.html +1 -1
- package/dist/docs/functions/getBlockProduction.html +1 -1
- package/dist/docs/functions/getBlockTime.html +1 -1
- package/dist/docs/functions/getBlocks.html +1 -1
- package/dist/docs/functions/getBlocksWithLimit.html +1 -1
- package/dist/docs/functions/getClusterNodes.html +1 -1
- package/dist/docs/functions/getDecodedAccount.html +14 -0
- package/dist/docs/functions/getDecodedAccounts.html +9 -0
- package/dist/docs/functions/getEnvironment.html +1 -1
- package/dist/docs/functions/getEpochInfo.html +1 -1
- package/dist/docs/functions/getEpochSchedule.html +1 -1
- package/dist/docs/functions/getFeeForMessage.html +1 -1
- package/dist/docs/functions/getFirstAvailableBlock.html +1 -1
- package/dist/docs/functions/getGenesisHash.html +1 -1
- package/dist/docs/functions/getHealth.html +1 -1
- package/dist/docs/functions/getHighestSnapshotSlot.html +1 -1
- package/dist/docs/functions/getIdentity.html +1 -1
- package/dist/docs/functions/getInflationGovernor.html +1 -1
- package/dist/docs/functions/getInflationRate.html +1 -1
- package/dist/docs/functions/getInflationReward.html +1 -1
- package/dist/docs/functions/getLargestAccounts.html +1 -1
- package/dist/docs/functions/getLatestBlockhash.html +1 -1
- package/dist/docs/functions/getLeaderSchedule.html +1 -1
- package/dist/docs/functions/getMaxRetransmitSlot.html +1 -1
- package/dist/docs/functions/getMaxShredInsertSlot.html +1 -1
- package/dist/docs/functions/getMinimumBalanceForRentExemption.html +1 -1
- package/dist/docs/functions/getMultipleAccounts.html +1 -1
- package/dist/docs/functions/getProgramAccounts.html +1 -1
- package/dist/docs/functions/getProgramCategory.html +1 -1
- package/dist/docs/functions/getRecentPerformanceSamples.html +1 -1
- package/dist/docs/functions/getRecentPrioritizationFees.html +1 -1
- package/dist/docs/functions/getSignatureStatuses.html +1 -1
- package/dist/docs/functions/getSignaturesForAddress.html +1 -1
- package/dist/docs/functions/getSignaturesForAsset.html +1 -1
- package/dist/docs/functions/getSlot.html +1 -1
- package/dist/docs/functions/getSlotLeader.html +1 -1
- package/dist/docs/functions/getSlotLeaders.html +1 -1
- package/dist/docs/functions/getStakeActivation.html +1 -1
- package/dist/docs/functions/getStakeMinimumDelegation.html +1 -1
- package/dist/docs/functions/getSupply.html +1 -1
- package/dist/docs/functions/getTokenAccountBalance.html +1 -1
- package/dist/docs/functions/getTokenAccounts.html +1 -1
- package/dist/docs/functions/getTokenAccountsByDelegate.html +1 -1
- package/dist/docs/functions/getTokenAccountsByOwner.html +1 -1
- package/dist/docs/functions/getTokenLargestAccounts.html +1 -1
- package/dist/docs/functions/getTokenSupply.html +1 -1
- package/dist/docs/functions/getTransaction.html +1 -1
- package/dist/docs/functions/getTransactionCount.html +1 -1
- package/dist/docs/functions/getVersion.html +1 -1
- package/dist/docs/functions/getVoteAccounts.html +1 -1
- package/dist/docs/functions/isBlockhashValid.html +1 -1
- package/dist/docs/functions/isBrowser.html +1 -1
- package/dist/docs/functions/isProgramInCategory.html +1 -1
- package/dist/docs/functions/isServer.html +1 -1
- package/dist/docs/functions/isValidPubkey.html +1 -1
- package/dist/docs/functions/isValidSignature.html +1 -1
- package/dist/docs/functions/lamportsToSol.html +1 -1
- package/dist/docs/functions/listEndpoints.html +1 -1
- package/dist/docs/functions/listNetworks.html +1 -1
- package/dist/docs/functions/listRegions.html +1 -1
- package/dist/docs/functions/minimumLedgerSlot.html +1 -1
- package/dist/docs/functions/parseAccountUpdate.html +1 -1
- package/dist/docs/functions/parseBlockMeta.html +1 -1
- package/dist/docs/functions/parseEntry.html +1 -1
- package/dist/docs/functions/parseGeyserUpdate.html +1 -1
- package/dist/docs/functions/parseSlotUpdate.html +1 -1
- package/dist/docs/functions/parseTimestamp.html +1 -1
- package/dist/docs/functions/parseTransaction.html +1 -1
- package/dist/docs/functions/probeLatency.html +1 -1
- package/dist/docs/functions/rawBufferToBase58.html +1 -1
- package/dist/docs/functions/rawBufferToBase64.html +1 -1
- package/dist/docs/functions/rawBufferToBytes.html +1 -1
- package/dist/docs/functions/rawBufferToHex.html +1 -1
- package/dist/docs/functions/requestAirdrop.html +1 -1
- package/dist/docs/functions/resolveEndpoint.html +1 -1
- package/dist/docs/functions/resolveProgram.html +1 -1
- package/dist/docs/functions/resolveProgramBatch.html +1 -1
- package/dist/docs/functions/retry.html +1 -1
- package/dist/docs/functions/searchAssets.html +1 -1
- package/dist/docs/functions/sendTransaction.html +1 -1
- package/dist/docs/functions/simulateTransaction.html +1 -1
- package/dist/docs/functions/sleep.html +1 -1
- package/dist/docs/functions/solToLamports.html +1 -1
- package/dist/docs/functions/toClientConfig.html +1 -1
- package/dist/docs/functions/toKitAddress.html +1 -1
- package/dist/docs/functions/toKitLamports.html +1 -1
- package/dist/docs/functions/toKitSignatureString.html +1 -1
- package/dist/docs/hierarchy.html +1 -1
- package/dist/docs/interfaces/AccountInfo.html +7 -7
- package/dist/docs/interfaces/AccountNotification.html +2 -2
- package/dist/docs/interfaces/AccountSubParams.html +2 -2
- package/dist/docs/interfaces/AssetSignatureInfo.html +2 -2
- package/dist/docs/interfaces/AssetSignaturesPage.html +2 -2
- package/dist/docs/interfaces/BalanceChange.html +6 -6
- package/dist/docs/interfaces/BlockProduction.html +3 -3
- package/dist/docs/interfaces/BlockResult.html +2 -2
- package/dist/docs/interfaces/BlockReward.html +2 -2
- package/dist/docs/interfaces/BlockhashResult.html +2 -2
- package/dist/docs/interfaces/CallOptions.html +6 -6
- package/dist/docs/interfaces/ConfirmedTransaction.html +6 -6
- package/dist/docs/interfaces/ContactInfo.html +2 -2
- package/dist/docs/interfaces/DasAsset.html +2 -2
- package/dist/docs/interfaces/DasAssetProof.html +2 -2
- package/dist/docs/interfaces/DasAuthority.html +2 -2
- package/dist/docs/interfaces/DasCompression.html +2 -2
- package/dist/docs/interfaces/DasContent.html +2 -2
- package/dist/docs/interfaces/DasCreator.html +2 -2
- package/dist/docs/interfaces/DasFile.html +2 -2
- package/dist/docs/interfaces/DasGrouping.html +2 -2
- package/dist/docs/interfaces/DasOpts.html +2 -2
- package/dist/docs/interfaces/DasOwnership.html +2 -2
- package/dist/docs/interfaces/DasPage.html +2 -2
- package/dist/docs/interfaces/DasRoyalty.html +2 -2
- package/dist/docs/interfaces/DasSearchParams.html +2 -2
- package/dist/docs/interfaces/DasSupply.html +2 -2
- package/dist/docs/interfaces/DataSlice.html +3 -3
- package/dist/docs/interfaces/DecodedAccountResult.html +10 -0
- package/dist/docs/interfaces/DecodedLookupTable.html +20 -0
- package/dist/docs/interfaces/DecodedMint.html +16 -0
- package/dist/docs/interfaces/DecodedMultisig.html +14 -0
- package/dist/docs/interfaces/DecodedNonceAccount.html +16 -0
- package/dist/docs/interfaces/DecodedStakeAccount.html +7 -0
- package/dist/docs/interfaces/DecodedToken2022Account.html +20 -0
- package/dist/docs/interfaces/DecodedToken2022Mint.html +14 -0
- package/dist/docs/interfaces/DecodedTokenAccount.html +22 -0
- package/dist/docs/interfaces/DefaultAccountStateExt.html +5 -0
- package/dist/docs/interfaces/EndpointConnectConfig.html +5 -5
- package/dist/docs/interfaces/EpochInfo.html +7 -7
- package/dist/docs/interfaces/EpochSchedule.html +2 -2
- package/dist/docs/interfaces/FetchedMint.html +13 -0
- package/dist/docs/interfaces/FetchedTokenAccount.html +13 -0
- package/dist/docs/interfaces/GetAccountInfoOpts.html +6 -6
- package/dist/docs/interfaces/GetAssetsByAuthorityParams.html +2 -2
- package/dist/docs/interfaces/GetAssetsByCreatorParams.html +2 -2
- package/dist/docs/interfaces/GetAssetsByGroupParams.html +2 -2
- package/dist/docs/interfaces/GetAssetsByOwnerParams.html +2 -2
- package/dist/docs/interfaces/GetBlockOpts.html +6 -6
- package/dist/docs/interfaces/GetBlockProductionOpts.html +6 -6
- package/dist/docs/interfaces/GetMultipleAccountsOpts.html +6 -6
- package/dist/docs/interfaces/GetProgramAccountsOpts.html +6 -6
- package/dist/docs/interfaces/GetSignatureStatusesOpts.html +6 -6
- package/dist/docs/interfaces/GetSignaturesOpts.html +7 -7
- package/dist/docs/interfaces/GetTokenAccountsParams.html +2 -2
- package/dist/docs/interfaces/GetTransactionOpts.html +6 -6
- package/dist/docs/interfaces/GeyserParserConfig.html +6 -6
- package/dist/docs/interfaces/GeyserParserEvents.html +9 -9
- package/dist/docs/interfaces/GeyserParserStats.html +2 -2
- package/dist/docs/interfaces/GrpcCallOptions.html +2 -2
- package/dist/docs/interfaces/GrpcTransportConfig.html +6 -6
- package/dist/docs/interfaces/ImmutableOwnerExt.html +4 -0
- package/dist/docs/interfaces/InflationGovernor.html +2 -2
- package/dist/docs/interfaces/InflationRate.html +2 -2
- package/dist/docs/interfaces/InflationReward.html +2 -2
- package/dist/docs/interfaces/InterestBearingConfigExt.html +9 -0
- package/dist/docs/interfaces/LatencyProbeResult.html +2 -2
- package/dist/docs/interfaces/LogsNotification.html +2 -2
- package/dist/docs/interfaces/LogsSubParams.html +2 -2
- package/dist/docs/interfaces/MemoTransferExt.html +5 -0
- package/dist/docs/interfaces/MetadataPointerExt.html +6 -0
- package/dist/docs/interfaces/MintCloseAuthorityExt.html +5 -0
- package/dist/docs/interfaces/NonTransferableExt.html +4 -0
- package/dist/docs/interfaces/PaginationOpts.html +2 -2
- package/dist/docs/interfaces/ParsedAccountUpdate.html +16 -16
- package/dist/docs/interfaces/ParsedBlockMeta.html +2 -2
- package/dist/docs/interfaces/ParsedEntry.html +2 -2
- package/dist/docs/interfaces/ParsedInstruction.html +9 -9
- package/dist/docs/interfaces/ParsedSlotUpdate.html +3 -3
- package/dist/docs/interfaces/ParsedTransaction.html +19 -19
- package/dist/docs/interfaces/PerfSample.html +2 -2
- package/dist/docs/interfaces/PermanentDelegateExt.html +5 -0
- package/dist/docs/interfaces/ProgramAccount.html +2 -2
- package/dist/docs/interfaces/ProgramNotification.html +2 -2
- package/dist/docs/interfaces/ProgramSubParams.html +2 -2
- package/dist/docs/interfaces/RawAccountInfo.html +2 -2
- package/dist/docs/interfaces/RawBlockMeta.html +2 -2
- package/dist/docs/interfaces/RawBuffer.html +2 -2
- package/dist/docs/interfaces/RawCompiledInstruction.html +2 -2
- package/dist/docs/interfaces/RawEntry.html +2 -2
- package/dist/docs/interfaces/RawGeyserUpdate.html +2 -2
- package/dist/docs/interfaces/RawInnerInstruction.html +2 -2
- package/dist/docs/interfaces/RawSlotInfo.html +2 -2
- package/dist/docs/interfaces/RawTimestamp.html +2 -2
- package/dist/docs/interfaces/RawTokenBalance.html +2 -2
- package/dist/docs/interfaces/RawTransactionInfo.html +2 -2
- package/dist/docs/interfaces/RootNotification.html +2 -2
- package/dist/docs/interfaces/RootSubParams.html +1 -1
- package/dist/docs/interfaces/RpcContext.html +2 -2
- package/dist/docs/interfaces/RpcError.html +4 -4
- package/dist/docs/interfaces/RpcRequest.html +2 -2
- package/dist/docs/interfaces/RpcResponse.html +2 -2
- package/dist/docs/interfaces/SendTransactionOpts.html +6 -6
- package/dist/docs/interfaces/SignatureInfo.html +7 -7
- package/dist/docs/interfaces/SignatureNotification.html +2 -2
- package/dist/docs/interfaces/SignatureStatus.html +5 -5
- package/dist/docs/interfaces/SignatureSubParams.html +2 -2
- package/dist/docs/interfaces/SignaturesForAssetParams.html +2 -2
- package/dist/docs/interfaces/SimulateResult.html +2 -2
- package/dist/docs/interfaces/SimulateTransactionOpts.html +7 -7
- package/dist/docs/interfaces/SlotNotification.html +2 -2
- package/dist/docs/interfaces/SlotSubParams.html +1 -1
- package/dist/docs/interfaces/SortOpts.html +2 -2
- package/dist/docs/interfaces/StakeAuthorized.html +5 -0
- package/dist/docs/interfaces/StakeDelegation.html +9 -0
- package/dist/docs/interfaces/StakeLockup.html +9 -0
- package/dist/docs/interfaces/StakeMeta.html +6 -0
- package/dist/docs/interfaces/Supply.html +5 -5
- package/dist/docs/interfaces/SynapseClientConfig.html +9 -9
- package/dist/docs/interfaces/SynapseEndpoint.html +7 -7
- package/dist/docs/interfaces/TokenAccount.html +3 -3
- package/dist/docs/interfaces/TokenAccountsByOwnerResult.html +2 -2
- package/dist/docs/interfaces/TokenAmount.html +5 -5
- package/dist/docs/interfaces/TokenBalanceChange.html +2 -2
- package/dist/docs/interfaces/TransactionMeta.html +11 -11
- package/dist/docs/interfaces/TransferFeeAmount.html +5 -0
- package/dist/docs/interfaces/TransferFeeConfig.html +9 -0
- package/dist/docs/interfaces/TransportConfig.html +7 -7
- package/dist/docs/interfaces/UnknownExtension.html +6 -0
- package/dist/docs/interfaces/VoteAccount.html +9 -9
- package/dist/docs/interfaces/VoteAccountsResult.html +3 -3
- package/dist/docs/interfaces/WsConfig.html +6 -6
- package/dist/docs/media/CHANGELOG.md +32 -0
- package/dist/docs/modules.html +65 -2
- package/dist/docs/types/AccountFetchOpts.html +3 -0
- package/dist/docs/types/AccountFilter.html +1 -1
- package/dist/docs/types/Base58.html +1 -1
- package/dist/docs/types/Brand.html +1 -1
- package/dist/docs/types/Commitment.html +1 -1
- package/dist/docs/types/DasSortBy.html +1 -1
- package/dist/docs/types/DasSortDirection.html +1 -1
- package/dist/docs/types/DataSizeFilter.html +1 -1
- package/dist/docs/types/DecodedExtension.html +3 -0
- package/dist/docs/types/Encoding.html +1 -1
- package/dist/docs/types/Epoch.html +1 -1
- package/dist/docs/types/Lamports.html +1 -1
- package/dist/docs/types/LogsFilter.html +1 -1
- package/dist/docs/types/MemcmpFilter.html +1 -1
- package/dist/docs/types/NonceState.html +3 -0
- package/dist/docs/types/ParsedGeyserUpdate.html +1 -1
- package/dist/docs/types/Pubkey.html +1 -1
- package/dist/docs/types/RuntimeEnv.html +1 -1
- package/dist/docs/types/Signature.html +1 -1
- package/dist/docs/types/Slot.html +1 -1
- package/dist/docs/types/StakeAccountType.html +3 -0
- package/dist/docs/types/SubscriptionId.html +1 -1
- package/dist/docs/types/TokenAccountState.html +3 -0
- package/dist/docs/types/TransactionDetail.html +1 -1
- package/dist/docs/types/UnaryMethod.html +1 -1
- package/dist/docs/types/UnixTimestamp.html +1 -1
- package/dist/docs/types/WsNotification.html +1 -1
- package/dist/docs/variables/JUPITER_PROGRAMS.html +1 -1
- package/dist/docs/variables/KNOWN_PROGRAMS.html +1 -1
- package/dist/docs/variables/KNOWN_PROGRAMS_COUNT.html +1 -1
- package/dist/docs/variables/LOOKUP_TABLE_HEADER_SIZE.html +3 -0
- package/dist/docs/variables/LOOKUP_TABLE_PROGRAM_ID.html +3 -0
- package/dist/docs/variables/MARINADE_PROGRAMS.html +1 -1
- package/dist/docs/variables/MAX_MULTISIG_SIGNERS.html +3 -0
- package/dist/docs/variables/METAPLEX_PROGRAMS.html +1 -1
- package/dist/docs/variables/METEORA_PROGRAMS.html +1 -1
- package/dist/docs/variables/MINT_SIZE.html +3 -0
- package/dist/docs/variables/MULTISIG_SIZE.html +3 -0
- package/dist/docs/variables/NONCE_ACCOUNT_SIZE.html +3 -0
- package/dist/docs/variables/ORCA_PROGRAMS.html +1 -1
- package/dist/docs/variables/OTHER_PROGRAMS.html +1 -1
- package/dist/docs/variables/RAYDIUM_PROGRAMS.html +1 -1
- package/dist/docs/variables/SDK_USER_AGENT.html +1 -1
- package/dist/docs/variables/SPL_PROGRAMS.html +1 -1
- package/dist/docs/variables/STAKE_PROGRAM_ID.html +3 -0
- package/dist/docs/variables/SYNAPSE_DEVNET_EU.html +1 -1
- package/dist/docs/variables/SYNAPSE_DEVNET_US.html +1 -1
- package/dist/docs/variables/SYNAPSE_ENDPOINTS.html +1 -1
- package/dist/docs/variables/SYNAPSE_MAINNET_EU.html +1 -1
- package/dist/docs/variables/SYNAPSE_MAINNET_US.html +1 -1
- package/dist/docs/variables/SYSTEM_PROGRAMS.html +1 -1
- package/dist/docs/variables/SYSTEM_PROGRAM_ID.html +3 -0
- package/dist/docs/variables/TOKEN_2022_PROGRAM_ID.html +3 -0
- package/dist/docs/variables/TOKEN_ACCOUNT_SIZE.html +3 -0
- package/dist/docs/variables/TOKEN_PROGRAM_ID.html +3 -0
- package/dist/esm/accounts/helpers.d.ts +88 -0
- package/dist/esm/accounts/helpers.d.ts.map +1 -0
- package/dist/esm/accounts/helpers.js +112 -0
- package/dist/esm/accounts/helpers.js.map +1 -0
- package/dist/esm/accounts/index.d.ts +105 -0
- package/dist/esm/accounts/index.d.ts.map +1 -0
- package/dist/esm/accounts/index.js +124 -0
- package/dist/esm/accounts/index.js.map +1 -0
- package/dist/esm/accounts/lookup.d.ts +30 -0
- package/dist/esm/accounts/lookup.d.ts.map +1 -0
- package/dist/esm/accounts/lookup.js +28 -0
- package/dist/esm/accounts/lookup.js.map +1 -0
- package/dist/esm/accounts/nonce.d.ts +30 -0
- package/dist/esm/accounts/nonce.d.ts.map +1 -0
- package/dist/esm/accounts/nonce.js +28 -0
- package/dist/esm/accounts/nonce.js.map +1 -0
- package/dist/esm/accounts/stake.d.ts +33 -0
- package/dist/esm/accounts/stake.d.ts.map +1 -0
- package/dist/esm/accounts/stake.js +31 -0
- package/dist/esm/accounts/stake.js.map +1 -0
- package/dist/esm/accounts/token.d.ts +98 -0
- package/dist/esm/accounts/token.d.ts.map +1 -0
- package/dist/esm/accounts/token.js +121 -0
- package/dist/esm/accounts/token.js.map +1 -0
- package/dist/esm/ai/tools/zod/index.d.ts +1 -1
- package/dist/esm/ai/tools/zod/index.d.ts.map +1 -1
- package/dist/esm/ai/tools/zod/index.js +2 -2
- package/dist/esm/ai/tools/zod/index.js.map +1 -1
- package/dist/esm/ai/tools/zod/types.d.ts +2 -0
- package/dist/esm/ai/tools/zod/types.d.ts.map +1 -1
- package/dist/esm/ai/tools/zod/types.js.map +1 -1
- package/dist/esm/core/client.d.ts +25 -0
- package/dist/esm/core/client.d.ts.map +1 -1
- package/dist/esm/core/client.js +30 -0
- package/dist/esm/core/client.js.map +1 -1
- package/dist/esm/decoders/index.d.ts +36 -0
- package/dist/esm/decoders/index.d.ts.map +1 -0
- package/dist/esm/decoders/index.js +37 -0
- package/dist/esm/decoders/index.js.map +1 -0
- package/dist/esm/decoders/layout.d.ts +105 -0
- package/dist/esm/decoders/layout.d.ts.map +1 -0
- package/dist/esm/decoders/layout.js +183 -0
- package/dist/esm/decoders/layout.js.map +1 -0
- package/dist/esm/decoders/lookup-table.d.ts +60 -0
- package/dist/esm/decoders/lookup-table.d.ts.map +1 -0
- package/dist/esm/decoders/lookup-table.js +71 -0
- package/dist/esm/decoders/lookup-table.js.map +1 -0
- package/dist/esm/decoders/multisig.d.ts +49 -0
- package/dist/esm/decoders/multisig.d.ts.map +1 -0
- package/dist/esm/decoders/multisig.js +46 -0
- package/dist/esm/decoders/multisig.js.map +1 -0
- package/dist/esm/decoders/nonce.d.ts +54 -0
- package/dist/esm/decoders/nonce.d.ts.map +1 -0
- package/dist/esm/decoders/nonce.js +44 -0
- package/dist/esm/decoders/nonce.js.map +1 -0
- package/dist/esm/decoders/stake.d.ts +65 -0
- package/dist/esm/decoders/stake.d.ts.map +1 -0
- package/dist/esm/decoders/stake.js +82 -0
- package/dist/esm/decoders/stake.js.map +1 -0
- package/dist/esm/decoders/token-2022.d.ts +134 -0
- package/dist/esm/decoders/token-2022.d.ts.map +1 -0
- package/dist/esm/decoders/token-2022.js +155 -0
- package/dist/esm/decoders/token-2022.js.map +1 -0
- package/dist/esm/decoders/token.d.ts +87 -0
- package/dist/esm/decoders/token.d.ts.map +1 -0
- package/dist/esm/decoders/token.js +66 -0
- package/dist/esm/decoders/token.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +11 -1
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-2022.js","sourceRoot":"","sources":["../../../src/decoders/token-2022.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPL Token account and mint decoders.
|
|
3
|
+
*
|
|
4
|
+
* Decodes raw bytes from SPL Token program accounts into typed objects.
|
|
5
|
+
* Supports both Token Account (165 bytes) and Mint (82 bytes) layouts.
|
|
6
|
+
*
|
|
7
|
+
* @module decoders/token
|
|
8
|
+
* @since 1.1.0
|
|
9
|
+
*/
|
|
10
|
+
import type { Pubkey } from '../core/types';
|
|
11
|
+
/** SPL Token account state. @since 1.1.0 */
|
|
12
|
+
export type TokenAccountState = 'uninitialized' | 'initialized' | 'frozen';
|
|
13
|
+
/**
|
|
14
|
+
* Decoded SPL Token Account (165 bytes).
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const decoded = decodeTokenAccount(rawBytes);
|
|
19
|
+
* console.log(`Mint: ${decoded.mint}, Amount: ${decoded.amount}`);
|
|
20
|
+
* ```
|
|
21
|
+
* @since 1.1.0
|
|
22
|
+
*/
|
|
23
|
+
export interface DecodedTokenAccount {
|
|
24
|
+
/** Token mint address. */
|
|
25
|
+
mint: Pubkey;
|
|
26
|
+
/** Account owner (wallet). */
|
|
27
|
+
owner: Pubkey;
|
|
28
|
+
/** Token balance (raw, not UI-adjusted). */
|
|
29
|
+
amount: bigint;
|
|
30
|
+
/** Delegate address (if approved). */
|
|
31
|
+
delegate: Pubkey | null;
|
|
32
|
+
/** Account state. */
|
|
33
|
+
state: TokenAccountState;
|
|
34
|
+
/** Native SOL balance if this is a wrapped SOL account. */
|
|
35
|
+
isNative: bigint | null;
|
|
36
|
+
/** Amount delegated to the delegate. */
|
|
37
|
+
delegatedAmount: bigint;
|
|
38
|
+
/** Close authority (who can close this account). */
|
|
39
|
+
closeAuthority: Pubkey | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Decoded SPL Token Mint (82 bytes).
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const mint = decodeMint(rawBytes);
|
|
47
|
+
* console.log(`Supply: ${mint.supply}, Decimals: ${mint.decimals}`);
|
|
48
|
+
* ```
|
|
49
|
+
* @since 1.1.0
|
|
50
|
+
*/
|
|
51
|
+
export interface DecodedMint {
|
|
52
|
+
/** Mint authority (who can mint new tokens). `null` if fixed supply. */
|
|
53
|
+
mintAuthority: Pubkey | null;
|
|
54
|
+
/** Total token supply. */
|
|
55
|
+
supply: bigint;
|
|
56
|
+
/** Number of decimal places. */
|
|
57
|
+
decimals: number;
|
|
58
|
+
/** Whether the mint is initialized. */
|
|
59
|
+
isInitialized: boolean;
|
|
60
|
+
/** Freeze authority (who can freeze accounts). `null` if not freezable. */
|
|
61
|
+
freezeAuthority: Pubkey | null;
|
|
62
|
+
}
|
|
63
|
+
/** Expected size of an SPL Token Account. @since 1.1.0 */
|
|
64
|
+
export declare const TOKEN_ACCOUNT_SIZE = 165;
|
|
65
|
+
/** Expected size of an SPL Token Mint. @since 1.1.0 */
|
|
66
|
+
export declare const MINT_SIZE = 82;
|
|
67
|
+
/** SPL Token Program ID. @since 1.1.0 */
|
|
68
|
+
export declare const TOKEN_PROGRAM_ID = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
69
|
+
/**
|
|
70
|
+
* Decode raw bytes into a {@link DecodedTokenAccount}.
|
|
71
|
+
*
|
|
72
|
+
* @param data - Raw account data (must be >= 165 bytes).
|
|
73
|
+
* @returns Decoded token account.
|
|
74
|
+
* @throws {Error} If data is too short.
|
|
75
|
+
* @since 1.1.0
|
|
76
|
+
*/
|
|
77
|
+
export declare function decodeTokenAccount(data: Uint8Array): DecodedTokenAccount;
|
|
78
|
+
/**
|
|
79
|
+
* Decode raw bytes into a {@link DecodedMint}.
|
|
80
|
+
*
|
|
81
|
+
* @param data - Raw account data (must be >= 82 bytes).
|
|
82
|
+
* @returns Decoded mint.
|
|
83
|
+
* @throws {Error} If data is too short.
|
|
84
|
+
* @since 1.1.0
|
|
85
|
+
*/
|
|
86
|
+
export declare function decodeMint(data: Uint8Array): DecodedMint;
|
|
87
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/decoders/token.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,aAAa,GAAG,QAAQ,CAAC;AAQ3E;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qBAAqB;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAID,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,uDAAuD;AACvD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,gDAAgD,CAAC;AAI9E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAoBxE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAgBxD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPL Token account and mint decoders.
|
|
3
|
+
*
|
|
4
|
+
* Decodes raw bytes from SPL Token program accounts into typed objects.
|
|
5
|
+
* Supports both Token Account (165 bytes) and Mint (82 bytes) layouts.
|
|
6
|
+
*
|
|
7
|
+
* @module decoders/token
|
|
8
|
+
* @since 1.1.0
|
|
9
|
+
*/
|
|
10
|
+
import { AccountReader } from './layout.js';
|
|
11
|
+
const TOKEN_ACCOUNT_STATES = [
|
|
12
|
+
'uninitialized', 'initialized', 'frozen',
|
|
13
|
+
];
|
|
14
|
+
// ── Constants ──────────────────────────────────────────────────
|
|
15
|
+
/** Expected size of an SPL Token Account. @since 1.1.0 */
|
|
16
|
+
export const TOKEN_ACCOUNT_SIZE = 165;
|
|
17
|
+
/** Expected size of an SPL Token Mint. @since 1.1.0 */
|
|
18
|
+
export const MINT_SIZE = 82;
|
|
19
|
+
/** SPL Token Program ID. @since 1.1.0 */
|
|
20
|
+
export const TOKEN_PROGRAM_ID = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
|
|
21
|
+
// ── Decoder functions ──────────────────────────────────────────
|
|
22
|
+
/**
|
|
23
|
+
* Decode raw bytes into a {@link DecodedTokenAccount}.
|
|
24
|
+
*
|
|
25
|
+
* @param data - Raw account data (must be >= 165 bytes).
|
|
26
|
+
* @returns Decoded token account.
|
|
27
|
+
* @throws {Error} If data is too short.
|
|
28
|
+
* @since 1.1.0
|
|
29
|
+
*/
|
|
30
|
+
export function decodeTokenAccount(data) {
|
|
31
|
+
if (data.length < TOKEN_ACCOUNT_SIZE) {
|
|
32
|
+
throw new Error(`Token account data too short: expected >= ${TOKEN_ACCOUNT_SIZE} bytes, got ${data.length}`);
|
|
33
|
+
}
|
|
34
|
+
const r = new AccountReader(data);
|
|
35
|
+
const mint = r.pubkey(); // 32 bytes [0..32]
|
|
36
|
+
const owner = r.pubkey(); // 32 bytes [32..64]
|
|
37
|
+
const amount = r.u64(); // 8 bytes [64..72]
|
|
38
|
+
const delegate = r.coption(() => r.pubkey()); // 4+32=36 bytes [72..108]
|
|
39
|
+
const stateIdx = r.u8(); // 1 byte [108]
|
|
40
|
+
const state = TOKEN_ACCOUNT_STATES[stateIdx] ?? 'uninitialized';
|
|
41
|
+
const isNative = r.coption(() => r.u64()); // 4+8=12 bytes [109..121]
|
|
42
|
+
const delegatedAmount = r.u64(); // 8 bytes [121..129]
|
|
43
|
+
const closeAuthority = r.coption(() => r.pubkey()); // 4+32=36 bytes [129..165]
|
|
44
|
+
return { mint, owner, amount, delegate, state, isNative, delegatedAmount, closeAuthority };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Decode raw bytes into a {@link DecodedMint}.
|
|
48
|
+
*
|
|
49
|
+
* @param data - Raw account data (must be >= 82 bytes).
|
|
50
|
+
* @returns Decoded mint.
|
|
51
|
+
* @throws {Error} If data is too short.
|
|
52
|
+
* @since 1.1.0
|
|
53
|
+
*/
|
|
54
|
+
export function decodeMint(data) {
|
|
55
|
+
if (data.length < MINT_SIZE) {
|
|
56
|
+
throw new Error(`Mint data too short: expected >= ${MINT_SIZE} bytes, got ${data.length}`);
|
|
57
|
+
}
|
|
58
|
+
const r = new AccountReader(data);
|
|
59
|
+
const mintAuthority = r.coption(() => r.pubkey()); // 4+32=36 bytes [0..36]
|
|
60
|
+
const supply = r.u64(); // 8 bytes [36..44]
|
|
61
|
+
const decimals = r.u8(); // 1 byte [44]
|
|
62
|
+
const isInitialized = r.bool(); // 1 byte [45]
|
|
63
|
+
const freezeAuthority = r.coption(() => r.pubkey()); // 4+32=36 bytes [46..82]
|
|
64
|
+
return { mintAuthority, supply, decimals, isInitialized, freezeAuthority };
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/decoders/token.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,MAAM,oBAAoB,GAAiC;IACzD,eAAe,EAAE,aAAa,EAAE,QAAQ;CACzC,CAAC;AAwDF,kEAAkE;AAElE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,uDAAuD;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAE5B,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AAE9E,kEAAkE;AAElE;;;;;;;GAOG;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,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAe,oBAAoB;IAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAc,qBAAqB;IAC5D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAgB,qBAAqB;IAC5D,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,0BAA0B;IACxE,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAc,kBAAkB;IACxD,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC;IAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,2BAA2B;IACtE,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAO,uBAAuB;IAC9D,MAAM,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,2BAA2B;IAE/E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAC7F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,oCAAoC,SAAS,eAAe,IAAI,CAAC,MAAM,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,wBAAwB;IAC3E,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAA4B,yBAAyB;IAC5E,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAA2B,qBAAqB;IACxE,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAoB,qBAAqB;IACxE,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,yBAAyB;IAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAC7E,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export * from './das/index';
|
|
|
29
29
|
export * from './websocket/index';
|
|
30
30
|
export * from './utils/index';
|
|
31
31
|
export * from './kit/index';
|
|
32
|
+
export * from './decoders/index';
|
|
33
|
+
export * from './accounts/index';
|
|
32
34
|
import { SynapseClient, type SynapseClientConfig } from './core/client';
|
|
33
35
|
/**
|
|
34
36
|
* Convenience factory to create a {@link SynapseClient} instance.
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACxE;;;;;;;;;;;GAWG,CAAA,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAE3E;AAED,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACxE;;;;;;;;;;;GAWG,CAAA,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAE3E;AAED,eAAe,aAAa,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -37,6 +37,10 @@ export * from './websocket/index.js';
|
|
|
37
37
|
export * from './utils/index.js';
|
|
38
38
|
// ── @solana/kit bridge (native types, signers, RPC) ────────────
|
|
39
39
|
export * from './kit/index.js';
|
|
40
|
+
// ── Native account data decoders (zero-dep, DataView-based) ────
|
|
41
|
+
export * from './decoders/index.js';
|
|
42
|
+
// ── Typed account fetchers (RPC + decode in one call) ──────────
|
|
43
|
+
export * from './accounts/index.js';
|
|
40
44
|
// ── Convenience factory ────────────────────────────────────────
|
|
41
45
|
import { SynapseClient } from './core/client.js';
|
|
42
46
|
/**
|