github.com/MetalBlockchain/metalgo@v1.11.9/vms/rpcchainvm/messenger/messenger_client.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package messenger 5 6 import ( 7 "context" 8 9 "github.com/MetalBlockchain/metalgo/snow/engine/common" 10 11 messengerpb "github.com/MetalBlockchain/metalgo/proto/pb/messenger" 12 ) 13 14 // Client is an implementation of a messenger channel that talks over RPC. 15 type Client struct { 16 client messengerpb.MessengerClient 17 } 18 19 // NewClient returns a client that is connected to a remote channel 20 func NewClient(client messengerpb.MessengerClient) *Client { 21 return &Client{client: client} 22 } 23 24 func (c *Client) Notify(msg common.Message) error { 25 _, err := c.client.Notify(context.Background(), &messengerpb.NotifyRequest{ 26 Message: messengerpb.Message(msg), 27 }) 28 return err 29 }