mirror of
https://github.com/lightningnetwork/lnd.git
synced 2024-11-19 18:10:34 +01:00
84 lines
1.3 KiB
Go
84 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"fmt"
|
|
|
|
"github.com/lightningnetwork/lnd/lnrpc"
|
|
"github.com/urfave/cli"
|
|
)
|
|
|
|
var sendCustomCommand = cli.Command{
|
|
Name: "sendcustom",
|
|
Flags: []cli.Flag{
|
|
cli.StringFlag{
|
|
Name: "peer",
|
|
},
|
|
cli.Uint64Flag{
|
|
Name: "type",
|
|
},
|
|
cli.StringFlag{
|
|
Name: "data",
|
|
},
|
|
},
|
|
Action: actionDecorator(sendCustom),
|
|
}
|
|
|
|
func sendCustom(ctx *cli.Context) error {
|
|
ctxc := getContext()
|
|
client, cleanUp := getClient(ctx)
|
|
defer cleanUp()
|
|
|
|
peer, err := hex.DecodeString(ctx.String("peer"))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
msgType := ctx.Uint64("type")
|
|
|
|
data, err := hex.DecodeString(ctx.String("data"))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = client.SendCustomMessage(
|
|
ctxc,
|
|
&lnrpc.SendCustomMessageRequest{
|
|
Peer: peer,
|
|
Type: uint32(msgType),
|
|
Data: data,
|
|
},
|
|
)
|
|
|
|
return err
|
|
}
|
|
|
|
var subscribeCustomCommand = cli.Command{
|
|
Name: "subscribecustom",
|
|
Action: actionDecorator(subscribeCustom),
|
|
}
|
|
|
|
func subscribeCustom(ctx *cli.Context) error {
|
|
ctxc := getContext()
|
|
client, cleanUp := getClient(ctx)
|
|
defer cleanUp()
|
|
|
|
stream, err := client.SubscribeCustomMessages(
|
|
ctxc,
|
|
&lnrpc.SubscribeCustomMessagesRequest{},
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for {
|
|
msg, err := stream.Recv()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
fmt.Printf("Received from peer %x: type=%d, data=%x\n",
|
|
msg.Peer, msg.Type, msg.Data)
|
|
}
|
|
}
|