From 5763dc0761bba0e785a969e64f8cce300753e25b Mon Sep 17 00:00:00 2001 From: Slyghtning Date: Wed, 14 Feb 2024 17:02:33 +0100 Subject: [PATCH] staticaddr: static address server --- staticaddr/server.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 staticaddr/server.go diff --git a/staticaddr/server.go b/staticaddr/server.go new file mode 100644 index 0000000..4eeca96 --- /dev/null +++ b/staticaddr/server.go @@ -0,0 +1,42 @@ +package staticaddr + +import ( + "context" + + "github.com/lightninglabs/loop/looprpc" + staticaddressrpc "github.com/lightninglabs/loop/swapserverrpc" +) + +// AddressServer holds all fields for the address rpc server. +type AddressServer struct { + addressClient staticaddressrpc.StaticAddressServerClient + manager *Manager + looprpc.UnimplementedStaticAddressClientServer +} + +// NewAddressServer creates a new static address server. +func NewAddressServer(addressClient staticaddressrpc.StaticAddressServerClient, + manager *Manager) *AddressServer { + + return &AddressServer{ + addressClient: addressClient, + manager: manager, + } +} + +// NewAddress is the rpc endpoint for loop clients to request a new static +// address. +func (r *AddressServer) NewAddress(ctx context.Context, + _ *looprpc.NewAddressRequest) (*looprpc.NewAddressResponse, error) { + + address, err := r.manager.NewAddress(ctx) + if err != nil { + return nil, err + } + + log.Infof("New static loop-in address: %s\n", address.String()) + + return &looprpc.NewAddressResponse{ + Address: address.String(), + }, nil +}