Files
mev-beta/test-feed/test_feed.go
Administrator 7694811784 ...
2025-11-17 20:45:05 +01:00

81 lines
2.2 KiB
Go

package main
import (
"context"
"encoding/json"
"fmt"
"log"
"time"
"github.com/gorilla/websocket"
)
func main() {
fmt.Println("=== Arbitrum Sequencer Feed Test ===")
fmt.Println("Testing: wss://arb1.arbitrum.io/feed")
fmt.Println()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
log.Println("[1/3] Connecting to Arbitrum sequencer feed...")
dialer := websocket.DefaultDialer
dialer.HandshakeTimeout = 10 * time.Second
conn, resp, err := dialer.DialContext(ctx, "wss://arb1.arbitrum.io/feed", nil)
if err != nil {
log.Fatalf("❌ Connection FAILED: %v", err)
}
defer conn.Close()
log.Printf("✅ Connected successfully! (HTTP %d)", resp.StatusCode)
log.Println()
log.Println("[2/3] Waiting for messages from feed (30 second timeout)...")
// Set read deadline
conn.SetReadDeadline(time.Now().Add(25 * time.Second))
// Try to read messages
messageCount := 0
startTime := time.Now()
for i := 0; i < 100; i++ {
var msg map[string]interface{}
err := conn.ReadJSON(&msg)
if err != nil {
elapsed := time.Since(startTime)
log.Printf("❌ Read error after %d messages (%.2fs elapsed): %v", messageCount, elapsed.Seconds(), err)
break
}
messageCount++
elapsed := time.Since(startTime)
// Print first 3 messages in full
if messageCount <= 3 {
msgJSON, _ := json.MarshalIndent(msg, "", " ")
log.Printf("✅ Message %d (%.2fs):\n%s\n", messageCount, elapsed.Seconds(), msgJSON)
} else if messageCount%10 == 0 {
log.Printf("✅ Received %d messages so far (%.2fs elapsed)...", messageCount, elapsed.Seconds())
}
// Reset deadline for next read
conn.SetReadDeadline(time.Now().Add(25 * time.Second))
}
log.Println()
log.Println("[3/3] Test Results:")
if messageCount == 0 {
log.Println("❌ FAILED - ZERO messages received from feed")
log.Println(" The feed connects but doesn't send any data")
log.Println(" This could be:")
log.Println(" - Cloudflare blocking the connection")
log.Println(" - Feed requires authentication")
log.Println(" - Feed URL is incorrect")
} else {
log.Printf("✅ SUCCESS - Received %d messages from feed", messageCount)
log.Println(" The feed is working correctly!")
}
}