@sega-so/sega-sdk
Version:
An SDK for building applications on top of SEGA.
35 lines (28 loc) • 1.27 kB
text/typescript
import { Connection, PublicKey } from '@solana/web3.js'
import { DEVNET_PROGRAM_ID, SOLANA_PROGRAM_ID, SONIC_PROGRAM_ID } from './programId'
export enum Network {
SonicMainnet = 'SonicMainnet',
SonicTestnetV1 = 'SonicTestnetV1',
SolanaMainnet = 'SolanaMainnet',
}
export function getConnection(networkName: string, isArchive = true): Connection {
return new Connection(isArchive ? archiveRpcs[networkName] : rpcs[networkName])
}
export function getProgramId(networkName: string): Record<string, PublicKey> {
return programIds[networkName]
}
export const rpcs: Record<Network, string> = {
[]: 'https://api.mainnet-alpha.sonic.game',
[]: 'https://api.testnet.v1.sonic.game',
[]: 'https://api.mainnet-beta.solana.com',
}
export const archiveRpcs: Record<Network, string> = {
[]: 'https://archival-mainnet.sonic.game',
[]: 'https://archival-testnet.sonic.game',
[]: 'https://api.mainnet-beta.solana.com',
}
export const programIds: Record<Network, Record<string, PublicKey>> = {
[]: SONIC_PROGRAM_ID,
[]: DEVNET_PROGRAM_ID,
[]: SOLANA_PROGRAM_ID,
}