@@ -17,6 +17,22 @@ import (
17
17
"github.com/urfave/cli/v2"
18
18
)
19
19
20
+ const (
21
+ privateKey = "SIGNER_PRIVATE_KEY"
22
+ ethRPC = "ETHEREUM_RPC"
23
+ transport = "http"
24
+ host = "127.0.0.1"
25
+ disperserPort = "443"
26
+
27
+ disperserPreprodHostname = "disperser-preprod-holesky.eigenda.xyz"
28
+ preprodCertVerifierAddress = "0xd973fA62E22BC2779F8489258F040C0344B03C21"
29
+ preprodSvcManagerAddress = "0x54A03db2784E3D0aCC08344D05385d0b62d4F432"
30
+
31
+ disperserTestnetHostname = "disperser-testnet-holesky.eigenda.xyz"
32
+ testnetCertVerifierAddress = "0xFe52fE1940858DCb6e12153E2104aD0fDFbE1162"
33
+ testnetSvcManagerAddress = "0xD4A7E1Bd8015057293f0D0A557088c286942e84b"
34
+ )
35
+
20
36
// EnvVar represents an individual env var configuration, with a flag name and value
21
37
type EnvVar struct {
22
38
Name string
@@ -55,24 +71,26 @@ func configureContextFromEnvVars(envVars []EnvVar, flags []cli.Flag) (*cli.Conte
55
71
//
56
72
// Env vars are used to configure tests, since that's how it's done in production. We want to exercise as many prod
57
73
// code pathways as possible in e2e tests.
58
- func getDefaultTestEnvVars (useMemory bool , useV2 bool ) []EnvVar {
74
+ func getDefaultTestEnvVars (backend Backend , useV2 bool ) []EnvVar {
59
75
signingKey := os .Getenv (privateKey )
60
76
ethRPCURL := os .Getenv (ethRPC )
61
77
maxBlobLengthString := "16mib"
62
78
expiration := 14 * 24 * time .Hour
63
79
writeThreadCount := 0
64
80
65
81
outputVars := make ([]EnvVar , 0 )
66
- outputVars = append (outputVars , getV1EnvVars (useMemory , signingKey , ethRPCURL , maxBlobLengthString )... )
67
- outputVars = append (outputVars , getV2EnvVars (useV2 , signingKey , ethRPCURL , maxBlobLengthString )... )
82
+ outputVars = append (outputVars , getV1EnvVars (backend , signingKey , ethRPCURL , maxBlobLengthString )... )
83
+ outputVars = append (outputVars , getV2EnvVars (backend , useV2 , signingKey , ethRPCURL , maxBlobLengthString )... )
68
84
outputVars = append (outputVars , getKZGEnvVars ()... )
69
85
70
86
// Memstore flags
71
- outputVars = append (outputVars , EnvVar {memstore .EnabledFlagName , fmt .Sprintf ("%t" , useMemory )})
87
+ outputVars = append (outputVars , EnvVar {memstore .EnabledFlagName , fmt .Sprintf ("%t" , backend == MemstoreBackend )})
72
88
outputVars = append (outputVars , EnvVar {memstore .ExpirationFlagName , expiration .String ()})
73
89
74
90
// Verifier flags
75
- outputVars = append (outputVars , EnvVar {verify .CertVerificationDisabledFlagName , fmt .Sprintf ("%t" , useMemory )})
91
+ outputVars = append (
92
+ outputVars ,
93
+ EnvVar {verify .CertVerificationDisabledFlagName , fmt .Sprintf ("%t" , backend == MemstoreBackend )})
76
94
77
95
// Server flags
78
96
outputVars = append (outputVars , EnvVar {config .ListenAddrFlagName , host })
@@ -85,26 +103,42 @@ func getDefaultTestEnvVars(useMemory bool, useV2 bool) []EnvVar {
85
103
}
86
104
87
105
func getV1EnvVars (
88
- useMemstore bool ,
106
+ backend Backend ,
89
107
signingKey string ,
90
108
ethRPCURL string ,
91
109
maxBlobLengthString string ,
92
110
) []EnvVar {
93
111
var pollInterval time.Duration
94
- if useMemstore {
112
+ if backend == MemstoreBackend {
95
113
pollInterval = time .Second * 1
96
114
} else {
97
115
pollInterval = time .Minute * 1
98
116
}
99
117
118
+ var disperserHostname string
119
+ var svcManagerAddress string
120
+ switch backend {
121
+ case MemstoreBackend :
122
+ // no need to set these fields for local tests
123
+ break
124
+ case PreprodBackend :
125
+ disperserHostname = disperserPreprodHostname
126
+ svcManagerAddress = preprodSvcManagerAddress
127
+ case TestnetBackend :
128
+ disperserHostname = disperserTestnetHostname
129
+ svcManagerAddress = testnetSvcManagerAddress
130
+ default :
131
+ panic ("Unsupported backend" )
132
+ }
133
+
100
134
envVars := []EnvVar {
101
135
{eigendaflags .SignerPrivateKeyHexFlagName , signingKey },
102
136
{eigendaflags .EthRPCURLFlagName , ethRPCURL },
103
- {eigendaflags .DisperserRPCFlagName , holeskyDisperserHostname + ":" + holeskyDisperserPort },
137
+ {eigendaflags .DisperserRPCFlagName , disperserHostname + ":" + disperserPort },
104
138
{eigendaflags .StatusQueryRetryIntervalFlagName , pollInterval .String ()},
105
139
{eigendaflags .DisableTLSFlagName , fmt .Sprintf ("%v" , false )},
106
140
{eigendaflags .ConfirmationDepthFlagName , "1" },
107
- {eigendaflags .SvcManagerAddrFlagName , "0xD4A7E1Bd8015057293f0D0A557088c286942e84b" }, // holesky testnet
141
+ {eigendaflags .SvcManagerAddrFlagName , svcManagerAddress },
108
142
{eigendaflags .MaxBlobLengthFlagName , maxBlobLengthString },
109
143
{eigendaflags .StatusQueryTimeoutFlagName , "45m" },
110
144
}
@@ -113,22 +147,39 @@ func getV1EnvVars(
113
147
}
114
148
115
149
func getV2EnvVars (
150
+ backend Backend ,
116
151
useV2 bool ,
117
152
signingKey string ,
118
153
ethRPCURL string ,
119
154
maxBlobLengthString string ,
120
155
) []EnvVar {
156
+ var disperserHostname string
157
+ var certVerifierAddress string
158
+ switch backend {
159
+ case MemstoreBackend :
160
+ // no need to set these fields for local tests
161
+ break
162
+ case PreprodBackend :
163
+ disperserHostname = disperserPreprodHostname
164
+ certVerifierAddress = preprodCertVerifierAddress
165
+ case TestnetBackend :
166
+ disperserHostname = disperserTestnetHostname
167
+ certVerifierAddress = testnetCertVerifierAddress
168
+ default :
169
+ panic ("Unsupported backend" )
170
+ }
171
+
121
172
envVars := []EnvVar {
122
173
{eigendaflagsv2 .SignerPaymentKeyHexFlagName , signingKey },
123
174
{eigendaflagsv2 .EthRPCURLFlagName , ethRPCURL },
124
175
{eigendaflagsv2 .V2EnabledFlagName , fmt .Sprintf ("%t" , useV2 )},
125
- {eigendaflagsv2 .DisperserFlagName , holeskyDisperserHostname + ":" + holeskyDisperserPort },
176
+ {eigendaflagsv2 .DisperserFlagName , disperserHostname + ":" + disperserPort },
126
177
{eigendaflagsv2 .DisableTLSFlagName , fmt .Sprintf ("%v" , false )},
127
178
{eigendaflagsv2 .BlobStatusPollIntervalFlagName , "1s" },
128
179
{eigendaflagsv2 .PutRetriesFlagName , "1" },
129
180
{eigendaflagsv2 .DisperseBlobTimeoutFlagName , "2m" },
130
181
{eigendaflagsv2 .BlobCertifiedTimeoutFlagName , "2m" },
131
- {eigendaflagsv2 .CertVerifierAddrFlagName , "0xFe52fE1940858DCb6e12153E2104aD0fDFbE1162" }, // holesky testnet
182
+ {eigendaflagsv2 .CertVerifierAddrFlagName , certVerifierAddress }, // holesky testnet
132
183
{eigendaflagsv2 .RelayTimeoutFlagName , "5s" },
133
184
{eigendaflagsv2 .ContractCallTimeoutFlagName , "5s" },
134
185
{eigendaflagsv2 .BlobParamsVersionFlagName , "0" },
0 commit comments