UNPKG

@robertprp/intents-sdk

Version:

Shogun Network Intent-based cross-chain swaps SDK

38 lines (33 loc) 1.13 kB
import { createSolanaRpc, createSolanaRpcSubscriptions, type Rpc, type RpcSubscriptions, type SolanaRpcApiMainnet, type SolanaRpcSubscriptionsApi, sendAndConfirmTransactionFactory, } from '@solana/kit'; import type { SolanaConfig } from '../../config.js'; export type SolanaClient = { privateKey: string; rpc: Rpc<SolanaRpcApiMainnet>; rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>; sendAndConfirmTransaction: ReturnType<typeof sendAndConfirmTransactionFactory>; }; export function createSolanaClient(config: SolanaConfig): SolanaClient { const rpc = config.rpcProviderUrl ? createSolanaRpc(config.rpcProviderUrl) : getDefaultSolanaRPC(); const rpcSubscriptions = createSolanaRpcSubscriptions('wss://api.mainnet-beta.solana.com'); const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ rpc, rpcSubscriptions, }); return { privateKey: config.privateKey, rpc, rpcSubscriptions, sendAndConfirmTransaction, }; } export function getDefaultSolanaRPC(): Rpc<SolanaRpcApiMainnet> { return createSolanaRpc('https://api.mainnet-beta.solana.com'); }