Skip to content

Commit

Permalink
chore: env variables for rpcs (#1407)
Browse files Browse the repository at this point in the history
* chore: env variables for rpcs

* Remove console log
  • Loading branch information
guibescos authored Mar 29, 2024
1 parent 77db9ee commit a888ba3
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 78 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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])

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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'

Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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:
'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/',
},
process.env.NEXT_PUBLIC_MAINNET_RPC || getPythClusterApiUrl('mainnet-beta'),
'https://pyth-network.rpcpool.com/' +
(process.env.NEXT_PUBLIC_RPC_POOL_TOKEN || ''),
'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) {
Expand All @@ -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)
}
}

0 comments on commit a888ba3

Please sign in to comment.