varaconnect
Version:
SDK to connect WalletConnect with Vara Network
55 lines (54 loc) • 1.85 kB
JavaScript
const isVite = typeof import.meta !== "undefined" && typeof import.meta.env !== "undefined";
const getEnv = (key) => {
if (isVite) {
return (import.meta.env[`VITE_${key}`] ||
import.meta.env[`NEXT_PUBLIC_${key}`] ||
import.meta.env[key]);
}
switch (key) {
case "PROJECT_ID":
return process.env.NEXT_PUBLIC_PROJECT_ID;
case "NODE_ADDRESS":
return process.env.NEXT_PUBLIC_NODE_ADDRESS;
case "NETWORK":
return process.env.NEXT_PUBLIC_NETWORK || process.env.NETWORK;
default:
return (process.env[`VITE_${key}`] ||
process.env[`NEXT_PUBLIC_${key}`] ||
process.env[key]);
}
};
function requireEnv(key) {
const value = getEnv(key);
if (!value) {
throw new Error(`Missing required environment variable: ${key}`);
}
return value;
}
const NETWORK = getEnv("NETWORK") || "mainnet";
export const projectId = requireEnv("PROJECT_ID");
export const DOMAIN_URL = requireEnv("NODE_ADDRESS");
const CAIP_IDS = {
mainnet: "polkadot:fe1b4c55fd4d668101126434206571a7",
testnet: "polkadot:525639f713f397dcf839bd022cd821f3", // Vara Testnet
};
export const CAIP_ID_MAP = {
vara: CAIP_IDS[NETWORK],
};
export const walletConnectParams = {
projectId,
relayUrl: "wss://relay.walletconnect.com",
metadata: {
name: `vara (${NETWORK})`,
description: `vara SDK (${NETWORK})`,
url: DOMAIN_URL,
icons: ["https://walletconnect.com/walletconnect-logo.png"],
},
};
export const namespaces = {
polkadot: {
methods: ["polkadot_signTransaction", "polkadot_signMessage"],
chains: Object.values(CAIP_ID_MAP),
events: ["accountsChanged", "disconnect"],
},
};