{"version":3,"file":"createHelius.eager.cjs","sources":["../../../../src/rpc/createHelius.eager.ts"],"sourcesContent":["import {\n  createDefaultRpcTransport,\n  createRpc,\n  createSolanaRpcApi,\n  DEFAULT_RPC_CONFIG,\n  Rpc,\n  SolanaRpcApi,\n} from \"@solana/kit\";\nimport { wrapAutoSend } from \"./wrapAutoSend\";\nimport { makeRpcCaller } from \"./caller\";\nimport { getSDKHeaders } from \"../http\";\n\nimport { GetAssetFn, makeGetAsset } from \"./methods/getAsset\";\nimport { GetAssetBatchFn, makeGetAssetBatch } from \"./methods/getAssetBatch\";\nimport { GetAssetProofFn, makeGetAssetProof } from \"./methods/getAssetProof\";\nimport {\n  GetAssetProofBatchFn,\n  makeGetAssetProofBatch,\n} from \"./methods/getAssetProofBatch\";\nimport {\n  GetAssetsByAuthorityFn,\n  makeGetAssetsByAuthority,\n} from \"./methods/getAssetsByAuthority\";\nimport {\n  GetAssetsByCreatorFn,\n  makeGetAssetsByCreator,\n} from \"./methods/getAssetsByCreator\";\nimport {\n  GetAssetsByGroupFn,\n  makeGetAssetsByGroup,\n} from \"./methods/getAssetsByGroup\";\nimport {\n  GetPriorityFeeEstimateFn,\n  makeGetPriorityFeeEstimate,\n} from \"./methods/getPriorityFeeEstimate\";\n\nimport {\n  makeWebhookClientEager,\n  type WebhookClient,\n} from \"../webhooks/client.eager\";\nimport {\n  makeWalletClientEager,\n  type WalletClient,\n} from \"../wallet/client.eager\";\nimport {\n  GetAssetsByOwnerFn,\n  makeGetAssetsByOwner,\n} from \"./methods/getAssetsByOwner\";\nimport { GetNftEditionsFn, makeGetNftEditions } from \"./methods/getNftEditions\";\nimport {\n  GetSignaturesForAssetFn,\n  makeGetSignaturesForAsset,\n} from \"./methods/getSignaturesForAsset\";\nimport {\n  GetTokenAccountsFn,\n  makeGetTokenAccounts,\n} from \"./methods/getTokenAccounts\";\nimport { makeSearchAssets, SearchAssetsFn } from \"./methods/searchAssets\";\nimport {\n  EnhancedTxClient,\n  makeEnhancedTxClientEager,\n} from \"../enhanced/client.eager\";\nimport { ResolvedHeliusRpcApi } from \"./heliusRpcApi\";\nimport {\n  makeTxHelpersEager,\n  TxHelpersEager,\n} from \"../transactions/client.eager\";\nimport {\n  GetProgramAccountsV2Fn,\n  makeGetProgramAccountsV2,\n} from \"./methods/getProgramAccountsV2\";\nimport {\n  GetAllProgramAccountsFn,\n  makeGetAllProgramAccounts,\n} from \"./methods/getAllProgramAccounts\";\nimport {\n  GetTokenAccountsByOwnerV2Fn,\n  makeGetTokenAccountsByOwnerV2,\n} from \"./methods/getTokenAccountsByOwnerV2\";\nimport {\n  GetAllTokenAccountsByOwnerFn,\n  makeGetAllTokenAccountsByOwner,\n} from \"./methods/getAllTokenAccountsByOwner\";\nimport {\n  GetTransactionsForAddressFn,\n  makeGetTransactionsForAddress,\n} from \"./methods/getTransactionsForAddress\";\nimport type { HeliusRpcOptions } from \"./types\";\n\nexport interface HeliusClientEager {\n  raw: ResolvedHeliusRpcApi;\n\n  getAsset: GetAssetFn;\n  getAssetBatch: GetAssetBatchFn;\n  getAssetProof: GetAssetProofFn;\n  getAssetProofBatch: GetAssetProofBatchFn;\n  getAssetsByAuthority: GetAssetsByAuthorityFn;\n  getAssetsByCreator: GetAssetsByCreatorFn;\n  getAssetsByGroup: GetAssetsByGroupFn;\n  getAssetsByOwner: GetAssetsByOwnerFn;\n  getNftEditions: GetNftEditionsFn;\n  getSignaturesForAsset: GetSignaturesForAssetFn;\n  getTokenAccounts: GetTokenAccountsFn;\n  searchAssets: SearchAssetsFn;\n\n  getPriorityFeeEstimate: GetPriorityFeeEstimateFn;\n\n  getProgramAccountsV2: GetProgramAccountsV2Fn;\n  getAllProgramAccounts: GetAllProgramAccountsFn;\n  getTokenAccountsByOwnerV2: GetTokenAccountsByOwnerV2Fn;\n  getAllTokenAccountsByOwner: GetAllTokenAccountsByOwnerFn;\n  getTransactionsForAddress: GetTransactionsForAddressFn;\n\n  webhooks: WebhookClient;\n\n  enhanced: EnhancedTxClient;\n\n  tx: TxHelpersEager;\n\n  wallet: WalletClient;\n}\n\nexport const createHeliusEager = ({\n  apiKey,\n  network = \"mainnet\",\n  rebateAddress,\n  baseUrl,\n  userAgent,\n}: HeliusRpcOptions): HeliusClientEager => {\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 transport = createDefaultRpcTransport({\n    url,\n    headers: getSDKHeaders(userAgent),\n  });\n\n  let baseRpc = createRpc({ api: solanaApi, transport });\n  // Cast to any because I cba to go down this type rabbit hole\n  const raw = wrapAutoSend(baseRpc) as any;\n\n  const call = makeRpcCaller(transport);\n\n  return {\n    raw,\n\n    // DAS\n    getAsset: makeGetAsset(call),\n    getAssetBatch: makeGetAssetBatch(call),\n    getAssetProof: makeGetAssetProof(call),\n    getAssetProofBatch: makeGetAssetProofBatch(call),\n    getAssetsByAuthority: makeGetAssetsByAuthority(call),\n    getAssetsByCreator: makeGetAssetsByCreator(call),\n    getAssetsByGroup: makeGetAssetsByGroup(call),\n    getAssetsByOwner: makeGetAssetsByOwner(call),\n    getNftEditions: makeGetNftEditions(call),\n    getTokenAccounts: makeGetTokenAccounts(call),\n    getSignaturesForAsset: makeGetSignaturesForAsset(call),\n    searchAssets: makeSearchAssets(call),\n\n    // Priority Fee API\n    getPriorityFeeEstimate: makeGetPriorityFeeEstimate(call),\n\n    // V2 methods\n    getProgramAccountsV2: makeGetProgramAccountsV2(call),\n    getAllProgramAccounts: makeGetAllProgramAccounts(call),\n    getTokenAccountsByOwnerV2: makeGetTokenAccountsByOwnerV2(call),\n    getAllTokenAccountsByOwner: makeGetAllTokenAccountsByOwner(call),\n    getTransactionsForAddress: makeGetTransactionsForAddress(call),\n\n    // Webhooks\n    get webhooks() {\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      return makeWebhookClientEager(apiKey, userAgent);\n    },\n\n    // Enhanced Transactions\n    get enhanced() {\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      return makeEnhancedTxClientEager(apiKey, network, userAgent);\n    },\n\n    // Transaction helpers\n    tx: makeTxHelpersEager(baseRpc as unknown as Rpc<SolanaRpcApi>),\n\n    // Wallet API\n    get wallet() {\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      return makeWalletClientEager(apiKey, userAgent);\n    },\n  };\n};\n"],"names":["createSolanaRpcApi","DEFAULT_RPC_CONFIG","createDefaultRpcTransport","getSDKHeaders","createRpc","wrapAutoSend","makeRpcCaller","makeGetAsset","makeGetAssetBatch","makeGetAssetProof","makeGetAssetProofBatch","makeGetAssetsByAuthority","makeGetAssetsByCreator","makeGetAssetsByGroup","makeGetAssetsByOwner","makeGetNftEditions","makeGetTokenAccounts","makeGetSignaturesForAsset","makeSearchAssets","makeGetPriorityFeeEstimate","makeGetProgramAccountsV2","makeGetAllProgramAccounts","makeGetTokenAccountsByOwnerV2","makeGetAllTokenAccountsByOwner","makeGetTransactionsForAddress","makeWebhookClientEager","makeEnhancedTxClientEager","makeTxHelpersEager","makeWalletClientEager"],"mappings":"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"}