{"version":3,"file":"index.cjs","sources":["../../../../src/rpc/index.ts"],"sourcesContent":["import {\n  createDefaultRpcTransport,\n  createRpc,\n  createSolanaRpcApi,\n  DEFAULT_RPC_CONFIG,\n} from \"@solana/kit\";\n\nimport { getSDKHeaders } from \"../http\";\n\nimport { wrapAutoSend } from \"./wrapAutoSend\";\nimport type { WebhookClient } from \"../webhooks/client\";\nimport type {\n  CreateWebhookRequest,\n  UpdateWebhookRequest,\n  Webhook,\n} from \"../types/webhooks\";\nimport { defineLazyMethod, defineLazyNamespace } from \"./lazy\";\nimport { makeRpcCaller } from \"./caller\";\nimport type { GetAssetFn } from \"./methods/getAsset\";\nimport type { GetAssetBatchFn } from \"./methods/getAssetBatch\";\nimport type { GetAssetProofFn } from \"./methods/getAssetProof\";\nimport type { GetAssetProofBatchFn } from \"./methods/getAssetProofBatch\";\nimport type { GetAssetsByAuthorityFn } from \"./methods/getAssetsByAuthority\";\nimport type { GetAssetsByCreatorFn } from \"./methods/getAssetsByCreator\";\nimport type { GetAssetsByGroupFn } from \"./methods/getAssetsByGroup\";\nimport type { GetPriorityFeeEstimateFn } from \"./methods/getPriorityFeeEstimate\";\nimport type { GetAssetsByOwnerFn } from \"./methods/getAssetsByOwner\";\nimport type { GetNftEditionsFn } from \"./methods/getNftEditions\";\nimport type { GetSignaturesForAssetFn } from \"./methods/getSignaturesForAsset\";\nimport type { GetTokenAccountsFn } from \"./methods/getTokenAccounts\";\nimport type { SearchAssetsFn } from \"./methods/searchAssets\";\nimport type { GetProgramAccountsV2Fn } from \"./methods/getProgramAccountsV2\";\nimport type { GetAllProgramAccountsFn } from \"./methods/getAllProgramAccounts\";\nimport type { GetTokenAccountsByOwnerV2Fn } from \"./methods/getTokenAccountsByOwnerV2\";\nimport type { GetAllTokenAccountsByOwnerFn } from \"./methods/getAllTokenAccountsByOwner.js\";\nimport type { GetTransactionsForAddressFn } from \"./methods/getTransactionsForAddress\";\nimport type { EnhancedTxClientLazy } from \"../enhanced\";\nimport { TxHelpersLazy } from \"../transactions\";\nimport type { ResolvedHeliusRpcApi } from \"./heliusRpcApi\";\nimport { makeWsAsync, WsAsync } from \"../websockets/wsAsync\";\nimport { StakeClientLazy } from \"../staking/client\";\nimport { ZkClientLazy } from \"../zk/client\";\nimport type { WalletClient } from \"../wallet/client\";\nimport type { AuthClient } from \"../auth/types\";\nimport type { HeliusRpcOptions } from \"./types\";\n\nexport type { HeliusRpcOptions };\n\n/**\n * The main Helius SDK client. Provides access to all Helius and Solana RPC\n * methods, DAS (Digital Asset Standard) queries, priority fee estimation,\n * webhooks, enhanced transaction parsing, smart transaction helpers,\n * WebSocket subscriptions, staking, and ZK compression.\n *\n * All standard Solana RPC methods (e.g. `getBalance`, `getSlot`) are available\n * directly on this object via a Proxy that delegates to the underlying\n * `@solana/kit` RPC client.\n *\n * Sub-clients (`webhooks`, `enhanced`, `tx`, `ws`, `stake`, `zk`, `wallet`)\n * are lazily loaded on first access to keep the initial bundle minimal.\n */\nexport type HeliusClient = ResolvedHeliusRpcApi & {\n  /** The unwrapped Solana RPC client for direct access to standard RPC methods. */\n  raw: ResolvedHeliusRpcApi;\n\n  // ── DAS (Digital Asset Standard) ──────────────────────────────────\n\n  /** Fetch a single asset by its ID (mint address). */\n  getAsset: GetAssetFn;\n  /** Fetch multiple assets by their IDs in a single batch request. */\n  getAssetBatch: GetAssetBatchFn;\n  /** Get the Merkle proof for a compressed asset. */\n  getAssetProof: GetAssetProofFn;\n  /** Get Merkle proofs for multiple compressed assets in a batch. */\n  getAssetProofBatch: GetAssetProofBatchFn;\n  /** List assets by their update authority address. */\n  getAssetsByAuthority: GetAssetsByAuthorityFn;\n  /** List assets created by a specific creator address. */\n  getAssetsByCreator: GetAssetsByCreatorFn;\n  /** List assets belonging to a specific group (e.g. a collection). */\n  getAssetsByGroup: GetAssetsByGroupFn;\n  /** List all assets owned by a wallet address. */\n  getAssetsByOwner: GetAssetsByOwnerFn;\n  /** Get transaction signatures related to an asset. */\n  getSignaturesForAsset: GetSignaturesForAssetFn;\n  /** Get print editions for an NFT master edition. */\n  getNftEditions: GetNftEditionsFn;\n  /** Get token accounts filtered by mint or owner. */\n  getTokenAccounts: GetTokenAccountsFn;\n  /** Search for assets using flexible filters (owner, creator, collection, etc.). */\n  searchAssets: SearchAssetsFn;\n\n  // ── Priority Fee API ──────────────────────────────────────────────\n\n  /** Estimate priority fees for a transaction or set of account keys. */\n  getPriorityFeeEstimate: GetPriorityFeeEstimateFn;\n\n  // ── V2 RPC Methods ────────────────────────────────────────────────\n\n  /** Paginated version of `getProgramAccounts` with cursor-based pagination. */\n  getProgramAccountsV2: GetProgramAccountsV2Fn;\n  /** Auto-paginating variant that fetches all program accounts across pages. */\n  getAllProgramAccounts: GetAllProgramAccountsFn;\n  /** Paginated version of `getTokenAccountsByOwner` with cursor-based pagination. */\n  getTokenAccountsByOwnerV2: GetTokenAccountsByOwnerV2Fn;\n  /** Auto-paginating variant that fetches all token accounts for an owner. */\n  getAllTokenAccountsByOwner: GetAllTokenAccountsByOwnerFn;\n  /** Get transactions for a specific address with rich filtering and pagination. */\n  getTransactionsForAddress: GetTransactionsForAddressFn;\n\n  // ── Webhooks ──────────────────────────────────────────────────────\n\n  /** Webhook management client. Requires an API key. */\n  webhooks: {\n    /** Create a new webhook subscription. */\n    create(params: CreateWebhookRequest): Promise<Webhook>;\n    /** Get a webhook by its ID. */\n    get(webhookID: string): Promise<Webhook>;\n    /** List all webhooks for the current API key. */\n    getAll(): Promise<Webhook[]>;\n    /** Update an existing webhook. */\n    update(webhookID: string, params: UpdateWebhookRequest): Promise<Webhook>;\n    /** Delete a webhook by its ID. */\n    delete(webhookID: string): Promise<boolean>;\n  } & WebhookClient;\n\n  /** Enhanced transaction parsing client. Requires an API key. */\n  enhanced: EnhancedTxClientLazy;\n\n  /** Smart transaction helpers for building, signing, and sending transactions with automatic compute budget and priority fees. */\n  tx: TxHelpersLazy;\n\n  /** WebSocket RPC subscriptions (logs, slots, signatures, programs, accounts). */\n  ws: WsAsync;\n\n  /** Helius native staking helpers (stake, unstake, withdraw to the Helius validator). */\n  stake: StakeClientLazy;\n\n  /** ZK compression RPC methods for Light Protocol compressed accounts and tokens. */\n  zk: ZkClientLazy;\n\n  /** Wallet API client. Requires an API key. */\n  wallet: WalletClient;\n\n  /** Auth client for agentic signup, checkout, and account management. */\n  auth: AuthClient;\n};\n\n/**\n * Create a Helius SDK client.\n *\n * @example\n * ```ts\n * import { createHelius } from \"helius-sdk\";\n *\n * const helius = createHelius({ apiKey: \"YOUR_API_KEY\" });\n *\n * // Standard Solana RPC\n * const balance = await helius.getBalance(\"So11...\").send();\n *\n * // DAS — fetch an asset\n * const asset = await helius.getAsset({ id: \"MINT_ADDRESS\" });\n *\n * // Smart transactions\n * const sig = await helius.tx.sendSmartTransaction({ signers, instructions });\n * ```\n */\nexport const createHelius = ({\n  apiKey,\n  network = \"mainnet\",\n  rebateAddress,\n  baseUrl,\n  userAgent,\n}: HeliusRpcOptions): HeliusClient => {\n  // Use custom baseUrl if provided, otherwise construct from network\n  const resolvedBaseUrl = baseUrl ?? `https://${network}.helius-rpc.com/`;\n\n  // Build query parameters\n  const queryParams: string[] = [];\n  if (apiKey) {\n    queryParams.push(`api-key=${apiKey}`);\n  }\n  if (rebateAddress) {\n    queryParams.push(`rebate-address=${rebateAddress}`);\n  }\n\n  const queryString = queryParams.length > 0 ? `?${queryParams.join(\"&\")}` : \"\";\n  const url = `${resolvedBaseUrl}${queryString}`;\n\n  const solanaApi = createSolanaRpcApi(DEFAULT_RPC_CONFIG);\n  const baseTransport = createDefaultRpcTransport({\n    url,\n    headers: getSDKHeaders(userAgent),\n  });\n  const transport = async <TResponse>(\n    request: Parameters<typeof baseTransport>[0]\n  ): Promise<TResponse> => {\n    const payload = {\n      ...(request.payload as Record<string, unknown>),\n      id: \"helius-sdk\",\n    };\n\n    const modifiedRequest = {\n      ...request,\n      payload,\n    };\n\n    return baseTransport(modifiedRequest) as Promise<TResponse>;\n  };\n\n  const baseRpc = createRpc({ api: solanaApi, transport });\n  const raw: ResolvedHeliusRpcApi = wrapAutoSend(baseRpc);\n\n  const wsUrl = new URL(url);\n  wsUrl.protocol = \"wss:\";\n\n  // Lazily create when/if transaction helpers need it\n  let rpcSubscriptionsPromise:\n    | ReturnType<typeof import(\"@solana/kit\").createSolanaRpcSubscriptions>\n    | undefined;\n\n  const getRpcSubscriptions = async () => {\n    if (rpcSubscriptionsPromise) return rpcSubscriptionsPromise;\n    const { createSolanaRpcSubscriptions } = await import(\"@solana/kit\");\n    rpcSubscriptionsPromise = createSolanaRpcSubscriptions(wsUrl.toString());\n    return rpcSubscriptionsPromise;\n  };\n\n  // Lightweight, no-PendingRpcRequest caller for custom DAS/webhook methods\n  const call = makeRpcCaller(transport);\n\n  // The object we’ll populate lazily\n  const client: any = { raw };\n\n  defineLazyNamespace<HeliusClient, WsAsync>(client, \"ws\", async () => {\n    // Promisified facade; individual methods return Promise<...>\n    // so: await helius.ws.logsNotifications(...).subscribe(...) and no stupid TypeScript warnings\n    const ws = makeWsAsync(wsUrl.toString());\n    client.close = () => ws.close();\n    return ws;\n  });\n\n  defineLazyMethod<HeliusClient, GetAssetFn>(client, \"getAsset\", async () => {\n    const { makeGetAsset } = await import(\"./methods/getAsset.js\");\n    return makeGetAsset(call);\n  });\n\n  defineLazyMethod<HeliusClient, GetAssetBatchFn>(\n    client,\n    \"getAssetBatch\",\n    async () => {\n      const { makeGetAssetBatch } = await import(\"./methods/getAssetBatch.js\");\n      return makeGetAssetBatch(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAssetProofFn>(\n    client,\n    \"getAssetProof\",\n    async () => {\n      const { makeGetAssetProof } = await import(\"./methods/getAssetProof.js\");\n      return makeGetAssetProof(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAssetProofBatchFn>(\n    client,\n    \"getAssetProofBatch\",\n    async () => {\n      const { makeGetAssetProofBatch } = await import(\n        \"./methods/getAssetProofBatch.js\"\n      );\n      return makeGetAssetProofBatch(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAssetsByAuthorityFn>(\n    client,\n    \"getAssetsByAuthority\",\n    async () => {\n      const { makeGetAssetsByAuthority } = await import(\n        \"./methods/getAssetsByAuthority.js\"\n      );\n      return makeGetAssetsByAuthority(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAssetsByCreatorFn>(\n    client,\n    \"getAssetsByCreator\",\n    async () => {\n      const { makeGetAssetsByCreator } = await import(\n        \"./methods/getAssetsByCreator.js\"\n      );\n      return makeGetAssetsByCreator(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAssetsByGroupFn>(\n    client,\n    \"getAssetsByGroup\",\n    async () => {\n      const { makeGetAssetsByGroup } = await import(\n        \"./methods/getAssetsByGroup.js\"\n      );\n      return makeGetAssetsByGroup(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAssetsByOwnerFn>(\n    client,\n    \"getAssetsByOwner\",\n    async () => {\n      const { makeGetAssetsByOwner } = await import(\n        \"./methods/getAssetsByOwner.js\"\n      );\n      return makeGetAssetsByOwner(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetNftEditionsFn>(\n    client,\n    \"getNftEditions\",\n    async () => {\n      const { makeGetNftEditions } = await import(\n        \"./methods/getNftEditions.js\"\n      );\n      return makeGetNftEditions(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetSignaturesForAssetFn>(\n    client,\n    \"getSignaturesForAsset\",\n    async () => {\n      const { makeGetSignaturesForAsset } = await import(\n        \"./methods/getSignaturesForAsset.js\"\n      );\n      return makeGetSignaturesForAsset(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetTokenAccountsFn>(\n    client,\n    \"getTokenAccounts\",\n    async () => {\n      const { makeGetTokenAccounts } = await import(\n        \"./methods/getTokenAccounts.js\"\n      );\n      return makeGetTokenAccounts(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, SearchAssetsFn>(\n    client,\n    \"searchAssets\",\n    async () => {\n      const { makeSearchAssets } = await import(\"./methods/searchAssets.js\");\n      return makeSearchAssets(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetPriorityFeeEstimateFn>(\n    client,\n    \"getPriorityFeeEstimate\",\n    async () => {\n      const { makeGetPriorityFeeEstimate } = await import(\n        \"./methods/getPriorityFeeEstimate.js\"\n      );\n      return makeGetPriorityFeeEstimate(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetProgramAccountsV2Fn>(\n    client,\n    \"getProgramAccountsV2\",\n    async () => {\n      const { makeGetProgramAccountsV2 } = await import(\n        \"./methods/getProgramAccountsV2.js\"\n      );\n      return makeGetProgramAccountsV2(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAllProgramAccountsFn>(\n    client,\n    \"getAllProgramAccounts\",\n    async () => {\n      const { makeGetAllProgramAccounts } = await import(\n        \"./methods/getAllProgramAccounts.js\"\n      );\n      return makeGetAllProgramAccounts(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetTokenAccountsByOwnerV2Fn>(\n    client,\n    \"getTokenAccountsByOwnerV2\",\n    async () => {\n      const { makeGetTokenAccountsByOwnerV2 } = await import(\n        \"./methods/getTokenAccountsByOwnerV2.js\"\n      );\n      return makeGetTokenAccountsByOwnerV2(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetAllTokenAccountsByOwnerFn>(\n    client,\n    \"getAllTokenAccountsByOwner\",\n    async () => {\n      const { makeGetAllTokenAccountsByOwner } = await import(\n        \"./methods/getAllTokenAccountsByOwner.js\"\n      );\n      return makeGetAllTokenAccountsByOwner(call);\n    }\n  );\n\n  defineLazyMethod<HeliusClient, GetTransactionsForAddressFn>(\n    client,\n    \"getTransactionsForAddress\",\n    async () => {\n      const { makeGetTransactionsForAddress } = await import(\n        \"./methods/getTransactionsForAddress.js\"\n      );\n      return makeGetTransactionsForAddress(call);\n    }\n  );\n\n  defineLazyNamespace<HeliusClient, WebhookClient>(\n    client,\n    \"webhooks\",\n    async () => {\n      if (!apiKey) {\n        throw new Error(\n          \"An API key is required to use webhooks/enhanced transactions. Provide apiKey in createHelius() options.\"\n        );\n      }\n      // This one import is enough since the sub-methods in the webhook client\n      // are themselves lazily imported inside makeWebhookClient\n      const { makeWebhookClient } = await import(\"../webhooks/client.js\");\n      return makeWebhookClient(apiKey, userAgent);\n    }\n  );\n\n  defineLazyNamespace<HeliusClient, EnhancedTxClientLazy>(\n    client,\n    \"enhanced\",\n    async () => {\n      if (!apiKey) {\n        throw new Error(\n          \"An API key is required to use webhooks/enhanced transactions. Provide apiKey in createHelius() options.\"\n        );\n      }\n      const { makeEnhancedTxClientLazy } = await import(\"../enhanced\");\n      return makeEnhancedTxClientLazy(apiKey, network, userAgent);\n    }\n  );\n\n  defineLazyNamespace<HeliusClient, TxHelpersLazy>(client, \"tx\", async () => {\n    const { makeTxHelpersLazy } = await import(\"../transactions\");\n    const { makeGetPriorityFeeEstimate } = await import(\n      \"./methods/getPriorityFeeEstimate.js\"\n    );\n    const getPriorityFeeEstimate = makeGetPriorityFeeEstimate(call);\n\n    return makeTxHelpersLazy(\n      baseRpc,\n      getPriorityFeeEstimate,\n      await getRpcSubscriptions()\n    );\n  });\n\n  defineLazyNamespace<HeliusClient, StakeClientLazy>(\n    client,\n    \"stake\",\n    async () => {\n      const { makeStakeClientLazy } = await import(\"../staking/client.js\");\n      return makeStakeClientLazy(baseRpc);\n    }\n  );\n\n  defineLazyNamespace<HeliusClient, ZkClientLazy>(client, \"zk\", async () => {\n    const { makeZkClientLazy } = await import(\"../zk/client\");\n    return makeZkClientLazy(call);\n  });\n\n  defineLazyNamespace<HeliusClient, WalletClient>(\n    client,\n    \"wallet\",\n    async () => {\n      if (!apiKey) {\n        throw new Error(\n          \"An API key is required to use the Wallet API. Provide apiKey in createHelius() options.\"\n        );\n      }\n      const { makeWalletClient } = await import(\"../wallet/client.js\");\n      return makeWalletClient(apiKey, userAgent);\n    }\n  );\n\n  defineLazyNamespace<HeliusClient, AuthClient>(client, \"auth\", async () => {\n    const { makeAuthClient } = await import(\"../auth/client.js\");\n    return makeAuthClient(userAgent);\n  });\n\n  // So we can send standard RPC calls\n  const merged = new Proxy(client as any, {\n    get(target, prop, receiver) {\n      // Prefer helper / DAS / tx / webhooks / enhanced\n      if (prop in target) return Reflect.get(target, prop, receiver);\n      // Fallback to vanilla Solana RPC (already wrapped by wrapAutoSend)\n      return Reflect.get(raw, prop, receiver);\n    },\n    has(target, prop) {\n      return prop in target || prop in raw;\n    },\n  });\n\n  return merged as HeliusClient;\n};\n"],"names":["createSolanaRpcApi","DEFAULT_RPC_CONFIG","createDefaultRpcTransport","getSDKHeaders","createRpc","wrapAutoSend","makeRpcCaller","defineLazyNamespace","makeWsAsync","defineLazyMethod"],"mappings":"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"}