@gemini-wallet/core
Version:
Core SDK for Gemini Wallet integration with popup communication
64 lines (56 loc) • 1.75 kB
text/typescript
import {
arbitrum,
arbitrumSepolia,
base,
baseSepolia,
mainnet,
optimism,
optimismSepolia,
polygon,
polygonAmoy,
sepolia,
} from "viem/chains";
export const SDK_BACKEND_URL = "https://keys.gemini.com";
export const ENS_API_URL = "https://horizon-api.gemini.com/api/ens";
export const SDK_VERSION = "0.2.0";
export const DEFAULT_CHAIN_ID = 42161; // Arbitrum One
// Mainnet chain IDs
export const MAINNET_CHAIN_IDS = {
ARBITRUM_ONE: 42161,
BASE: 8453,
ETHEREUM: 1,
OP_MAINNET: 10,
POLYGON: 137,
} as const;
// Testnet chain IDs
export const TESTNET_CHAIN_IDS = {
ARBITRUM_SEPOLIA: 421614,
BASE_SEPOLIA: 84532,
OP_SEPOLIA: 11155420,
POLYGON_AMOY: 80002,
SEPOLIA: 11155111,
} as const;
// All supported chain IDs
export const SUPPORTED_CHAIN_IDS = [
...Object.values(MAINNET_CHAIN_IDS),
...Object.values(TESTNET_CHAIN_IDS),
];
// Helper function to get default RPC URL for a chain using viem chains
export function getDefaultRpcUrl(chainId: number): string | undefined {
const chainMap: Record<number, string> = {
[]: mainnet.rpcUrls.default.http[0],
[]: arbitrum.rpcUrls.default.http[0],
[]: optimism.rpcUrls.default.http[0],
[]: base.rpcUrls.default.http[0],
[]: polygon.rpcUrls.default.http[0],
[]: sepolia.rpcUrls.default.http[0],
[]: arbitrumSepolia.rpcUrls.default.http[0],
[]: optimismSepolia.rpcUrls.default.http[0],
[]: baseSepolia.rpcUrls.default.http[0],
[]: polygonAmoy.rpcUrls.default.http[0],
};
return chainMap[chainId];
}
// Popup window dimensions
export const POPUP_WIDTH = 420;
export const POPUP_HEIGHT = 650;