-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherpc.dist.ts
More file actions
98 lines (96 loc) · 2.96 KB
/
erpc.dist.ts
File metadata and controls
98 lines (96 loc) · 2.96 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/**
* Example config in TypeScript, copy and create erpc.ts so the binary automatically imports it.
*/
import { createConfig, DataFinalityStateFinalized, DataFinalityStateRealtime, DataFinalityStateUnfinalized } from "@erpc-cloud/config";
export default createConfig({
logLevel: "trace",
server: {
listenV4: true,
httpHostV4: "0.0.0.0",
httpPort: 4000,
},
database: {
evmJsonRpcCache: {
connectors: [
{
id: "default-memory",
driver: "memory",
memory: {
maxItems: 100000,
maxTotalSize: "1GB"
}
}
],
policies: [
{
connector: 'default-memory',
network: '*',
method: '*',
finality: DataFinalityStateUnfinalized,
ttl: '10s'
},
{
connector: 'default-memory',
network: '*',
method: '*',
finality: DataFinalityStateFinalized,
ttl: '0s'
}
]
}
},
projects: [
{
id: "main",
networks: [
{
architecture: "evm",
evm: {
chainId: 1
},
failsafe: [
{
matchMethod: "*",
matchFinality: [DataFinalityStateRealtime],
timeout: {
duration: "3s"
},
retry: {
maxAttempts: 2
}
},
{
matchMethod: "eth_getLogs",
timeout: {
duration: "5s"
},
retry: {
maxAttempts: 5,
}
},
{
matchMethod: "*",
timeout: {
duration: "10s"
},
retry: {
maxAttempts: 3
}
}
]
}
],
upstreams: [
{
endpoint: `alchemy://${process.env.ALCHEMY_API_KEY}`
},
{
endpoint: `chainstack://${process.env.CHAINSTACK_API_KEY}`
},
{
endpoint: `${process.env.CUSTOM_RPC_1}`
}
]
}
]
})