forked from balancer/frontend-v2
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathconfig.service.ts
More file actions
76 lines (68 loc) · 2.26 KB
/
Copy pathconfig.service.ts
File metadata and controls
76 lines (68 loc) · 2.26 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import { Network } from '@ape.swap/swap-v2-sdk';
import { networkId } from '@/composables/useNetwork';
import { Config } from '@/lib/config';
import configs from '@/lib/config';
import template from '@/lib/utils/template';
interface Env {
APP_ENV: string;
NETWORK: Network;
APP_DOMAIN: string;
APP_HOST: string;
IPFS_NODE: string;
BLOCKNATIVE_DAPP_ID: string;
ALCHEMY_KEY: string;
INFURA_PROJECT_ID: string;
PORTIS_DAPP_ID: string;
ENABLE_STABLE_POOLS: boolean;
}
export default class ConfigService {
public get env(): Env {
return {
APP_ENV: process.env.VUE_APP_ENV || 'development',
NETWORK: networkId.value,
APP_DOMAIN: process.env.VUE_APP_DOMAIN || 'app.balancer.fi',
APP_HOST: process.env.VUE_APP_HOST || 'balancer.fi',
IPFS_NODE: process.env.VUE_APP_IPFS_NODE || 'cloudflare-ipfs.com',
BLOCKNATIVE_DAPP_ID:
process.env.VUE_APP_BLOCKNATIVE_DAPP_ID || 'MISSING_KEY',
ALCHEMY_KEY:
process.env.VUE_APP_ALCHEMY_KEY ||
this.getNetworkConfig(networkId.value).keys.alchemy ||
'MISSING_KEY',
INFURA_PROJECT_ID:
process.env.VUE_APP_INFURA_PROJECT_ID ||
this.getNetworkConfig(networkId.value).keys.infura ||
'MISSING_KEY',
ENABLE_STABLE_POOLS: process.env.VUE_APP_ENABLE_STABLE_POOLS === 'true',
PORTIS_DAPP_ID: process.env.VUE_APP_PORTIS_DAPP_ID || 'MISSING_KEY'
};
}
public get network(): Config {
return configs[networkId.value];
}
public getNetworkConfig(key: Network): Config {
if (!Object.keys(configs).includes(key?.toString()))
throw new Error(`No config for network key: ${key}`);
return configs[key];
}
public get rpc(): string {
return template(this.network.rpc, {
// TODO: A|S Add templates for different chains?
INFURA_KEY: this.env.INFURA_PROJECT_ID,
ALCHEMY_KEY: this.env.ALCHEMY_KEY
});
}
public get ws(): string {
return template(this.network.ws, {
INFURA_KEY: this.env.INFURA_PROJECT_ID,
ALCHEMY_KEY: this.env.ALCHEMY_KEY
});
}
public get loggingRpc(): string {
return template(this.network.loggingRpc, {
INFURA_KEY: this.env.INFURA_PROJECT_ID,
ALCHEMY_KEY: this.env.ALCHEMY_KEY
});
}
}
export const configService = new ConfigService();