@ghostspeak/sdk 2.0.6 → 2.0.7
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/README.md +152 -30
- package/dist/GhostSpeakClient-CWmGaM9Q.d.ts +1007 -0
- package/dist/StakingModule-C5rzuOWb.d.ts +2526 -0
- package/dist/{agent-M74TCRON.js → agent-5YLZ7DAC.js} +4 -4
- package/dist/{agent-M74TCRON.js.map → agent-5YLZ7DAC.js.map} +1 -1
- package/dist/batch-operations-45CQFEID.js +4 -0
- package/dist/batch-operations-45CQFEID.js.map +1 -0
- package/dist/browser.d.ts +45 -554
- package/dist/browser.js +15 -842
- package/dist/browser.js.map +1 -1
- package/dist/chunk-AL3HQN73.js +754 -0
- package/dist/chunk-AL3HQN73.js.map +1 -0
- package/dist/chunk-BF3IQ35I.js +284 -0
- package/dist/chunk-BF3IQ35I.js.map +1 -0
- package/dist/chunk-BQDGRTVP.js +168 -0
- package/dist/chunk-BQDGRTVP.js.map +1 -0
- package/dist/chunk-C5CDA3WX.js +7314 -0
- package/dist/chunk-C5CDA3WX.js.map +1 -0
- package/dist/chunk-E3FD2CNY.js +1869 -0
- package/dist/chunk-E3FD2CNY.js.map +1 -0
- package/dist/{chunk-F3DZMBUA.js → chunk-G7S6B6WB.js} +327 -493
- package/dist/chunk-G7S6B6WB.js.map +1 -0
- package/dist/chunk-IHVDQ4YI.js +4231 -0
- package/dist/chunk-IHVDQ4YI.js.map +1 -0
- package/dist/chunk-JV2SWONF.js +98 -0
- package/dist/chunk-JV2SWONF.js.map +1 -0
- package/dist/chunk-KB6CKIUK.js +231 -0
- package/dist/chunk-KB6CKIUK.js.map +1 -0
- package/dist/chunk-S74EH3KD.js +7890 -0
- package/dist/chunk-S74EH3KD.js.map +1 -0
- package/dist/chunk-SFTSZ3LC.js +156 -0
- package/dist/chunk-SFTSZ3LC.js.map +1 -0
- package/dist/chunk-SKMJJ3Q6.js +125 -0
- package/dist/chunk-SKMJJ3Q6.js.map +1 -0
- package/dist/chunk-SZGFSCNU.js +3682 -0
- package/dist/chunk-SZGFSCNU.js.map +1 -0
- package/dist/chunk-TTB4OS2D.js +69 -0
- package/dist/chunk-TTB4OS2D.js.map +1 -0
- package/dist/chunk-UP2VWCW5.js +33 -0
- package/dist/{chunk-NSBPE2FW.js.map → chunk-UP2VWCW5.js.map} +1 -1
- package/dist/{chunk-UJUGGLMT.js → chunk-VQZQCHUT.js} +5 -5
- package/dist/{chunk-UJUGGLMT.js.map → chunk-VQZQCHUT.js.map} +1 -1
- package/dist/client.d.ts +5 -4
- package/dist/client.js +11 -10
- package/dist/createAgentAuthorization-ULG47ZJI.js +5 -0
- package/dist/createAgentAuthorization-ULG47ZJI.js.map +1 -0
- package/dist/credentials.js +1 -1
- package/dist/crypto.js +2 -2
- package/dist/errors.js +1 -1
- package/dist/feature-flags-B1g0DCPe.d.ts +1181 -0
- package/dist/generated-EG5USUFG.js +9 -0
- package/dist/{generated-VNLHMR6Y.js.map → generated-EG5USUFG.js.map} +1 -1
- package/dist/{ghostspeak_wasm-SB2RPJ3D.js → ghostspeak_wasm-F227HOSM.js} +3 -3
- package/dist/{ghostspeak_wasm-SB2RPJ3D.js.map → ghostspeak_wasm-F227HOSM.js.map} +1 -1
- package/dist/index.d.ts +1209 -1506
- package/dist/index.js +600 -3532
- package/dist/index.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/minimal/core-minimal.d.ts +2383 -1264
- package/dist/minimal/core-minimal.js +9 -9
- package/dist/minimal/core-minimal.js.map +1 -1
- package/dist/nacl-fast-W5BJ3KZ2.js +2229 -0
- package/dist/nacl-fast-W5BJ3KZ2.js.map +1 -0
- package/dist/pda-4KP7CURF.js +4 -0
- package/dist/pda-4KP7CURF.js.map +1 -0
- package/dist/pda-Ce7VYg4T.d.ts +25 -0
- package/dist/reputation-types-Yebf0Rm_.d.ts +1071 -0
- package/dist/revokeAuthorization-OK7E7OK3.js +5 -0
- package/dist/revokeAuthorization-OK7E7OK3.js.map +1 -0
- package/dist/signature-verification-DGxR4aYQ.d.ts +448 -0
- package/dist/types.js +1 -1
- package/dist/updateReputationWithAuth-Y4ONEVSP.js +5 -0
- package/dist/updateReputationWithAuth-Y4ONEVSP.js.map +1 -0
- package/dist/utils.d.ts +69 -203
- package/dist/utils.js +15 -153
- package/dist/utils.js.map +1 -1
- package/package.json +24 -31
- package/dist/.tsbuildinfo +0 -1
- package/dist/GhostSpeakClient-D_66Uzsf.d.ts +0 -707
- package/dist/GovernanceModule-DQYYys-H.d.ts +0 -1766
- package/dist/chunk-APCKGD23.js +0 -1328
- package/dist/chunk-APCKGD23.js.map +0 -1
- package/dist/chunk-ASQXX4IT.js +0 -572
- package/dist/chunk-ASQXX4IT.js.map +0 -1
- package/dist/chunk-COGZFWOT.js +0 -19657
- package/dist/chunk-COGZFWOT.js.map +0 -1
- package/dist/chunk-F3DZMBUA.js.map +0 -1
- package/dist/chunk-GMHIUK2R.js +0 -7526
- package/dist/chunk-GMHIUK2R.js.map +0 -1
- package/dist/chunk-IAWBZYPE.js +0 -356
- package/dist/chunk-IAWBZYPE.js.map +0 -1
- package/dist/chunk-NSBPE2FW.js +0 -15
- package/dist/chunk-OWYHJG6H.js +0 -13311
- package/dist/chunk-OWYHJG6H.js.map +0 -1
- package/dist/chunk-RDDPOFR5.js +0 -3
- package/dist/chunk-RDDPOFR5.js.map +0 -1
- package/dist/chunk-RERCHKZP.js +0 -35
- package/dist/chunk-RERCHKZP.js.map +0 -1
- package/dist/chunk-TVVGXYCI.js +0 -2887
- package/dist/chunk-TVVGXYCI.js.map +0 -1
- package/dist/chunk-ZGP5552B.js +0 -377
- package/dist/chunk-ZGP5552B.js.map +0 -1
- package/dist/chunk-ZWOYNHVK.js +0 -196
- package/dist/chunk-ZWOYNHVK.js.map +0 -1
- package/dist/dist/.tsbuildinfo +0 -1
- package/dist/elgamal-VZLWB3XK.js +0 -5
- package/dist/elgamal-VZLWB3XK.js.map +0 -1
- package/dist/feature-flags-V722ZuXO.d.ts +0 -3512
- package/dist/generated-VNLHMR6Y.js +0 -5
- package/dist/ipfs-types-BOt9ZNg4.d.ts +0 -592
- package/dist/multisigConfig-BzEhy6jy.d.ts +0 -58
- package/dist/pda-B_nS8SbD.d.ts +0 -114
- package/dist/pda-S4BFJVGE.js +0 -4
- package/dist/pda-S4BFJVGE.js.map +0 -1
- package/dist/system-addresses-BFNLEbFx.d.ts +0 -857
- package/dist/token-2022-rpc-RALH4RK7.js +0 -593
- package/dist/token-2022-rpc-RALH4RK7.js.map +0 -1
package/dist/chunk-RDDPOFR5.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-RDDPOFR5.js","sourcesContent":[]}
|
package/dist/chunk-RERCHKZP.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
// src/types/rpc-client-types.ts
|
|
2
|
-
function createTypedRpcClient(rpc) {
|
|
3
|
-
return rpc;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
// src/types/token-2022-types.ts
|
|
7
|
-
var ExtensionType = /* @__PURE__ */ ((ExtensionType2) => {
|
|
8
|
-
ExtensionType2[ExtensionType2["Uninitialized"] = 0] = "Uninitialized";
|
|
9
|
-
ExtensionType2[ExtensionType2["TransferFeeConfig"] = 1] = "TransferFeeConfig";
|
|
10
|
-
ExtensionType2[ExtensionType2["TransferFeeAmount"] = 2] = "TransferFeeAmount";
|
|
11
|
-
ExtensionType2[ExtensionType2["MintCloseAuthority"] = 3] = "MintCloseAuthority";
|
|
12
|
-
ExtensionType2[ExtensionType2["ConfidentialTransferMint"] = 4] = "ConfidentialTransferMint";
|
|
13
|
-
ExtensionType2[ExtensionType2["ConfidentialTransferAccount"] = 5] = "ConfidentialTransferAccount";
|
|
14
|
-
ExtensionType2[ExtensionType2["DefaultAccountState"] = 6] = "DefaultAccountState";
|
|
15
|
-
ExtensionType2[ExtensionType2["ImmutableOwner"] = 7] = "ImmutableOwner";
|
|
16
|
-
ExtensionType2[ExtensionType2["MemoTransfer"] = 8] = "MemoTransfer";
|
|
17
|
-
ExtensionType2[ExtensionType2["NonTransferable"] = 9] = "NonTransferable";
|
|
18
|
-
ExtensionType2[ExtensionType2["InterestBearingConfig"] = 10] = "InterestBearingConfig";
|
|
19
|
-
ExtensionType2[ExtensionType2["CpiGuard"] = 11] = "CpiGuard";
|
|
20
|
-
ExtensionType2[ExtensionType2["PermanentDelegate"] = 12] = "PermanentDelegate";
|
|
21
|
-
ExtensionType2[ExtensionType2["NonTransferableAccount"] = 13] = "NonTransferableAccount";
|
|
22
|
-
ExtensionType2[ExtensionType2["TransferHook"] = 14] = "TransferHook";
|
|
23
|
-
ExtensionType2[ExtensionType2["TransferHookAccount"] = 15] = "TransferHookAccount";
|
|
24
|
-
ExtensionType2[ExtensionType2["MetadataPointer"] = 16] = "MetadataPointer";
|
|
25
|
-
ExtensionType2[ExtensionType2["TokenMetadata"] = 17] = "TokenMetadata";
|
|
26
|
-
ExtensionType2[ExtensionType2["GroupPointer"] = 18] = "GroupPointer";
|
|
27
|
-
ExtensionType2[ExtensionType2["GroupMemberPointer"] = 19] = "GroupMemberPointer";
|
|
28
|
-
ExtensionType2[ExtensionType2["TokenGroup"] = 20] = "TokenGroup";
|
|
29
|
-
ExtensionType2[ExtensionType2["TokenGroupMember"] = 21] = "TokenGroupMember";
|
|
30
|
-
return ExtensionType2;
|
|
31
|
-
})(ExtensionType || {});
|
|
32
|
-
|
|
33
|
-
export { ExtensionType, createTypedRpcClient };
|
|
34
|
-
//# sourceMappingURL=chunk-RERCHKZP.js.map
|
|
35
|
-
//# sourceMappingURL=chunk-RERCHKZP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/rpc-client-types.ts","../src/types/token-2022-types.ts"],"names":["ExtensionType"],"mappings":";AAoHO,SAAS,qBAAqB,GAAA,EAA8B;AACjE,EAAA,OAAO,GAAA;AACT;;;ACmLO,IAAK,aAAA,qBAAAA,cAAAA,KAAL;AACL,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,mBAAgB,CAAA,CAAA,GAAhB,eAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,uBAAoB,CAAA,CAAA,GAApB,mBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,uBAAoB,CAAA,CAAA,GAApB,mBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,wBAAqB,CAAA,CAAA,GAArB,oBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,8BAA2B,CAAA,CAAA,GAA3B,0BAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,iCAA8B,CAAA,CAAA,GAA9B,6BAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,yBAAsB,CAAA,CAAA,GAAtB,qBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,oBAAiB,CAAA,CAAA,GAAjB,gBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,kBAAe,CAAA,CAAA,GAAf,cAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,qBAAkB,CAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,2BAAwB,EAAA,CAAA,GAAxB,uBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,cAAW,EAAA,CAAA,GAAX,UAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,uBAAoB,EAAA,CAAA,GAApB,mBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,4BAAyB,EAAA,CAAA,GAAzB,wBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,kBAAe,EAAA,CAAA,GAAf,cAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,yBAAsB,EAAA,CAAA,GAAtB,qBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,qBAAkB,EAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,mBAAgB,EAAA,CAAA,GAAhB,eAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,kBAAe,EAAA,CAAA,GAAf,cAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,wBAAqB,EAAA,CAAA,GAArB,oBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,gBAAa,EAAA,CAAA,GAAb,YAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,sBAAmB,EAAA,CAAA,GAAnB,kBAAA;AAtBU,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA","file":"chunk-RERCHKZP.js","sourcesContent":["/**\n * RPC Client Types for Solana Web3.js v2\n * \n * Typed RPC client interfaces for use throughout the SDK\n */\n\nimport type { Address } from '@solana/addresses'\nimport type { Commitment } from './rpc-types.js'\n\n/**\n * Account info returned by RPC\n */\nexport interface RpcAccountInfo {\n data: [string, string] | string | Buffer | Uint8Array\n executable: boolean\n lamports: number | bigint\n owner: Address | string\n rentEpoch?: number | bigint\n space?: number | bigint\n}\n\n/**\n * RPC response wrapper\n */\nexport interface RpcResponseWrapper<T> {\n value: T\n}\n\n/**\n * Get account info options\n */\nexport interface GetAccountInfoOptions {\n commitment?: Commitment\n encoding?: 'base64' | 'base58' | 'jsonParsed'\n dataSlice?: {\n offset: number\n length: number\n }\n}\n\n/**\n * Get multiple accounts options\n */\nexport interface GetMultipleAccountsOptions {\n commitment?: Commitment\n encoding?: 'base64' | 'base58' | 'jsonParsed'\n dataSlice?: {\n offset: number\n length: number\n }\n}\n\n/**\n * Get program accounts options\n */\nexport interface GetProgramAccountsOptions {\n commitment?: Commitment\n encoding?: 'base64' | 'base58' | 'jsonParsed'\n dataSlice?: {\n offset: number\n length: number\n }\n filters?: {\n dataSize?: number\n memcmp?: {\n offset: number\n bytes: string | Uint8Array\n }\n }[]\n}\n\n/**\n * Program account info\n */\nexport interface RpcProgramAccount {\n pubkey: Address\n account: RpcAccountInfo\n}\n\n/**\n * Typed RPC client interface\n */\nexport interface TypedRpcClient {\n getAccountInfo(\n address: Address,\n options?: GetAccountInfoOptions\n ): Promise<RpcResponseWrapper<RpcAccountInfo | null>>\n\n getMultipleAccounts(\n addresses: Address[],\n options?: GetMultipleAccountsOptions\n ): Promise<RpcResponseWrapper<(RpcAccountInfo | null)[]>>\n\n getProgramAccounts(\n programId: Address,\n options?: GetProgramAccountsOptions\n ): Promise<RpcResponseWrapper<RpcProgramAccount[]>>\n\n getLatestBlockhash(\n options?: { commitment?: Commitment }\n ): Promise<{\n blockhash: string\n lastValidBlockHeight: number\n }>\n\n sendTransaction(\n transaction: unknown,\n options?: unknown\n ): Promise<string>\n\n getProgramAddress(): Address\n}\n\n/**\n * Create a typed RPC client from an untyped one\n */\nexport function createTypedRpcClient(rpc: unknown): TypedRpcClient {\n return rpc as TypedRpcClient\n}","/**\n * Token-2022 Extension Types\n * \n * Comprehensive type definitions for all Token-2022 extensions\n * Based on SPL Token-2022 specification\n */\n\nimport type { Address } from '@solana/addresses'\n\n// =====================================================\n// MINT EXTENSIONS\n// =====================================================\n\n/**\n * Transfer fee configuration for a mint\n */\nexport interface TransferFeeConfig {\n /** Transfer fee authority */\n transferFeeConfigAuthority: Address | null\n /** Withdraw withheld authority */\n withdrawWithheldAuthority: Address | null\n /** Withheld amount */\n withheldAmount: bigint\n /** Older transfer fee */\n olderTransferFee: TransferFee\n /** Newer transfer fee */\n newerTransferFee: TransferFee\n}\n\n/**\n * Transfer fee structure\n */\nexport interface TransferFee {\n /** Epoch when fee takes effect */\n epoch: bigint\n /** Maximum fee in token base units */\n maximumFee: bigint\n /** Fee in basis points */\n transferFeeBasisPoints: number\n}\n\n/**\n * Interest-bearing mint configuration\n */\nexport interface InterestBearingConfig {\n /** Rate authority */\n rateAuthority: Address | null\n /** Initialization timestamp */\n initializationTimestamp: bigint\n /** Pre-update average rate */\n preUpdateAverageRate: number\n /** Last update timestamp */\n lastUpdateTimestamp: bigint\n /** Current rate in basis points */\n currentRate: number\n}\n\n/**\n * Mint close authority configuration\n */\nexport interface MintCloseAuthority {\n /** Authority that can close the mint */\n closeAuthority: Address | null\n}\n\n/**\n * Permanent delegate configuration\n */\nexport interface PermanentDelegate {\n /** Permanent delegate address */\n delegate: Address | null\n}\n\n/**\n * Default account state configuration\n */\nexport interface DefaultAccountState {\n /** Default state for new accounts */\n state: AccountState\n}\n\n/**\n * Account state enum\n */\nexport enum AccountState {\n Uninitialized = 0,\n Initialized = 1,\n Frozen = 2\n}\n\n/**\n * Transfer hook configuration\n */\nexport interface TransferHook {\n /** Authority that can update the transfer hook program */\n authority: Address | null\n /** Transfer hook program ID */\n programId: Address | null\n}\n\n/**\n * Metadata pointer configuration\n */\nexport interface MetadataPointer {\n /** Authority that can update the metadata pointer */\n authority: Address | null\n /** Address where metadata is stored */\n metadataAddress: Address | null\n}\n\n/**\n * Group pointer configuration\n */\nexport interface GroupPointer {\n /** Authority that can update the group pointer */\n authority: Address | null\n /** Group address */\n groupAddress: Address | null\n}\n\n/**\n * Group member pointer configuration\n */\nexport interface GroupMemberPointer {\n /** Authority that can update the group member pointer */\n authority: Address | null\n /** Member address */\n memberAddress: Address | null\n}\n\n/**\n * Confidential transfer mint configuration\n */\nexport interface ConfidentialTransferMint {\n /** Authority that can modify the configuration */\n authority: Address | null\n /** Auto-approve new accounts */\n autoApproveNewAccounts: boolean\n /** Optional auditor ElGamal public key */\n auditorElgamalPubkey: Uint8Array | null\n}\n\n/**\n * Transfer fee amount extension (for accounts)\n */\nexport interface TransferFeeAmount {\n /** Withheld amount */\n withheldAmount: bigint\n}\n\n// =====================================================\n// ACCOUNT EXTENSIONS\n// =====================================================\n\n/**\n * Immutable owner configuration\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ImmutableOwner {\n // No additional data - presence indicates immutable owner\n}\n\n/**\n * Non-transferable configuration\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface NonTransferable {\n // No additional data - presence indicates non-transferable\n}\n\n/**\n * Memo required on transfer configuration\n */\nexport interface MemoTransfer {\n /** Whether memo is required for incoming transfers */\n requireIncomingTransferMemos: boolean\n}\n\n/**\n * CPI guard configuration\n */\nexport interface CpiGuard {\n /** Lock that prevents CPI re-entrancy */\n lockCpi: boolean\n}\n\n/**\n * Confidential transfer account configuration\n */\nexport interface ConfidentialTransferAccount {\n /** Account is approved for confidential transfers */\n approved: boolean\n /** ElGamal public key */\n elgamalPubkey: Uint8Array\n /** Pending balance (low 48 bits) */\n pendingBalanceLo: Uint8Array\n /** Pending balance (high 16 bits) */\n pendingBalanceHi: Uint8Array\n /** Available balance (low 48 bits) */\n availableBalanceLo: Uint8Array\n /** Available balance (high 16 bits) */\n availableBalanceHi: Uint8Array\n /** Decryptable available balance */\n decryptableAvailableBalance: bigint\n /** Allow confidential credits */\n allowConfidentialCredits: boolean\n /** Allow non-confidential credits */\n allowNonConfidentialCredits: boolean\n /** Pending balance credit counter (low 48 bits) */\n pendingBalanceCreditCounterLo: bigint\n /** Pending balance credit counter (high 16 bits) */\n pendingBalanceCreditCounterHi: bigint\n /** Maximum pending balance credit counter */\n maximumPendingBalanceCreditCounter: bigint\n /** Expected pending balance credit counter */\n expectedPendingBalanceCreditCounter: bigint\n /** Actual pending balance credit counter */\n actualPendingBalanceCreditCounter: bigint\n}\n\n/**\n * Transfer hook account configuration\n */\nexport interface TransferHookAccount {\n /** Whether transfer hook is active */\n transferring: boolean\n}\n\n// =====================================================\n// TOKEN METADATA\n// =====================================================\n\n/**\n * Token metadata structure\n */\nexport interface TokenMetadata {\n /** The authority that can update the metadata */\n updateAuthority: Address | null\n /** The mint address */\n mint: Address\n /** Token name */\n name: string\n /** Token symbol */\n symbol: string\n /** Token URI for off-chain metadata */\n uri: string\n /** Additional metadata fields */\n additionalMetadata: AdditionalMetadata[]\n}\n\n/**\n * Additional metadata field\n */\nexport interface AdditionalMetadata {\n /** Field key */\n key: string\n /** Field value */\n value: string\n}\n\n// =====================================================\n// GROUP EXTENSIONS\n// =====================================================\n\n/**\n * Token group configuration\n */\nexport interface TokenGroup {\n /** The authority that can update the group */\n updateAuthority: Address | null\n /** The mint address of the group */\n mint: Address\n /** Current group size */\n size: bigint\n /** Maximum group size */\n maxSize: bigint\n}\n\n/**\n * Token group member configuration\n */\nexport interface TokenGroupMember {\n /** The mint address of the member */\n mint: Address\n /** The group this member belongs to */\n group: Address\n /** Member number within the group */\n memberNumber: bigint\n}\n\n// =====================================================\n// EXTENSION TYPE ENUM\n// =====================================================\n\n/**\n * All possible Token-2022 extensions\n */\nexport enum ExtensionType {\n Uninitialized = 0,\n TransferFeeConfig = 1,\n TransferFeeAmount = 2,\n MintCloseAuthority = 3,\n ConfidentialTransferMint = 4,\n ConfidentialTransferAccount = 5,\n DefaultAccountState = 6,\n ImmutableOwner = 7,\n MemoTransfer = 8,\n NonTransferable = 9,\n InterestBearingConfig = 10,\n CpiGuard = 11,\n PermanentDelegate = 12,\n NonTransferableAccount = 13,\n TransferHook = 14,\n TransferHookAccount = 15,\n MetadataPointer = 16,\n TokenMetadata = 17,\n GroupPointer = 18,\n GroupMemberPointer = 19,\n TokenGroup = 20,\n TokenGroupMember = 21\n}\n\n// =====================================================\n// COMPOSITE TYPES\n// =====================================================\n\n/**\n * All mint extensions mapped by type\n */\nexport interface MintExtensions {\n transferFeeConfig?: TransferFeeConfig\n transferFeeAmount?: TransferFeeAmount\n mintCloseAuthority?: MintCloseAuthority\n confidentialTransferMint?: ConfidentialTransferMint\n defaultAccountState?: DefaultAccountState\n nonTransferable?: NonTransferable\n interestBearingConfig?: InterestBearingConfig\n permanentDelegate?: PermanentDelegate\n transferHook?: TransferHook\n metadataPointer?: MetadataPointer\n tokenMetadata?: TokenMetadata\n groupPointer?: GroupPointer\n tokenGroup?: TokenGroup\n}\n\n/**\n * All account extensions mapped by type\n */\nexport interface AccountExtensions {\n transferFeeAmount?: TransferFeeAmount\n confidentialTransferAccount?: ConfidentialTransferAccount\n immutableOwner?: ImmutableOwner\n memoTransfer?: MemoTransfer\n nonTransferableAccount?: NonTransferable\n cpiGuard?: CpiGuard\n transferHookAccount?: TransferHookAccount\n groupMemberPointer?: GroupMemberPointer\n tokenGroupMember?: TokenGroupMember\n}\n\n/**\n * Combined mint account data with extensions\n */\nexport interface MintWithExtensions {\n /** Basic mint data */\n address: Address\n mintAuthority: Address | null\n supply: bigint\n decimals: number\n isInitialized: boolean\n freezeAuthority: Address | null\n /** Extensions */\n extensions: MintExtensions\n}\n\n/**\n * Combined token account data with extensions\n */\nexport interface TokenAccountWithExtensions {\n /** Basic account data */\n address: Address\n mint: Address\n owner: Address\n amount: bigint\n delegate: Address | null\n state: AccountState\n isNative: boolean\n delegatedAmount: bigint\n closeAuthority: Address | null\n /** Extensions */\n extensions: AccountExtensions\n}\n\n// =====================================================\n// RPC TYPES\n// =====================================================\n\n/**\n * Parsed mint account data from RPC\n */\nexport interface ParsedMintAccount {\n type: 'mint'\n info: {\n mintAuthority: string | null\n supply: string\n decimals: number\n isInitialized: boolean\n freezeAuthority: string | null\n extensions?: {\n extension: string\n state: Record<string, unknown>\n }[]\n }\n}\n\n/**\n * Parsed token account data from RPC\n */\nexport interface ParsedTokenAccount {\n type: 'account'\n info: {\n mint: string\n owner: string\n tokenAmount: {\n amount: string\n decimals: number\n uiAmount: number | null\n uiAmountString: string\n }\n delegate?: string\n state: string\n isNative: boolean\n rentExemptReserve?: string\n delegatedAmount?: {\n amount: string\n decimals: number\n uiAmount: number | null\n uiAmountString: string\n }\n closeAuthority?: string\n extensions?: {\n extension: string\n state: Record<string, unknown>\n }[]\n }\n}\n\n// =====================================================\n// UTILITY TYPES\n// =====================================================\n\n/**\n * Extension data with discriminator\n */\nexport interface Extension<T> {\n /** Extension type discriminator */\n extensionType: ExtensionType\n /** Extension data */\n data: T\n}\n\n/**\n * TLV (Type-Length-Value) structure for extensions\n */\nexport interface ExtensionTLV {\n /** Extension type (2 bytes) */\n extensionType: ExtensionType\n /** Data length (2 bytes) */\n length: number\n /** Extension data (variable length) */\n data: Uint8Array\n}\n\n/**\n * Result of parsing extensions\n */\nexport interface ParsedExtensions {\n /** All extensions found */\n extensions: ExtensionTLV[]\n /** Remaining data after extensions */\n remainingData: Uint8Array\n}\n\n/**\n * Token-2022 program configuration\n */\nexport interface Token2022Config {\n /** Program ID (default: TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb) */\n programId: Address\n /** Maximum transfer fee basis points (10,000 = 100%) */\n maxTransferFeeBasisPoints: number\n /** Maximum interest rate basis points */\n maxInterestRateBasisPoints: number\n}"]}
|