Class: Solrengine::Rpc::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/solrengine/rpc/configuration.rb

Constant Summary collapse

NETWORKS =
%w[mainnet devnet testnet].freeze
DEFAULT_RPC_URLS =
{
  "mainnet" => "https://api.mainnet-beta.solana.com",
  "devnet"  => "https://api.devnet.solana.com",
  "testnet" => "https://api.testnet.solana.com"
}.freeze
DEFAULT_WS_URLS =
{
  "mainnet" => "wss://api.mainnet-beta.solana.com",
  "devnet"  => "wss://api.devnet.solana.com",
  "testnet" => "wss://api.testnet.solana.com"
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#networkObject



20
21
22
# File 'lib/solrengine/rpc/configuration.rb', line 20

def network
  @network ||= ENV.fetch("SOLANA_NETWORK", "mainnet")
end

#rpc_urlObject



24
25
26
# File 'lib/solrengine/rpc/configuration.rb', line 24

def rpc_url
  @rpc_url ||= env_rpc_url || DEFAULT_RPC_URLS[network]
end

#ws_urlObject



28
29
30
# File 'lib/solrengine/rpc/configuration.rb', line 28

def ws_url
  @ws_url ||= env_ws_url || DEFAULT_WS_URLS[network]
end

Instance Method Details

#explorer_baseObject



36
37
38
# File 'lib/solrengine/rpc/configuration.rb', line 36

def explorer_base
  mainnet? ? "https://solscan.io" : "https://explorer.solana.com"
end

#explorer_clusterObject



40
41
42
# File 'lib/solrengine/rpc/configuration.rb', line 40

def explorer_cluster
  mainnet? ? "" : "?cluster=#{network}"
end

#mainnet?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/solrengine/rpc/configuration.rb', line 32

def mainnet?
  network == "mainnet"
end