38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
// To connect to a public cluster, set `export LIVE=1` in your
|
|
// environment. By default, `LIVE=1` will connect to the devnet cluster.
|
|
|
|
import { clusterApiUrl, Cluster } from "@solana/web3.js";
|
|
import dotenv from "dotenv";
|
|
|
|
function chooseCluster(): Cluster | undefined {
|
|
dotenv.config();
|
|
if (!process.env.LIVE) return;
|
|
switch (process.env.CLUSTER) {
|
|
case "devnet":
|
|
case "testnet":
|
|
case "mainnet-beta": {
|
|
return process.env.CLUSTER;
|
|
}
|
|
}
|
|
if (process.env.CLUSTER) {
|
|
throw new Error(
|
|
`Unknown cluster "${process.env.CLUSTER}", check the .env file`
|
|
);
|
|
} else {
|
|
throw new Error("CLUSTER is not specified, check the .env file");
|
|
}
|
|
}
|
|
|
|
export const cluster = chooseCluster();
|
|
|
|
export const url =
|
|
process.env.RPC_URL ||
|
|
(process.env.LIVE ? clusterApiUrl(cluster, false) : "http://localhost:8899");
|
|
|
|
export const urlTls =
|
|
process.env.RPC_URL ||
|
|
(process.env.LIVE ? clusterApiUrl(cluster, true) : "http://localhost:8899");
|
|
|
|
export const walletUrl =
|
|
process.env.WALLET_URL || "https://solana-example-webwallet.herokuapp.com/";
|