Skip to content

Commit 2ed4b55

Browse files
pigmejfasmat
andcommitted
Added User-Agent to bootstrap (#5900)
Co-authored-by: Matthias <[email protected]>
1 parent 327c3e3 commit 2ed4b55

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

cmd/bootstrapper/generator.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@ func queryBitcoin(ctx context.Context, client *http.Client, targetUrl string) (*
171171
return nil, fmt.Errorf("parse btc url: %w", err)
172172
}
173173
req, err := http.NewRequestWithContext(ctx, http.MethodGet, resource.String(), nil)
174+
// some apis got over sensitive without UA set
175+
req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.0")
174176
if err != nil {
175177
return nil, fmt.Errorf("create http request: %w", err)
176178
}

cmd/bootstrapper/generator_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,3 +165,34 @@ func TestGenerator_Generate(t *testing.T) {
165165
})
166166
}
167167
}
168+
169+
func TestGenerator_CheckAPI(t *testing.T) {
170+
targetEpoch := types.EpochID(3)
171+
db := sql.InMemory()
172+
createAtxs(t, db, targetEpoch-1, types.RandomActiveSet(activeSetSize))
173+
cfg, cleanup := launchServer(t, datastore.NewCachedDB(db, logtest.New(t)))
174+
t.Cleanup(cleanup)
175+
176+
fs := afero.NewMemMapFs()
177+
g := NewGenerator(
178+
"https://api.blockcypher.com/v1/btc/main",
179+
cfg.PublicListener,
180+
WithLogger(logtest.New(t)),
181+
WithFilesystem(fs),
182+
WithHttpClient(http.DefaultClient),
183+
)
184+
ctx, cancel := context.WithCancel(context.Background())
185+
defer cancel()
186+
persisted, err := g.Generate(ctx, targetEpoch, true, false)
187+
require.NoError(t, err)
188+
189+
got, err := afero.ReadFile(fs, persisted)
190+
require.NoError(t, err)
191+
require.NotEmpty(t, got)
192+
193+
require.NoError(t, bootstrap.ValidateSchema(got))
194+
195+
var update bootstrap.Update
196+
require.NoError(t, json.Unmarshal(got, &update))
197+
require.NotEqual(t, "00000000", update.Data.Epoch.Beacon)
198+
}

0 commit comments

Comments
 (0)