-
Notifications
You must be signed in to change notification settings - Fork 199
Expand file tree
/
Copy pathenv.utils.ts
More file actions
45 lines (43 loc) · 2.23 KB
/
Copy pathenv.utils.ts
File metadata and controls
45 lines (43 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { z } from 'zod';
const envSchema = z.object({
VITE_BACKEND_URL: z.string().default('/api'),
VITE_DEFAULT_CHAIN_ID: z.coerce.number().default(84532),
VITE_ANVIL_RPC_URL: z.string().default('http://127.0.0.1:8545'),
VITE_BASE_SEPOLIA_RPC_URL: z.string().default('https://sepolia.base.org'),
VITE_SEPOLIA_RPC_URL: z.string().optional(),
VITE_MAINNET_RPC_URL: z.string().optional(),
VITE_STELLAR_RPC_URL: z.string().optional(),
VITE_STELLAR_NETWORK: z.enum(['mainnet', 'testnet']).default('testnet'),
VITE_CREATOR_KEYS_CONTRACT_ID: z.string().optional(),
// Comma-separated wallet addresses that may access the admin safety panel.
// Leaving this unset fails closed and hides the panel.
VITE_ADMIN_WALLETS: z.string().optional(),
// Comma-separated wallet addresses allowed to deploy new creator keys
// through the key factory (#959). Leaving this unset fails closed and hides
// the deployment wizard.
VITE_KEY_FACTORY_WHITELIST: z.string().optional(),
// UTM configuration for share links. Optional — when not provided, share URLs remain unchanged.
VITE_UTM_SOURCE: z.string().optional(),
VITE_UTM_MEDIUM: z.string().optional(),
VITE_UTM_CAMPAIGN: z.string().optional(),
VITE_UTM_TERM: z.string().optional(),
VITE_UTM_CONTENT: z.string().optional(),
});
export const env = envSchema.parse({
VITE_BACKEND_URL: import.meta.env.VITE_BACKEND_URL,
VITE_DEFAULT_CHAIN_ID: import.meta.env.VITE_DEFAULT_CHAIN_ID,
VITE_ANVIL_RPC_URL: import.meta.env.VITE_ANVIL_RPC_URL,
VITE_BASE_SEPOLIA_RPC_URL: import.meta.env.VITE_BASE_SEPOLIA_RPC_URL,
VITE_SEPOLIA_RPC_URL: import.meta.env.VITE_SEPOLIA_RPC_URL,
VITE_MAINNET_RPC_URL: import.meta.env.VITE_MAINNET_RPC_URL,
VITE_STELLAR_RPC_URL: import.meta.env.VITE_STELLAR_RPC_URL,
VITE_STELLAR_NETWORK: import.meta.env.VITE_STELLAR_NETWORK,
VITE_CREATOR_KEYS_CONTRACT_ID: import.meta.env.VITE_CREATOR_KEYS_CONTRACT_ID,
VITE_ADMIN_WALLETS: import.meta.env.VITE_ADMIN_WALLETS,
VITE_KEY_FACTORY_WHITELIST: import.meta.env.VITE_KEY_FACTORY_WHITELIST,
VITE_UTM_SOURCE: import.meta.env.VITE_UTM_SOURCE,
VITE_UTM_MEDIUM: import.meta.env.VITE_UTM_MEDIUM,
VITE_UTM_CAMPAIGN: import.meta.env.VITE_UTM_CAMPAIGN,
VITE_UTM_TERM: import.meta.env.VITE_UTM_TERM,
VITE_UTM_CONTENT: import.meta.env.VITE_UTM_CONTENT,
});