@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.
Files changed (117) hide show
  1. package/README.md +152 -30
  2. package/dist/GhostSpeakClient-CWmGaM9Q.d.ts +1007 -0
  3. package/dist/StakingModule-C5rzuOWb.d.ts +2526 -0
  4. package/dist/{agent-M74TCRON.js → agent-5YLZ7DAC.js} +4 -4
  5. package/dist/{agent-M74TCRON.js.map → agent-5YLZ7DAC.js.map} +1 -1
  6. package/dist/batch-operations-45CQFEID.js +4 -0
  7. package/dist/batch-operations-45CQFEID.js.map +1 -0
  8. package/dist/browser.d.ts +45 -554
  9. package/dist/browser.js +15 -842
  10. package/dist/browser.js.map +1 -1
  11. package/dist/chunk-AL3HQN73.js +754 -0
  12. package/dist/chunk-AL3HQN73.js.map +1 -0
  13. package/dist/chunk-BF3IQ35I.js +284 -0
  14. package/dist/chunk-BF3IQ35I.js.map +1 -0
  15. package/dist/chunk-BQDGRTVP.js +168 -0
  16. package/dist/chunk-BQDGRTVP.js.map +1 -0
  17. package/dist/chunk-C5CDA3WX.js +7314 -0
  18. package/dist/chunk-C5CDA3WX.js.map +1 -0
  19. package/dist/chunk-E3FD2CNY.js +1869 -0
  20. package/dist/chunk-E3FD2CNY.js.map +1 -0
  21. package/dist/{chunk-F3DZMBUA.js → chunk-G7S6B6WB.js} +327 -493
  22. package/dist/chunk-G7S6B6WB.js.map +1 -0
  23. package/dist/chunk-IHVDQ4YI.js +4231 -0
  24. package/dist/chunk-IHVDQ4YI.js.map +1 -0
  25. package/dist/chunk-JV2SWONF.js +98 -0
  26. package/dist/chunk-JV2SWONF.js.map +1 -0
  27. package/dist/chunk-KB6CKIUK.js +231 -0
  28. package/dist/chunk-KB6CKIUK.js.map +1 -0
  29. package/dist/chunk-S74EH3KD.js +7890 -0
  30. package/dist/chunk-S74EH3KD.js.map +1 -0
  31. package/dist/chunk-SFTSZ3LC.js +156 -0
  32. package/dist/chunk-SFTSZ3LC.js.map +1 -0
  33. package/dist/chunk-SKMJJ3Q6.js +125 -0
  34. package/dist/chunk-SKMJJ3Q6.js.map +1 -0
  35. package/dist/chunk-SZGFSCNU.js +3682 -0
  36. package/dist/chunk-SZGFSCNU.js.map +1 -0
  37. package/dist/chunk-TTB4OS2D.js +69 -0
  38. package/dist/chunk-TTB4OS2D.js.map +1 -0
  39. package/dist/chunk-UP2VWCW5.js +33 -0
  40. package/dist/{chunk-NSBPE2FW.js.map → chunk-UP2VWCW5.js.map} +1 -1
  41. package/dist/{chunk-UJUGGLMT.js → chunk-VQZQCHUT.js} +5 -5
  42. package/dist/{chunk-UJUGGLMT.js.map → chunk-VQZQCHUT.js.map} +1 -1
  43. package/dist/client.d.ts +5 -4
  44. package/dist/client.js +11 -10
  45. package/dist/createAgentAuthorization-ULG47ZJI.js +5 -0
  46. package/dist/createAgentAuthorization-ULG47ZJI.js.map +1 -0
  47. package/dist/credentials.js +1 -1
  48. package/dist/crypto.js +2 -2
  49. package/dist/errors.js +1 -1
  50. package/dist/feature-flags-B1g0DCPe.d.ts +1181 -0
  51. package/dist/generated-EG5USUFG.js +9 -0
  52. package/dist/{generated-VNLHMR6Y.js.map → generated-EG5USUFG.js.map} +1 -1
  53. package/dist/{ghostspeak_wasm-SB2RPJ3D.js → ghostspeak_wasm-F227HOSM.js} +3 -3
  54. package/dist/{ghostspeak_wasm-SB2RPJ3D.js.map → ghostspeak_wasm-F227HOSM.js.map} +1 -1
  55. package/dist/index.d.ts +1209 -1506
  56. package/dist/index.js +600 -3532
  57. package/dist/index.js.map +1 -1
  58. package/dist/metafile-esm.json +1 -1
  59. package/dist/minimal/core-minimal.d.ts +2383 -1264
  60. package/dist/minimal/core-minimal.js +9 -9
  61. package/dist/minimal/core-minimal.js.map +1 -1
  62. package/dist/nacl-fast-W5BJ3KZ2.js +2229 -0
  63. package/dist/nacl-fast-W5BJ3KZ2.js.map +1 -0
  64. package/dist/pda-4KP7CURF.js +4 -0
  65. package/dist/pda-4KP7CURF.js.map +1 -0
  66. package/dist/pda-Ce7VYg4T.d.ts +25 -0
  67. package/dist/reputation-types-Yebf0Rm_.d.ts +1071 -0
  68. package/dist/revokeAuthorization-OK7E7OK3.js +5 -0
  69. package/dist/revokeAuthorization-OK7E7OK3.js.map +1 -0
  70. package/dist/signature-verification-DGxR4aYQ.d.ts +448 -0
  71. package/dist/types.js +1 -1
  72. package/dist/updateReputationWithAuth-Y4ONEVSP.js +5 -0
  73. package/dist/updateReputationWithAuth-Y4ONEVSP.js.map +1 -0
  74. package/dist/utils.d.ts +69 -203
  75. package/dist/utils.js +15 -153
  76. package/dist/utils.js.map +1 -1
  77. package/package.json +24 -31
  78. package/dist/.tsbuildinfo +0 -1
  79. package/dist/GhostSpeakClient-D_66Uzsf.d.ts +0 -707
  80. package/dist/GovernanceModule-DQYYys-H.d.ts +0 -1766
  81. package/dist/chunk-APCKGD23.js +0 -1328
  82. package/dist/chunk-APCKGD23.js.map +0 -1
  83. package/dist/chunk-ASQXX4IT.js +0 -572
  84. package/dist/chunk-ASQXX4IT.js.map +0 -1
  85. package/dist/chunk-COGZFWOT.js +0 -19657
  86. package/dist/chunk-COGZFWOT.js.map +0 -1
  87. package/dist/chunk-F3DZMBUA.js.map +0 -1
  88. package/dist/chunk-GMHIUK2R.js +0 -7526
  89. package/dist/chunk-GMHIUK2R.js.map +0 -1
  90. package/dist/chunk-IAWBZYPE.js +0 -356
  91. package/dist/chunk-IAWBZYPE.js.map +0 -1
  92. package/dist/chunk-NSBPE2FW.js +0 -15
  93. package/dist/chunk-OWYHJG6H.js +0 -13311
  94. package/dist/chunk-OWYHJG6H.js.map +0 -1
  95. package/dist/chunk-RDDPOFR5.js +0 -3
  96. package/dist/chunk-RDDPOFR5.js.map +0 -1
  97. package/dist/chunk-RERCHKZP.js +0 -35
  98. package/dist/chunk-RERCHKZP.js.map +0 -1
  99. package/dist/chunk-TVVGXYCI.js +0 -2887
  100. package/dist/chunk-TVVGXYCI.js.map +0 -1
  101. package/dist/chunk-ZGP5552B.js +0 -377
  102. package/dist/chunk-ZGP5552B.js.map +0 -1
  103. package/dist/chunk-ZWOYNHVK.js +0 -196
  104. package/dist/chunk-ZWOYNHVK.js.map +0 -1
  105. package/dist/dist/.tsbuildinfo +0 -1
  106. package/dist/elgamal-VZLWB3XK.js +0 -5
  107. package/dist/elgamal-VZLWB3XK.js.map +0 -1
  108. package/dist/feature-flags-V722ZuXO.d.ts +0 -3512
  109. package/dist/generated-VNLHMR6Y.js +0 -5
  110. package/dist/ipfs-types-BOt9ZNg4.d.ts +0 -592
  111. package/dist/multisigConfig-BzEhy6jy.d.ts +0 -58
  112. package/dist/pda-B_nS8SbD.d.ts +0 -114
  113. package/dist/pda-S4BFJVGE.js +0 -4
  114. package/dist/pda-S4BFJVGE.js.map +0 -1
  115. package/dist/system-addresses-BFNLEbFx.d.ts +0 -857
  116. package/dist/token-2022-rpc-RALH4RK7.js +0 -593
  117. package/dist/token-2022-rpc-RALH4RK7.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/modules/multisig/MultisigModule.ts","../src/modules/credentials/CredentialModule.ts","../src/modules/credentials/UnifiedCredentialService.ts","../src/core/GhostSpeakClient.ts"],"names":["CredentialKind","CredentialStatus"],"mappings":"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","file":"chunk-APCKGD23.js","sourcesContent":["\nimport type { Address } from '@solana/addresses'\nimport type { TransactionSigner } from '@solana/kit'\nimport { BaseModule } from '../../core/BaseModule.js'\nimport {\n getCreateMultisigInstruction,\n getInitializeGovernanceProposalInstructionAsync,\n getCastVoteInstruction,\n getExecuteProposalInstruction,\n type MultisigConfigArgs,\n VoteChoice,\n type ProposalTypeArgs,\n type ExecutionParamsArgs\n} from '../../generated/index.js'\nimport { deriveMultisigPda } from '../../utils/governance-helpers.js'\n\nexport interface CreateMultisigParams {\n multisigId: bigint\n threshold: number\n signers: Address[]\n config?: Partial<MultisigConfigArgs>\n owner: TransactionSigner\n}\n\nexport interface MultisigProposalParams {\n multisigAddress: Address\n title: string\n description: string\n proposalType: ProposalTypeArgs\n executionParams: ExecutionParamsArgs\n proposalId: bigint\n proposer: TransactionSigner\n}\n\nexport interface ApproveProposalParams {\n proposalAddress: Address\n voter: TransactionSigner\n voterTokenAccount: Address\n reasoning?: string\n voteChoice?: VoteChoice\n}\n\nexport interface ExecuteProposalParams {\n proposalAddress: Address\n executor: TransactionSigner\n targetProgram: Address\n}\n\nexport class MultisigModule extends BaseModule {\n /**\n * Create a new multisig account\n */\n async createMultisig(params: CreateMultisigParams): Promise<string> {\n const defaultConfig: MultisigConfigArgs = {\n max_signers: 10,\n default_timeout: 86400n, // 24 hours\n allow_emergency_override: false,\n emergency_threshold: { __option: 'None' },\n auto_execute: true,\n signer_change_threshold: params.threshold,\n allowed_transaction_types: [],\n daily_limits: []\n }\n\n const config = { ...defaultConfig, ...params.config }\n \n // Derive PDA with correct argument order: programId, authority, multisigId\n const multisigPda = await deriveMultisigPda(this.programId, params.owner.address, params.multisigId)\n\n const instruction = getCreateMultisigInstruction({\n multisig: multisigPda,\n owner: params.owner,\n multisigId: params.multisigId,\n threshold: params.threshold,\n signers: params.signers,\n config\n })\n\n return this.execute('createMultisig', () => instruction, [params.owner])\n }\n\n /**\n * Create a proposal (Uses Governance Protocol)\n * \n * Note: This creates a GovernanceProposal. The proposer must be a signer.\n */\n async createProposal(params: MultisigProposalParams): Promise<string> {\n // We use the async builder which handles PDA derivation for us\n const instruction = await getInitializeGovernanceProposalInstructionAsync({\n proposer: params.proposer,\n proposalId: params.proposalId,\n title: params.title,\n description: params.description,\n proposalType: params.proposalType,\n executionParams: params.executionParams,\n }, { programAddress: this.programId })\n\n return this.execute('createProposal', () => instruction, [params.proposer])\n }\n\n /**\n * Approve (Vote on) a proposal\n */\n async approveProposal(params: ApproveProposalParams): Promise<string> {\n const instruction = getCastVoteInstruction({\n proposal: params.proposalAddress,\n voter: params.voter,\n voterTokenAccount: params.voterTokenAccount,\n voteChoice: params.voteChoice ?? VoteChoice.For,\n reasoning: params.reasoning ?? null\n })\n\n return this.execute('approveProposal', () => instruction, [params.voter])\n }\n\n /**\n * Execute a proposal\n */\n async executeProposal(params: ExecuteProposalParams): Promise<string> {\n const instruction = getExecuteProposalInstruction({\n proposal: params.proposalAddress,\n executor: params.executor,\n targetProgram: params.targetProgram\n })\n\n return this.execute('executeProposal', () => instruction, [params.executor])\n }\n}\n","/**\n * GhostSpeak Credential Module\n *\n * Provides functionality for creating, signing, and exporting\n * W3C-compatible Verifiable Credentials.\n */\n\n\nimport { sha256 } from '@noble/hashes/sha256'\nimport type { Address } from '@solana/addresses'\n// Using simple string encoding for base58 to match SDK patterns if needed, \n// or usually @solana/addresses handles address strings.\n// We need bs58 for raw data encoding\nimport bs58 from 'bs58'\n\n// Helper for base58 encoding\nconst base58Encode = (data: Uint8Array): string => bs58.encode(data)\n\n// Constants\nexport const DEFAULT_PROGRAM_ID = 'GHosT3wqDfNq9bKz8dNEQ1F5mLuN7bKdNYx3Z1111111' as Address\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport enum CredentialKind {\n AgentIdentity = 'AgentIdentity',\n ReputationScore = 'ReputationScore',\n JobCompletion = 'JobCompletion',\n DelegatedSigner = 'DelegatedSigner',\n Custom = 'Custom',\n}\n\nexport enum CredentialStatus {\n Pending = 'Pending',\n Active = 'Active',\n Revoked = 'Revoked',\n Expired = 'Expired',\n}\n\nexport interface CredentialType {\n authority: string; // Address\n name: string;\n kind: CredentialKind;\n schemaUri: string;\n description: string;\n isActive: boolean;\n totalIssued: number;\n createdAt: number;\n}\n\nexport interface CredentialTemplate {\n credentialType: string; // Address\n name: string;\n imageUri: string;\n issuer: string; // Address\n isActive: boolean;\n totalIssued: number;\n createdAt: number;\n crossmintTemplateId?: string;\n}\n\nexport interface Credential {\n template: string; // Address\n subject: string; // Address\n issuer: string; // Address\n credentialId: string;\n subjectDataHash: Uint8Array;\n subjectDataUri: string;\n status: CredentialStatus;\n signature: Uint8Array;\n issuedAt: number;\n expiresAt?: number;\n revokedAt?: number;\n // Metadata\n crossmintCredentialId?: string;\n}\n\n// W3C Verifiable Credential Data Model v2.0\nexport interface W3CVerifiableCredential {\n '@context': string[];\n type: string[];\n id: string;\n issuer: {\n id: string;\n name?: string;\n } | string;\n validFrom: string;\n validUntil?: string;\n credentialSubject: {\n id?: string;\n [key: string]: unknown;\n };\n credentialSchema?: {\n id: string;\n type: 'JsonSchema';\n };\n credentialStatus?: {\n id: string;\n type: string;\n statusPurpose: 'revocation' | 'suspension';\n };\n relatedResource?: Array<{\n id: string;\n digestMultibase?: string;\n }>;\n proof: {\n type: 'DataIntegrityProof';\n created: string;\n verificationMethod: string;\n cryptosuite: 'eddsa-rdfc-2022';\n proofPurpose: 'assertionMethod';\n proofValue: string;\n };\n}\n\nexport class CredentialModule {\n private programId: Address\n\n constructor(programId: Address = DEFAULT_PROGRAM_ID) {\n this.programId = programId\n }\n\n // --------------------------------------------------------------------------\n // Hashing\n // --------------------------------------------------------------------------\n\n hashSubjectData(subjectData: Record<string, unknown>): Uint8Array {\n // Sort keys for deterministic hashing\n const json = JSON.stringify(subjectData, Object.keys(subjectData).sort());\n return sha256(new TextEncoder().encode(json));\n }\n\n generateCredentialId(kind: CredentialKind, subject: string): string {\n const timestamp = Date.now();\n const input = `${kind}-${subject}-${timestamp}`;\n const hash = sha256(new TextEncoder().encode(input));\n const shortHash = base58Encode(hash.slice(0, 8));\n return `${kind.toLowerCase()}-${shortHash}`;\n }\n\n // --------------------------------------------------------------------------\n // Export W3C\n // --------------------------------------------------------------------------\n\n exportAsW3CCredential(\n credential: Credential,\n template: CredentialTemplate,\n credentialType: CredentialType,\n subjectData: Record<string, unknown>,\n options?: {\n network?: 'mainnet' | 'devnet' | 'testnet'\n includeRelatedResource?: boolean\n }\n ): W3CVerifiableCredential {\n const network = options?.network || 'mainnet'\n const didPrefix = network === 'mainnet' ? 'did:sol:' : `did:sol:${network}:`\n\n // Note: PDA derivation is omitted here for simplicity as we don't have the heavy Buffer logic\n // We assume credential.verificationStatus is handled by the consumer verifying on-chain data\n // Or we add a simplified implementation if needed.\n \n // Simplification for ID generation to avoid complex PDA math in this module for now\n // In strict implementation, this status ID should calculate the exact PDA\n const statusId = `solana:${this.programId}:credential:${credential.credentialId}`;\n\n return {\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2',\n 'https://ghostspeak.io/ns/credentials/v1',\n ],\n type: ['VerifiableCredential', `GhostSpeak${credentialType.kind}Credential`],\n id: `urn:ghostspeak:${credential.credentialId}`,\n issuer: {\n id: `${didPrefix}${this.programId}`,\n name: 'GhostSpeak Protocol',\n },\n validFrom: new Date(credential.issuedAt * 1000).toISOString(),\n validUntil: credential.expiresAt\n ? new Date(credential.expiresAt * 1000).toISOString()\n : undefined,\n credentialSubject: {\n id: `${didPrefix}${credential.subject}`,\n ...subjectData,\n },\n credentialSchema: {\n id: credentialType.schemaUri,\n type: 'JsonSchema',\n },\n credentialStatus: {\n id: statusId,\n type: 'SolanaAccountStatus2025',\n statusPurpose: 'revocation',\n },\n relatedResource: options?.includeRelatedResource\n ? [\n {\n id: credential.subjectDataUri,\n digestMultibase: `mEi${base58Encode(credential.subjectDataHash)}`,\n },\n ]\n : undefined,\n proof: {\n type: 'DataIntegrityProof',\n created: new Date(credential.issuedAt * 1000).toISOString(),\n verificationMethod: `${didPrefix}${this.programId}#key-1`,\n cryptosuite: 'eddsa-rdfc-2022',\n proofPurpose: 'assertionMethod',\n proofValue: base58Encode(credential.signature),\n },\n }\n }\n\n // --------------------------------------------------------------------------\n // Helpers for Subject Building\n // --------------------------------------------------------------------------\n\n static buildAgentIdentitySubject(params: {\n agentId: string;\n owner: string;\n name: string;\n capabilities: string[];\n serviceEndpoint: string;\n frameworkOrigin: string;\n x402Enabled: boolean;\n registeredAt: number;\n verifiedAt: number;\n }) {\n return params;\n }\n}\n","/**\n * Unified Credential Service\n * \n * Bridges GhostSpeak's native Solana credentials with Crossmint's EVM-based VCs.\n */\n\nimport type { Address } from '@solana/addresses'\nimport type { CrossmintClientOptions } from './CrossmintVCClient.js'\nimport { CrossmintVCClient } from './CrossmintVCClient.js'\nimport { \n CredentialModule, \n CredentialKind, \n CredentialStatus, \n type Credential, \n type CredentialTemplate, \n type CredentialType,\n type W3CVerifiableCredential \n} from './CredentialModule.js'\n\nexport interface UnifiedCredentialConfig {\n programId?: Address\n crossmint?: CrossmintClientOptions\n crossmintTemplates?: {\n agentIdentity?: string\n reputation?: string\n jobCompletion?: string\n }\n}\n\nexport interface IssuedCredentialResult {\n solanaCredential: {\n credentialId: string\n // signature would be here if we signed it\n }\n w3cCredential: W3CVerifiableCredential\n crossmintSync?: {\n status: 'pending' | 'synced' | 'failed'\n credentialId?: string\n chain?: string\n error?: string\n }\n}\n\nexport class UnifiedCredentialService {\n private credentialModule: CredentialModule\n private crossmintClient?: CrossmintVCClient\n \n constructor(private config: UnifiedCredentialConfig) {\n this.credentialModule = new CredentialModule(config.programId)\n \n if (config.crossmint) {\n this.crossmintClient = new CrossmintVCClient(config.crossmint)\n }\n }\n\n /**\n * Issue an Agent Identity credential.\n * Note: logic simplified for SDK usage (mocking the on-chain part for now as per original implementation)\n */\n async issueAgentIdentityCredential(params: {\n agentId: string\n owner: string // Address\n name: string\n capabilities: string[]\n serviceEndpoint: string\n frameworkOrigin: string\n x402Enabled: boolean\n registeredAt: number\n verifiedAt: number\n recipientEmail?: string\n syncToCrossmint?: boolean\n // Pre-calculated signature for the credential data\n signature: Uint8Array\n }): Promise<IssuedCredentialResult> {\n const subjectData = CredentialModule.buildAgentIdentitySubject({\n agentId: params.agentId,\n owner: params.owner,\n name: params.name,\n capabilities: params.capabilities,\n serviceEndpoint: params.serviceEndpoint,\n frameworkOrigin: params.frameworkOrigin,\n x402Enabled: params.x402Enabled,\n registeredAt: params.registeredAt,\n verifiedAt: params.verifiedAt,\n })\n\n const credentialId = this.credentialModule.generateCredentialId(\n CredentialKind.AgentIdentity,\n params.owner\n )\n\n const subjectDataHash = this.credentialModule.hashSubjectData(subjectData as unknown as Record<string, unknown>)\n\n // Create Credential Object\n const credential: Credential = {\n template: '11111111111111111111111111111111' as Address, // Placeholder Address\n subject: params.owner,\n issuer: params.owner, // Self-issued for agent identity usually, or program\n credentialId,\n subjectDataHash,\n subjectDataUri: `ipfs://placeholder/${credentialId}`,\n status: CredentialStatus.Active,\n signature: params.signature, // Use provided signature\n issuedAt: Math.floor(Date.now() / 1000),\n expiresAt: undefined,\n revokedAt: undefined,\n crossmintCredentialId: undefined,\n }\n\n // Create Type/Template structure required for W3C export\n const mockType: CredentialType = {\n authority: '11111111111111111111111111111111',\n name: 'AgentIdentity',\n kind: CredentialKind.AgentIdentity,\n schemaUri: 'https://ghostspeak.io/schemas/agent-identity.json',\n description: 'Verified AI agent identity on GhostSpeak Protocol',\n isActive: true,\n totalIssued: 1,\n createdAt: Math.floor(Date.now() / 1000),\n }\n\n const mockTemplate: CredentialTemplate = {\n credentialType: '11111111111111111111111111111111',\n name: 'GhostSpeak Agent Identity',\n imageUri: 'https://www.ghostspeak.io/assets/credential-agent.png',\n issuer: params.owner,\n isActive: true,\n totalIssued: 1,\n createdAt: Math.floor(Date.now() / 1000),\n crossmintTemplateId: this.config.crossmintTemplates?.agentIdentity,\n }\n\n const w3cCredential = this.credentialModule.exportAsW3CCredential(\n credential,\n mockTemplate,\n mockType,\n subjectData as unknown as Record<string, unknown>\n )\n\n const result: IssuedCredentialResult = {\n solanaCredential: {\n credentialId,\n },\n w3cCredential,\n }\n\n if (params.syncToCrossmint && this.crossmintClient && params.recipientEmail) {\n if (!mockTemplate.crossmintTemplateId) {\n result.crossmintSync = { status: 'failed', error: 'No template ID configured' }\n } else {\n try {\n const crossmintResult = await this.crossmintClient.issueCredential(\n mockTemplate.crossmintTemplateId,\n params.recipientEmail,\n subjectData as unknown as Record<string, unknown>\n // enrichedSubject... logic handled here or in client? \n // In web it was in syncToCrossmint.\n )\n result.crossmintSync = {\n status: 'synced',\n credentialId: crossmintResult.credentialId,\n chain: this.config.crossmint?.chain\n }\n } catch (error) {\n result.crossmintSync = {\n status: 'failed',\n error: error instanceof Error ? error.message : 'Unknown error'\n }\n }\n }\n }\n\n return result\n }\n}\n","import type { Address } from '@solana/addresses'\nimport type { TransactionSigner } from '@solana/kit'\nimport type { GhostSpeakConfig } from '../types/index.js'\nimport { GHOSTSPEAK_PROGRAM_ID } from '../types/index.js'\nimport { AgentModule } from './modules/AgentModule.js'\nimport { EscrowModule } from '../modules/escrow/EscrowModule.js'\nimport { ChannelModule } from '../modules/channels/ChannelModule.js'\nimport { MarketplaceModule } from '../modules/marketplace/MarketplaceModule.js'\nimport { GovernanceModule } from '../modules/governance/GovernanceModule.js'\nimport { MultisigModule } from '../modules/multisig/MultisigModule.js'\nimport { Token2022Module } from '../modules/token2022/Token2022Module.js'\nimport { UnifiedCredentialService } from '../modules/credentials/UnifiedCredentialService.js'\n// H2A Module has been removed - use A2A (Agent-to-Agent) instructions instead\nimport { ChannelType } from '../generated/types/channelType.js'\nimport { ProposalType } from '../generated/types/proposalType.js'\nimport { VoteChoice } from '../generated/types/voteChoice.js'\nimport type { AccountState } from '../generated/types/accountState.js'\n\n/**\n * Main GhostSpeak client with fluent API design\n * \n * Example usage:\n * ```typescript\n * const ghostspeak = new GhostSpeak()\n * \n * // Create an agent\n * const agent = await ghostspeak\n * .agent()\n * .create({ name: \"My Agent\", capabilities: [\"coding\"] })\n * .compressed()\n * .execute()\n * \n * // Create an escrow\n * const escrow = await ghostspeak\n * .escrow()\n * .between(buyer, seller)\n * .amount(sol(10))\n * .withMilestones([...])\n * .execute()\n * ```\n */\nexport class GhostSpeakClient {\n private config: GhostSpeakConfig\n \n constructor(config?: Partial<GhostSpeakConfig>) {\n // Zero-config setup with smart defaults\n this.config = {\n programId: GHOSTSPEAK_PROGRAM_ID,\n commitment: 'confirmed',\n cluster: 'devnet',\n rpcEndpoint: config?.rpcEndpoint ?? this.getDefaultRpcEndpoint(config?.cluster ?? 'devnet'),\n ...config,\n rpc: config?.rpc ?? {} as GhostSpeakConfig['rpc']\n }\n }\n\n /**\n * Agent operations\n */\n agent(): AgentBuilder {\n return new AgentBuilder(this.config)\n }\n\n /**\n * Escrow operations\n */\n escrow(): EscrowBuilder {\n return new EscrowBuilder(this.config)\n }\n\n /**\n * Channel operations\n */\n channel(): ChannelBuilder {\n return new ChannelBuilder(this.config)\n }\n\n /**\n * Marketplace operations\n */\n marketplace(): MarketplaceBuilder {\n return new MarketplaceBuilder(this.config)\n }\n\n /**\n * Governance operations\n */\n governance(): GovernanceBuilder {\n return new GovernanceBuilder(this.config)\n }\n\n /**\n * Multisig operations\n */\n multisig(): MultisigBuilder {\n return new MultisigBuilder(this.config)\n }\n\n /**\n * Token-2022 operations\n */\n token2022(): Token2022Builder {\n return new Token2022Builder(this.config)\n }\n\n /**\n * Unified Credential operations (Solana + Crossmint)\n */\n credentials(): UnifiedCredentialService {\n return new UnifiedCredentialService({\n programId: this.config.programId,\n crossmint: this.config.credentials?.crossmintApiKey ? {\n apiKey: this.config.credentials.crossmintApiKey,\n environment: this.config.credentials.crossmintEnvironment,\n chain: this.config.credentials.crossmintChain\n } : undefined,\n crossmintTemplates: this.config.credentials?.templates\n })\n }\n\n // H2A module has been removed - use A2A (Agent-to-Agent) instructions instead\n\n /**\n * Enable development mode features\n */\n enableDevMode(): this {\n console.log('🛠️ Development mode enabled')\n console.log(' - Transaction simulation before sending')\n console.log(' - Cost estimates for all operations')\n console.log(' - Enhanced error messages')\n \n this.config = {\n ...this.config,\n // Add dev mode flags\n }\n \n return this\n }\n\n /**\n * Configure network\n */\n useNetwork(cluster: 'mainnet-beta' | 'devnet' | 'testnet' | 'localnet'): this {\n this.config.cluster = cluster\n this.config.rpcEndpoint = this.getDefaultRpcEndpoint(cluster)\n return this\n }\n\n /**\n * Configure custom RPC\n */\n useRpc(endpoint: string, wsEndpoint?: string): this {\n this.config.rpcEndpoint = endpoint\n this.config.wsEndpoint = wsEndpoint\n return this\n }\n\n /**\n * Get default RPC endpoint for cluster\n */\n private getDefaultRpcEndpoint(cluster: string): string {\n switch (cluster) {\n case 'mainnet-beta':\n return 'https://api.mainnet-beta.solana.com'\n case 'devnet':\n return 'https://api.devnet.solana.com'\n case 'testnet':\n return 'https://api.testnet.solana.com'\n case 'localnet':\n return 'http://localhost:8899'\n default:\n return 'https://api.devnet.solana.com'\n }\n }\n}\n\n// =====================================================\n// FLUENT BUILDERS\n// =====================================================\n\n/**\n * Agent builder parameters interface\n */\ninterface AgentBuilderParams {\n agentType?: number\n metadataUri?: string\n agentId?: string\n compressed?: boolean\n forceIPFS?: boolean\n signer?: TransactionSigner\n name?: string\n description?: string\n}\n\n/**\n * Agent builder for fluent API\n */\nclass AgentBuilder {\n private module: AgentModule\n private params: AgentBuilderParams = {}\n\n constructor(config: GhostSpeakConfig) {\n this.module = new AgentModule(config)\n }\n\n create(params: { name: string; description?: string; capabilities: string[] }): this {\n this.params = {\n ...this.params,\n agentType: 0, // Default type\n metadataUri: JSON.stringify(params),\n agentId: params.name.toLowerCase().replace(/\\s+/g, '-'),\n name: params.name,\n description: params.description || ''\n }\n return this\n }\n\n withDescription(description: string): this {\n this.params.description = description\n return this\n }\n\n withType(agentType: number): this {\n this.params.agentType = agentType\n return this\n }\n\n withIPFS(): this {\n this.params.forceIPFS = true\n return this\n }\n\n compressed(): this {\n this.params.compressed = true\n return this\n }\n\n debug(): this {\n this.module.debug()\n return this\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n\n private validateParams(): void {\n if (!this.params.signer) {\n throw new Error('Agent builder requires a signer. Call with signer first.')\n }\n if (!this.params.metadataUri) {\n throw new Error('Agent builder requires metadata. Call create() first.')\n }\n if (!this.params.agentId) {\n throw new Error('Agent builder requires agent ID. Call create() first.')\n }\n this.params.agentType ??= 0 // Default type\n }\n\n async getCost(): Promise<bigint> {\n this.validateParams()\n return this.module.getCost('registerAgent', () => ({\n programAddress: this.module.getProgramId(),\n accounts: [],\n data: new Uint8Array()\n }))\n }\n\n async simulate(): Promise<unknown> {\n const instruction = () => ({\n // Placeholder for actual instruction generation\n programAddress: this.module.getProgramId(),\n accounts: [],\n data: new Uint8Array()\n })\n this.validateParams()\n return this.module.simulateInstruction('registerAgent', instruction, [this.params.signer!])\n }\n\n async explain(): Promise<string> {\n this.validateParams()\n return this.module.explain('registerAgent', () => ({\n programAddress: this.module.getProgramId(),\n accounts: [],\n data: new Uint8Array()\n }))\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n if (this.params.compressed) {\n // Implementation would handle compressed agent creation\n console.log('Creating compressed agent (5000x cheaper)...')\n }\n \n const signature = await this.module.register(this.params.signer!, {\n agentType: this.params.agentType!,\n name: this.params.name!,\n description: this.params.description!,\n metadataUri: this.params.metadataUri!,\n agentId: this.params.agentId!\n })\n const address = await this.deriveAgentAddress(this.params.agentId!, this.params.signer!)\n \n return { address, signature }\n }\n\n private async deriveAgentAddress(agentId: string, signer: TransactionSigner): Promise<Address> {\n const { deriveAgentPda } = await import('../utils/pda.js')\n const [address] = await deriveAgentPda({ \n programAddress: this.module.getProgramId(), \n owner: signer.address, \n agentId \n })\n return address\n }\n}\n\n/**\n * Escrow builder parameters interface\n */\ninterface EscrowBuilderParams {\n buyer?: Address\n seller?: Address\n amount?: bigint\n description?: string\n milestones?: Array<{ amount: bigint; description: string }>\n signer?: TransactionSigner\n}\n\n/**\n * Escrow builder for fluent API\n */\nclass EscrowBuilder {\n private module: EscrowModule\n private params: EscrowBuilderParams = {}\n\n constructor(config: GhostSpeakConfig) {\n this.module = new EscrowModule(config)\n }\n\n between(buyer: Address, seller: Address): this {\n this.params.buyer = buyer\n this.params.seller = seller\n return this\n }\n\n amount(lamports: bigint): this {\n this.params.amount = lamports\n return this\n }\n\n description(desc: string): this {\n this.params.description = desc\n return this\n }\n\n withMilestones(milestones: Array<{ amount: bigint; description: string }>): this {\n this.params.milestones = milestones\n return this\n }\n\n debug(): this {\n this.module.debug()\n return this\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n\n private validateParams(): void {\n if (!this.params.buyer) {\n throw new Error('Escrow builder requires buyer address. Call between() first.')\n }\n if (!this.params.seller) {\n throw new Error('Escrow builder requires seller address. Call between() first.')\n }\n if (!this.params.amount) {\n throw new Error('Escrow builder requires amount. Call amount() first.')\n }\n if (!this.params.signer) {\n throw new Error('Escrow builder requires signer.')\n }\n }\n\n async getCost(): Promise<bigint> {\n return this.module.getCost('createEscrow', () => ({\n // Placeholder for actual instruction\n programAddress: this.module.getProgramId(),\n accounts: [],\n data: new Uint8Array()\n }))\n }\n\n async explain(): Promise<string> {\n return this.module.explain('createEscrow', () => ({\n // Placeholder for actual instruction\n programAddress: this.module.getProgramId(),\n accounts: [],\n data: new Uint8Array()\n }))\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n const signature = await this.module.create({\n signer: this.params.signer!,\n amount: this.params.amount!,\n buyer: this.params.buyer!,\n seller: this.params.seller!,\n description: this.params.description ?? '',\n milestones: this.params.milestones\n })\n // Generate a unique escrow ID\n const escrowId = `${Date.now()}_${Math.random().toString(36).substring(7)}`\n const address = await this.deriveEscrowAddress(escrowId)\n \n return { address, signature }\n }\n\n private async deriveEscrowAddress(escrowId: string): Promise<Address> {\n const { deriveEscrowPDA } = await import('../utils/pda.js')\n const [address] = await deriveEscrowPDA({\n client: this.params.buyer!,\n provider: this.params.seller!,\n escrowId,\n programAddress: this.module.getProgramId()\n })\n return address\n }\n}\n\n/**\n * Channel builder parameters interface\n */\ninterface ChannelBuilderParams {\n name?: string\n description?: string\n channelType?: ChannelType\n isPrivate?: boolean\n maxMembers?: number\n signer?: TransactionSigner\n}\n\n/**\n * Channel builder for fluent API\n */\nclass ChannelBuilder {\n private module: ChannelModule\n private params: ChannelBuilderParams = {}\n\n constructor(config: GhostSpeakConfig) {\n this.module = new ChannelModule(config)\n }\n\n create(name: string): this {\n this.params.name = name\n this.params.channelType = ChannelType.Public\n return this\n }\n\n description(desc: string): this {\n this.params.description = desc\n return this\n }\n\n private(): this {\n this.params.isPrivate = true\n this.params.channelType = ChannelType.Private\n return this\n }\n\n maxMembers(max: number): this {\n this.params.maxMembers = max\n return this\n }\n\n debug(): this {\n this.module.debug()\n return this\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n\n private validateParams(): void {\n if (!this.params.name) {\n throw new Error('Channel builder requires name. Call create() first.')\n }\n if (!this.params.signer) {\n throw new Error('Channel builder requires signer.')\n }\n }\n\n async getCost(): Promise<bigint> {\n return this.module.getCost('createChannel', () => ({\n // Placeholder for actual instruction\n programAddress: this.module.getProgramId(),\n accounts: [],\n data: new Uint8Array()\n }))\n }\n\n async explain(): Promise<string> {\n return this.module.explain('createChannel', () => ({\n // Placeholder for actual instruction\n programAddress: this.module.getProgramId(),\n accounts: [],\n data: new Uint8Array()\n }))\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n const signature = await this.module.create({\n signer: this.params.signer!,\n name: this.params.name!,\n description: this.params.description ?? '',\n channelType: this.params.channelType ?? ChannelType.Public,\n isPrivate: this.params.isPrivate,\n maxMembers: this.params.maxMembers\n })\n // Generate a unique channel ID\n const channelId = `${this.params.name}_${Date.now()}`\n const address = await this.deriveChannelAddress(channelId)\n \n return { address, signature }\n }\n\n private async deriveChannelAddress(channelId: string): Promise<Address> {\n const { deriveChannelPda } = await import('../utils/pda.js')\n const address = await deriveChannelPda(\n this.module.getProgramId(),\n channelId\n )\n return address\n }\n}\n\n/**\n * Marketplace builder for fluent API\n */\nclass MarketplaceBuilder {\n private module: MarketplaceModule\n private params: MarketplaceBuilderParams = {}\n\n constructor(config: GhostSpeakConfig) {\n this.module = new MarketplaceModule(config)\n }\n\n /**\n * Create a service listing\n */\n service(): ServiceBuilder {\n return new ServiceBuilder(this.module, this.params)\n }\n\n /**\n * Create a job posting\n */\n job(): JobBuilder {\n return new JobBuilder(this.module, this.params)\n }\n\n /**\n * Create an auction\n */\n auction(): AuctionBuilder {\n return new AuctionBuilder(this.module, this.params)\n }\n\n /**\n * Get marketplace queries\n */\n query(): MarketplaceQuery {\n return new MarketplaceQuery(this.module)\n }\n\n debug(): this {\n this.module.debug()\n return this\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Marketplace builder parameters interface\n */\ninterface MarketplaceBuilderParams {\n signer?: TransactionSigner\n}\n\n/**\n * Service builder for fluent API\n */\nclass ServiceBuilder {\n private params: {\n title?: string\n description?: string\n pricePerHour?: bigint\n category?: string\n capabilities?: string[]\n agentAddress?: Address\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: MarketplaceModule, private builderParams: MarketplaceBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n create(params: { title: string; description: string; agentAddress: Address }): this {\n this.params.title = params.title\n this.params.description = params.description\n this.params.agentAddress = params.agentAddress\n return this\n }\n\n pricePerHour(price: bigint): this {\n this.params.pricePerHour = price\n return this\n }\n\n category(cat: string): this {\n this.params.category = cat\n return this\n }\n\n capabilities(caps: string[]): this {\n this.params.capabilities = caps\n return this\n }\n\n\n private validateParams(): void {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.title) throw new Error('Title required')\n if (!this.params.description) throw new Error('Description required')\n if (!this.params.agentAddress) throw new Error('Agent address required')\n if (!this.params.pricePerHour) throw new Error('Price per hour required')\n if (!this.params.category) throw new Error('Category required')\n if (!this.params.capabilities) throw new Error('Capabilities required')\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n const signature = await this.module.createServiceListing({\n signer: this.params.signer!,\n agentAddress: this.params.agentAddress!,\n title: this.params.title!,\n description: this.params.description!,\n pricePerHour: this.params.pricePerHour!,\n category: this.params.category!,\n capabilities: this.params.capabilities!\n })\n \n const address = `service_${this.params.agentAddress}_${this.params.title}` as Address\n return { address, signature }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Job builder for fluent API\n */\nclass JobBuilder {\n private params: {\n title?: string\n description?: string\n budget?: bigint\n duration?: number\n requiredSkills?: string[]\n category?: string\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: MarketplaceModule, private builderParams: MarketplaceBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n create(params: { title: string; description: string }): this {\n this.params.title = params.title\n this.params.description = params.description\n return this\n }\n\n budget(amount: bigint): this {\n this.params.budget = amount\n return this\n }\n\n duration(hours: number): this {\n this.params.duration = hours\n return this\n }\n\n skills(skillList: string[]): this {\n this.params.requiredSkills = skillList\n return this\n }\n\n category(cat: string): this {\n this.params.category = cat\n return this\n }\n\n private validateParams(): void {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.title) throw new Error('Title required')\n if (!this.params.description) throw new Error('Description required')\n if (!this.params.budget) throw new Error('Budget required')\n if (!this.params.duration) throw new Error('Duration required')\n if (!this.params.requiredSkills) throw new Error('Required skills needed')\n if (!this.params.category) throw new Error('Category required')\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n const signature = await this.module.createJobPosting({\n signer: this.params.signer!,\n title: this.params.title!,\n description: this.params.description!,\n budget: this.params.budget!,\n duration: this.params.duration!,\n requiredSkills: this.params.requiredSkills!,\n category: this.params.category!\n })\n \n const address = `job_${this.params.signer!.address}_${this.params.title}` as Address\n return { address, signature }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Auction builder for fluent API\n */\nclass AuctionBuilder {\n private params: {\n serviceListingAddress?: Address\n startingPrice?: bigint\n reservePrice?: bigint\n duration?: number\n auctionType?: 'english' | 'dutch'\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: MarketplaceModule, private builderParams: MarketplaceBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n forService(serviceAddress: Address): this {\n this.params.serviceListingAddress = serviceAddress\n return this\n }\n\n startingPrice(price: bigint): this {\n this.params.startingPrice = price\n return this\n }\n\n reservePrice(price: bigint): this {\n this.params.reservePrice = price\n return this\n }\n\n duration(hours: number): this {\n this.params.duration = hours\n return this\n }\n\n english(): this {\n this.params.auctionType = 'english'\n return this\n }\n\n dutch(): this {\n this.params.auctionType = 'dutch'\n return this\n }\n\n private validateParams(): void {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.serviceListingAddress) throw new Error('Service listing address required')\n if (!this.params.startingPrice) throw new Error('Starting price required')\n if (!this.params.reservePrice) throw new Error('Reserve price required')\n if (!this.params.duration) throw new Error('Duration required')\n if (!this.params.auctionType) throw new Error('Auction type required')\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n const signature = await this.module.createServiceAuction({\n signer: this.params.signer!,\n serviceListingAddress: this.params.serviceListingAddress!,\n startingPrice: this.params.startingPrice!,\n reservePrice: this.params.reservePrice!,\n duration: this.params.duration!,\n auctionType: this.params.auctionType!\n })\n \n const address = `auction_${this.params.serviceListingAddress}` as Address\n return { address, signature }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Marketplace query helper\n */\nclass MarketplaceQuery {\n constructor(private module: MarketplaceModule) {}\n\n async serviceListings() {\n return this.module.getAllServiceListings()\n }\n\n async serviceListingsByCategory(_category: string) {\n // Filter all listings by category (placeholder implementation)\n const allListings = await this.module.getAllServiceListings()\n return allListings.filter(_listing => {\n // Would check listing.data.category === category in real implementation\n // For now, return all listings since category filtering is not implemented\n return allListings.length > 0\n })\n }\n\n async jobPostings() {\n return this.module.getAllJobPostings()\n }\n\n async auctions() {\n return this.module.getAllAuctions()\n }\n}\n\n/**\n * Governance builder for fluent API\n */\nclass GovernanceBuilder {\n private module: GovernanceModule\n private params: GovernanceBuilderParams = {}\n\n constructor(config: GhostSpeakConfig) {\n this.module = new GovernanceModule(config)\n }\n\n /**\n * Create a governance proposal\n */\n proposal(): ProposalBuilder {\n return new ProposalBuilder(this.module, this.params)\n }\n\n /**\n * Get governance queries\n */\n query(): GovernanceQuery {\n return new GovernanceQuery(this.module)\n }\n\n debug(): this {\n this.module.debug()\n return this\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Governance builder parameters interface\n */\ninterface GovernanceBuilderParams {\n signer?: TransactionSigner\n}\n\n/**\n * Proposal builder for fluent API\n */\nclass ProposalBuilder {\n private params: {\n title?: string\n description?: string\n proposalType?: 'parameter_change' | 'upgrade' | 'treasury'\n votingDuration?: number\n executionDelay?: number\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: GovernanceModule, private builderParams: GovernanceBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n create(params: { title: string; description: string }): this {\n this.params.title = params.title\n this.params.description = params.description\n return this\n }\n\n type(proposalType: 'parameter_change' | 'upgrade' | 'treasury'): this {\n this.params.proposalType = proposalType\n return this\n }\n\n votingDuration(hours: number): this {\n this.params.votingDuration = hours\n return this\n }\n\n executionDelay(hours: number): this {\n this.params.executionDelay = hours\n return this\n }\n\n private validateParams(): void {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.title) throw new Error('Title required')\n if (!this.params.description) throw new Error('Description required')\n if (!this.params.proposalType) throw new Error('Proposal type required')\n if (!this.params.votingDuration) throw new Error('Voting duration required')\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n const signature = await this.module.createProposal({\n signer: this.params.signer!,\n title: this.params.title!,\n description: this.params.description!,\n proposalType: this.params.proposalType!,\n votingDuration: this.params.votingDuration!,\n executionDelay: this.params.executionDelay\n })\n \n const address = `proposal_${this.params.signer!.address}_${this.params.title}` as Address\n return { address, signature }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Governance query helper\n */\nclass GovernanceQuery {\n constructor(private module: GovernanceModule) {}\n\n async activeProposals() {\n return this.module.getActiveProposals()\n }\n\n async proposalsByProposer(proposer: Address) {\n return this.module.getProposalsByProposer(proposer)\n }\n\n async proposalsByStatus(status: 'draft' | 'voting' | 'succeeded' | 'defeated' | 'executed') {\n return this.module.getProposalsByStatus(status)\n }\n}\n\n/**\n * Multisig builder for fluent API\n */\nclass MultisigBuilder {\n private module: MultisigModule\n private params: MultisigBuilderParams = {}\n\n constructor(config: GhostSpeakConfig) {\n this.module = new MultisigModule(config)\n }\n\n create(): CreateMultisigBuilder {\n return new CreateMultisigBuilder(this.module, this.params)\n }\n\n proposal(): MultisigProposalBuilder {\n return new MultisigProposalBuilder(this.module, this.params)\n }\n\n approve(): MultisigApproveBuilder {\n return new MultisigApproveBuilder(this.module, this.params)\n }\n\n executeProposal(): MultisigExecuteBuilder {\n return new MultisigExecuteBuilder(this.module, this.params)\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n\n debug(): this {\n this.module.debug()\n return this\n }\n}\n\ninterface MultisigBuilderParams {\n signer?: TransactionSigner\n}\n\nclass CreateMultisigBuilder {\n private params: {\n multisigId?: bigint\n threshold?: number\n signers?: Address[]\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: MultisigModule, private builderParams: MultisigBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n withId(id: bigint): this {\n this.params.multisigId = id\n return this\n }\n\n threshold(t: number): this {\n this.params.threshold = t\n return this\n }\n\n signers(s: Address[]): this {\n this.params.signers = s\n return this\n }\n\n async execute(): Promise<{ signature: string }> {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.multisigId) throw new Error('Multisig ID required')\n if (!this.params.threshold) throw new Error('Threshold required')\n if (!this.params.signers) throw new Error('Signers required')\n\n return {\n signature: await this.module.createMultisig({\n owner: this.params.signer,\n multisigId: this.params.multisigId,\n threshold: this.params.threshold,\n signers: this.params.signers\n })\n }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\nclass MultisigProposalBuilder {\n private params: {\n multisigAddress?: Address\n title?: string\n description?: string\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: MultisigModule, private builderParams: MultisigBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n forMultisig(address: Address): this {\n this.params.multisigAddress = address\n return this\n }\n\n title(t: string): this {\n this.params.title = t\n return this\n }\n\n description(d: string): this {\n this.params.description = d\n return this\n }\n\n async execute(): Promise<{ signature: string }> {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.title) throw new Error('Title required')\n if (!this.params.description) throw new Error('Description required')\n \n // Placeholder execution since we simplified createProposal in module\n // We would need more params in a real app (execution params, type etc)\n // For now we just call it with minimal dummy data to prove wiring\n return {\n signature: await this.module.createProposal({\n multisigAddress: this.params.multisigAddress!,\n title: this.params.title,\n description: this.params.description,\n proposalType: ProposalType.Custom,\n executionParams: {\n instructions: [],\n executionDelay: 0n,\n executionConditions: [],\n cancellable: true,\n autoExecute: true,\n executionAuthority: this.params.signer.address\n },\n proposalId: BigInt(Date.now()),\n proposer: this.params.signer\n })\n }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\nclass MultisigApproveBuilder {\n private params: {\n proposalAddress?: Address\n voteChoice?: VoteChoice\n reasoning?: string\n signer?: TransactionSigner\n tokenAccount?: Address\n } = {}\n\n constructor(private module: MultisigModule, private builderParams: MultisigBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n proposal(address: Address): this {\n this.params.proposalAddress = address\n return this\n }\n\n vote(choice: VoteChoice): this {\n this.params.voteChoice = choice\n return this\n }\n\n reason(text: string): this {\n this.params.reasoning = text\n return this\n }\n\n tokenAccount(account: Address): this {\n this.params.tokenAccount = account\n return this\n }\n\n async execute(): Promise<{ signature: string }> {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.proposalAddress) throw new Error('Proposal address required')\n \n // Default to 'For' if token account provided but choice isn't\n const voteChoice = this.params.voteChoice ?? VoteChoice.For\n \n // In a real scenario, we might need to derive the token account if not provided\n // For now we assume it's provided or we use a dummy one if acceptable by the logic\n if (!this.params.tokenAccount) throw new Error('Voter token account required')\n\n return {\n signature: await this.module.approveProposal({\n proposalAddress: this.params.proposalAddress,\n voter: this.params.signer,\n voterTokenAccount: this.params.tokenAccount,\n voteChoice,\n reasoning: this.params.reasoning\n })\n }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\nclass MultisigExecuteBuilder {\n private params: {\n proposalAddress?: Address\n targetProgram?: Address\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: MultisigModule, private builderParams: MultisigBuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n proposal(address: Address): this {\n this.params.proposalAddress = address\n return this\n }\n\n target(programId: Address): this {\n this.params.targetProgram = programId\n return this\n }\n\n async execute(): Promise<{ signature: string }> {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.proposalAddress) throw new Error('Proposal address required')\n if (!this.params.targetProgram) throw new Error('Target program required')\n\n return {\n signature: await this.module.executeProposal({\n proposalAddress: this.params.proposalAddress,\n executor: this.params.signer,\n targetProgram: this.params.targetProgram\n })\n }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Token2022 builder for fluent API\n */\nclass Token2022Builder {\n private module: Token2022Module\n private params: Token2022BuilderParams = {}\n\n constructor(config: GhostSpeakConfig) {\n this.module = new Token2022Module(config)\n }\n\n /**\n * Create a basic mint\n */\n mint(): MintBuilder {\n return new MintBuilder(this.module, this.params)\n }\n\n /**\n * Get Token2022 queries\n */\n query(): Token2022Query {\n return new Token2022Query(this.module)\n }\n\n debug(): this {\n this.module.debug()\n return this\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Token2022 builder parameters interface\n */\ninterface Token2022BuilderParams {\n signer?: TransactionSigner\n}\n\n/**\n * Mint builder for fluent API\n */\nclass MintBuilder {\n private params: {\n agentAddress?: Address\n decimals?: number\n freezeAuthority?: Address\n enableTransferFees?: boolean\n transferFeeBasisPoints?: number\n maxFee?: bigint\n enableConfidentialTransfers?: boolean\n autoApproveConfidential?: boolean\n enableInterestBearing?: boolean\n interestRate?: number\n defaultAccountState?: AccountState\n signer?: TransactionSigner\n } = {}\n\n constructor(private module: Token2022Module, private builderParams: Token2022BuilderParams) {\n this.params.signer = builderParams.signer\n }\n\n forAgent(agentAddress: Address): this {\n this.params.agentAddress = agentAddress\n return this\n }\n\n decimals(dec: number): this {\n this.params.decimals = dec\n return this\n }\n\n freezeAuthority(authority: Address): this {\n this.params.freezeAuthority = authority\n return this\n }\n\n withTransferFees(basisPoints: number, maxFee: bigint): this {\n this.params.enableTransferFees = true\n this.params.transferFeeBasisPoints = basisPoints\n this.params.maxFee = maxFee\n return this\n }\n\n withConfidentialTransfers(autoApprove = false): this {\n this.params.enableConfidentialTransfers = true\n this.params.autoApproveConfidential = autoApprove\n return this\n }\n\n withInterestBearing(rate: number): this {\n this.params.enableInterestBearing = true\n this.params.interestRate = rate\n return this\n }\n\n defaultAccountState(state: AccountState): this {\n this.params.defaultAccountState = state\n return this\n }\n\n private validateParams(): void {\n if (!this.params.signer) throw new Error('Signer required')\n if (!this.params.agentAddress) throw new Error('Agent address required')\n if (this.params.decimals === undefined) throw new Error('Decimals required')\n if (this.params.enableTransferFees && (!this.params.transferFeeBasisPoints || !this.params.maxFee)) {\n throw new Error('Transfer fee parameters required when fees enabled')\n }\n if (this.params.enableInterestBearing && this.params.interestRate === undefined) {\n throw new Error('Interest rate required when interest bearing enabled')\n }\n }\n\n async execute(): Promise<{ address: Address; signature: string }> {\n this.validateParams()\n \n // ... implementation ...\n let signature: string\n \n // Determine which creation method to use based on enabled features\n const hasMultipleFeatures = [\n this.params.enableTransferFees,\n this.params.enableConfidentialTransfers,\n this.params.enableInterestBearing,\n this.params.defaultAccountState\n ].filter(Boolean).length > 1\n\n if (hasMultipleFeatures) {\n // Use advanced mint creation for multiple features\n signature = await this.module.createAdvancedMint({\n signer: this.params.signer!,\n agentAddress: this.params.agentAddress!,\n decimals: this.params.decimals!,\n transferFeeBasisPoints: this.params.transferFeeBasisPoints ?? 0,\n maxFee: this.params.maxFee ?? BigInt(0),\n interestRate: this.params.interestRate ?? 0,\n autoApproveConfidential: this.params.autoApproveConfidential,\n defaultAccountState: this.params.defaultAccountState\n })\n } else if (this.params.enableTransferFees) {\n signature = await this.module.createMintWithTransferFees({\n signer: this.params.signer!,\n agentAddress: this.params.agentAddress!,\n decimals: this.params.decimals!,\n transferFeeBasisPoints: this.params.transferFeeBasisPoints!,\n maxFee: this.params.maxFee!\n })\n } else if (this.params.enableConfidentialTransfers) {\n signature = await this.module.createMintWithConfidentialTransfers({\n signer: this.params.signer!,\n agentAddress: this.params.agentAddress!,\n decimals: this.params.decimals!,\n autoApproveNewAccounts: this.params.autoApproveConfidential\n })\n } else if (this.params.enableInterestBearing) {\n signature = await this.module.createMintWithInterestBearing({\n signer: this.params.signer!,\n agentAddress: this.params.agentAddress!,\n decimals: this.params.decimals!,\n interestRate: this.params.interestRate!\n })\n } else {\n // Basic mint\n signature = await this.module.createMint({\n signer: this.params.signer!,\n agentAddress: this.params.agentAddress!,\n decimals: this.params.decimals!,\n freezeAuthority: this.params.freezeAuthority\n })\n }\n \n const address = `mint_${this.params.agentAddress}_${this.params.decimals}` as Address\n return { address, signature }\n }\n\n withSigner(signer: TransactionSigner): this {\n this.params.signer = signer\n return this\n }\n}\n\n/**\n * Token2022 query helper\n */\nclass Token2022Query {\n constructor(private module: Token2022Module) {}\n\n async allMints() {\n return this.module.getAllMints()\n }\n\n async mintsByAuthority(authority: Address) {\n return this.module.getMintsByAuthority(authority)\n }\n}\n\n// H2A Communication builders have been removed - use A2A (Agent-to-Agent) instructions instead\n\n// =====================================================\n// CONVENIENCE FUNCTIONS\n// =====================================================\n\n/**\n * Convert SOL to lamports\n */\nexport function sol(amount: number): bigint {\n return BigInt(Math.floor(amount * 1_000_000_000))\n}\n\n/**\n * Convert lamports to SOL\n */\nexport function lamportsToSol(lamports: bigint): number {\n return Number(lamports) / 1_000_000_000\n}\n\n// Default export for easy importing\nexport default GhostSpeakClient"]}