Whenever I subscribe to an account through the devnet websocket, it always returns the default initialized values for rpc.Account. I can see the raw json coming across has values for lamports/rentEpoch but for some reason decodeResponse doesn't unmarshal correctly
Initialize websocket
a.Solana.WS, err = ws.Dial(context.Background(), "ws://devnet.solana.com")
if err != nil {
log.Fatal("could not start Solana websocket:", err)
}
defer a.Solana.WS.Close()
Subscribe to account and wait for messages
func (sol *SolanaApp) subscribeAccount(done <-chan struct{}) error {
s, err := sol.WS.AccountSubscribe(sol.PublicKey, "")
if err != nil {
return err
}
log.Println("subscribed to account")
go func() {
for {
select {
case <-done:
log.Println("unsubscribing account")
return
default:
message, err := s.Recv()
if err != nil {
fmt.Println(" error receiving subscription message: ", err)
}
acctResult, ok := message.(*ws.AccountResult)
if !ok {
log.Printf("error decoding msg: %+v\n", message)
}
log.Printf("msg received: %+v\n", *acctResult)
}
}
}()
return nil
}
Whenever I subscribe to an account through the devnet websocket, it always returns the default initialized values for rpc.Account. I can see the raw json coming across has values for lamports/rentEpoch but for some reason decodeResponse doesn't unmarshal correctly
Initialize websocket
Subscribe to account and wait for messages
Json Response
Unmarshalled Struct