chore: env variables for rpcs (#1407)

* chore: env variables for rpcs

* Remove console log
This commit is contained in:
guibescos 2024-03-29 17:51:56 +00:00 committed by GitHub
parent 77db9ee53b
commit a888ba318c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 38 additions and 78 deletions

View File

@ -12,7 +12,7 @@ import {
UPGRADE_MULTISIG,
} from 'xc_admin_common'
import { ClusterContext } from '../contexts/ClusterContext'
import { pythClusterApiUrls } from '../utils/pythClusterApiUrl'
import { deriveWsUrl, pythClusterApiUrls } from '../utils/pythClusterApiUrl'
export interface MultisigHookData {
isLoading: boolean
@ -69,9 +69,9 @@ export const useMultisig = (): MultisigHookData => {
const connection = useMemo(() => {
const urls = pythClusterApiUrls(multisigCluster)
return new Connection(urls[urlsIndex].rpcUrl, {
return new Connection(urls[urlsIndex], {
commitment: 'confirmed',
wsEndpoint: urls[urlsIndex].wsUrl,
wsEndpoint: deriveWsUrl(urls[urlsIndex]),
})
}, [urlsIndex, multisigCluster])

View File

@ -13,7 +13,7 @@ import { Connection, PublicKey } from '@solana/web3.js'
import assert from 'assert'
import { useContext, useEffect, useRef, useState } from 'react'
import { ClusterContext } from '../contexts/ClusterContext'
import { pythClusterApiUrls } from '../utils/pythClusterApiUrl'
import { deriveWsUrl, pythClusterApiUrls } from '../utils/pythClusterApiUrl'
const ONES = '11111111111111111111111111111111'
@ -67,9 +67,9 @@ const usePyth = (): PythHookData => {
useEffect(() => {
let cancelled = false
const urls = pythClusterApiUrls(cluster)
const connection = new Connection(urls[urlsIndex].rpcUrl, {
const connection = new Connection(urls[urlsIndex], {
commitment: 'confirmed',
wsEndpoint: urls[urlsIndex].wsUrl,
wsEndpoint: deriveWsUrl(urls[urlsIndex]),
})
connectionRef.current = connection

View File

@ -1,88 +1,40 @@
import { PythCluster } from '@pythnetwork/client/lib/cluster'
import {
PythCluster,
getPythClusterApiUrl,
} from '@pythnetwork/client/lib/cluster'
const CLUSTER_URLS: Record<PythCluster, any> = {
const CLUSTER_URLS: Record<PythCluster, string[]> = {
'mainnet-beta': [
{
rpcUrl: 'http://mainnet.xyz.pyth.network',
wsUrl: 'ws://mainnet.xyz.pyth.network',
},
{
rpcUrl:
process.env.NEXT_PUBLIC_MAINNET_RPC || getPythClusterApiUrl('mainnet-beta'),
'https://pyth-network.rpcpool.com/' +
(process.env.NEXT_PUBLIC_RPC_POOL_TOKEN || ''),
wsUrl:
'wss://pyth-network.rpcpool.com/' +
(process.env.NEXT_PUBLIC_RPC_POOL_TOKEN || ''),
},
{
rpcUrl: 'http://pyth-rpc1.certus.one:8899/',
wsUrl: 'ws://pyth-rpc1.certus.one:8900/',
},
{
rpcUrl: 'http://pyth-rpc2.certus.one:8899/',
wsUrl: 'ws://pyth-rpc2.certus.one:8900/',
},
{
rpcUrl: 'https://api.mainnet-beta.solana.com/',
wsUrl: 'wss://api.mainnet-beta.solana.com/',
},
'http://pyth-rpc1.certus.one:8899/',
'http://pyth-rpc2.certus.one:8899/',
'https://api.mainnet-beta.solana.com/',
],
devnet: [
{
rpcUrl: 'http://devnet.xyz.pyth.network',
wsUrl: 'ws://devnet.xyz.pyth.network',
},
{
rpcUrl: 'https://api.devnet.solana.com/',
wsUrl: 'wss://api.devnet.solana.com/',
},
process.env.NEXT_PUBLIC_DEVNET_RPC || getPythClusterApiUrl('devnet'),
'https://api.devnet.solana.com/',
],
testnet: [
{
rpcUrl: 'http://testnet.xyz.pyth.network',
wsUrl: 'ws://testnet.xyz.pyth.network',
},
{
rpcUrl: 'https://api.testnet.solana.com/',
wsUrl: 'wss://api.testnet.solana.com/',
},
process.env.NEXT_PUBLIC_TESTNET_RPC || getPythClusterApiUrl('testnet'),
'https://api.testnet.solana.com/',
],
'pythtest-conformance': [
{
rpcUrl: 'http://pythtest.xyz.pyth.network',
wsUrl: 'ws://pythtest.xyz.pyth.network',
},
{
rpcUrl: 'https://api.pythtest.pyth.network/',
wsUrl: 'wss://api.pythtest.pyth.network/',
},
process.env.NEXT_PUBLIC_PYTHTEST_RPC ||
getPythClusterApiUrl('pythtest-conformance'),
'https://api.pythtest.pyth.network/',
],
'pythtest-crosschain': [
{
rpcUrl: 'http://pythtest.xyz.pyth.network',
wsUrl: 'ws://pythtest.xyz.pyth.network',
},
{
rpcUrl: 'https://api.pythtest.pyth.network/',
wsUrl: 'wss://api.pythtest.pyth.network/',
},
process.env.NEXT_PUBLIC_PYTHTEST_RPC ||
getPythClusterApiUrl('pythtest-crosschain'),
'https://api.pythtest.pyth.network/',
],
pythnet: [
{
rpcUrl: 'http://pythnet.xyz.pyth.network',
wsUrl: 'ws://pythnet.xyz.pyth.network',
},
{
rpcUrl: 'https://pythnet.rpcpool.com/',
wsUrl: 'wss://pythnet.rpcpool.com/',
},
],
localnet: [
{
rpcUrl: 'http://localhost:8899/',
wsUrl: 'ws://localhost:8900/',
},
process.env.NEXT_PUBLIC_PYTHNET_RPC || getPythClusterApiUrl('pythnet'),
'https://pythnet.rpcpool.com/',
],
localnet: ['http://localhost:8899/'],
}
export function pythClusterApiUrls(cluster: PythCluster) {
@ -92,3 +44,11 @@ export function pythClusterApiUrls(cluster: PythCluster) {
return []
}
}
export function deriveWsUrl(httpUrl: string) {
if (httpUrl.startsWith('https://')) {
return 'wss://' + httpUrl.slice(8)
} else {
return 'ws://' + httpUrl.slice(7)
}
}