Merge pull request #242 from joostjager/user-message

multi: expose server message to clients
pull/243/head
Joost Jager 4 years ago committed by GitHub
commit dcb3b50eec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -14,7 +14,6 @@ import (
"github.com/lightninglabs/loop/lsat"
"github.com/lightninglabs/loop/swap"
"github.com/lightninglabs/loop/sweep"
"github.com/lightningnetwork/lnd/lntypes"
)
var (
@ -354,32 +353,37 @@ func (s *Client) resumeSwaps(ctx context.Context,
//
// The return value is a hash that uniquely identifies the new swap.
func (s *Client) LoopOut(globalCtx context.Context,
request *OutRequest) (*lntypes.Hash, btcutil.Address, error) {
request *OutRequest) (*LoopOutSwapInfo, error) {
log.Infof("LoopOut %v to %v (channels: %v)",
request.Amount, request.DestAddr, request.OutgoingChanSet,
)
if err := s.waitForInitialized(globalCtx); err != nil {
return nil, nil, err
return nil, err
}
// Create a new swap object for this swap.
initiationHeight := s.executor.height()
swapCfg := newSwapConfig(s.lndServices, s.Store, s.Server)
swap, err := newLoopOutSwap(
initResult, err := newLoopOutSwap(
globalCtx, swapCfg, initiationHeight, request,
)
if err != nil {
return nil, nil, err
return nil, err
}
swap := initResult.swap
// Post swap to the main loop.
s.executor.initiateSwap(globalCtx, swap)
// Return hash so that the caller can identify this swap in the updates
// stream.
return &swap.hash, swap.htlc.Address, nil
return &LoopOutSwapInfo{
SwapHash: swap.hash,
HtlcAddressP2WSH: swap.htlc.Address,
ServerMessage: initResult.serverMessage,
}, nil
}
// LoopOutQuote takes a LoopOut amount and returns a break down of estimated
@ -480,12 +484,13 @@ func (s *Client) LoopIn(globalCtx context.Context,
// Create a new swap object for this swap.
initiationHeight := s.executor.height()
swapCfg := newSwapConfig(s.lndServices, s.Store, s.Server)
swap, err := newLoopInSwap(
initResult, err := newLoopInSwap(
globalCtx, swapCfg, initiationHeight, request,
)
if err != nil {
return nil, err
}
swap := initResult.swap
// Post swap to the main loop.
s.executor.initiateSwap(globalCtx, swap)
@ -496,6 +501,7 @@ func (s *Client) LoopIn(globalCtx context.Context,
SwapHash: swap.hash,
HtlcAddressP2WSH: swap.htlcP2WSH.Address,
HtlcAddressNP2WSH: swap.htlcNP2WSH.Address,
ServerMessage: initResult.serverMessage,
}
return swapInfo, nil
}

@ -45,7 +45,7 @@ func TestSuccess(t *testing.T) {
ctx := createClientTestContext(t, nil)
// Initiate loop out.
hash, _, err := ctx.swapClient.LoopOut(context.Background(), testRequest)
info, err := ctx.swapClient.LoopOut(context.Background(), testRequest)
if err != nil {
t.Fatal(err)
}
@ -59,7 +59,7 @@ func TestSuccess(t *testing.T) {
// Expect client to register for conf.
confIntent := ctx.AssertRegisterConf(false)
testSuccess(ctx, testRequest.Amount, *hash,
testSuccess(ctx, testRequest.Amount, info.SwapHash,
signalPrepaymentResult, signalSwapPaymentResult, false,
confIntent,
)
@ -72,7 +72,7 @@ func TestFailOffchain(t *testing.T) {
ctx := createClientTestContext(t, nil)
_, _, err := ctx.swapClient.LoopOut(context.Background(), testRequest)
_, err := ctx.swapClient.LoopOut(context.Background(), testRequest)
if err != nil {
t.Fatal(err)
}
@ -110,7 +110,7 @@ func TestFailWrongAmount(t *testing.T) {
// Modify mock for this subtest.
modifier(ctx.serverMock)
_, _, err := ctx.swapClient.LoopOut(
_, err := ctx.swapClient.LoopOut(
context.Background(), testRequest,
)
if err != expectedErr {

@ -157,6 +157,9 @@ func loopIn(ctx *cli.Context) error {
fmt.Printf("HTLC address (NP2WSH): %v\n", resp.HtlcAddressNp2Wsh)
}
fmt.Printf("HTLC address (P2WSH): %v\n", resp.HtlcAddressP2Wsh)
if resp.ServerMessage != "" {
fmt.Printf("Server message: %v\n", resp.ServerMessage)
}
fmt.Println()
fmt.Printf("Run `loop monitor` to monitor progress.\n")

@ -180,8 +180,11 @@ func loopOut(ctx *cli.Context) error {
}
fmt.Printf("Swap initiated\n")
fmt.Printf("ID: %v\n", resp.Id)
fmt.Printf("HTLC address: %v\n", resp.HtlcAddress)
fmt.Printf("ID: %v\n", resp.Id)
fmt.Printf("HTLC address: %v\n", resp.HtlcAddress)
if resp.ServerMessage != "" {
fmt.Printf("Server message: %v\n", resp.ServerMessage)
}
fmt.Println()
fmt.Printf("Run `loop monitor` to monitor progress.\n")

@ -248,6 +248,25 @@ type LoopInSwapInfo struct { // nolint
// HtlcAddressNP2WSH contains the nested segwit swap htlc address,
// where the loop-in funds may be paid.
HtlcAddressNP2WSH btcutil.Address
// ServerMessages is the human-readable message received from the loop
// server.
ServerMessage string
}
// LoopOutSwapInfo contains essential information of a loop-out swap after the
// swap is initiated.
type LoopOutSwapInfo struct { // nolint:golint
// SwapHash contains the sha256 hash of the swap preimage.
SwapHash lntypes.Hash
// HtlcAddressP2WSH contains the native segwit swap htlc address that
// the server will publish to.
HtlcAddressP2WSH btcutil.Address
// ServerMessages is the human-readable message received from the loop
// server.
ServerMessage string
}
// SwapInfoKit contains common swap info fields.

@ -103,17 +103,18 @@ func (s *swapClientServer) LoopOut(ctx context.Context,
req.OutgoingChanSet = in.OutgoingChanSet
}
hash, htlc, err := s.impl.LoopOut(ctx, req)
info, err := s.impl.LoopOut(ctx, req)
if err != nil {
log.Errorf("LoopOut: %v", err)
return nil, err
}
return &looprpc.SwapResponse{
Id: hash.String(),
IdBytes: hash[:],
HtlcAddress: htlc.String(),
HtlcAddressP2Wsh: htlc.String(),
Id: info.SwapHash.String(),
IdBytes: info.SwapHash[:],
HtlcAddress: info.HtlcAddressP2WSH.String(),
HtlcAddressP2Wsh: info.HtlcAddressP2WSH.String(),
ServerMessage: info.ServerMessage,
}, nil
}
@ -456,6 +457,7 @@ func (s *swapClientServer) LoopIn(ctx context.Context,
Id: swapInfo.SwapHash.String(),
IdBytes: swapInfo.SwapHash[:],
HtlcAddressP2Wsh: swapInfo.HtlcAddressP2WSH.String(),
ServerMessage: swapInfo.ServerMessage,
}
if req.ExternalHtlc {

@ -63,9 +63,16 @@ type loopInSwap struct {
timeoutAddr btcutil.Address
}
// loopInInitResult contains information about a just-initiated loop in swap.
type loopInInitResult struct {
swap *loopInSwap
serverMessage string
}
// newLoopInSwap initiates a new loop in swap.
func newLoopInSwap(globalCtx context.Context, cfg *swapConfig,
currentHeight int32, request *LoopInRequest) (*loopInSwap, error) {
currentHeight int32, request *LoopInRequest) (*loopInInitResult,
error) {
// Request current server loop in terms and use these to calculate the
// swap fee that we should subtract from the swap amount in the payment
@ -180,7 +187,14 @@ func newLoopInSwap(globalCtx context.Context, cfg *swapConfig,
return nil, fmt.Errorf("cannot store swap: %v", err)
}
return swap, nil
if swapResp.serverMessage != "" {
swap.log.Infof("Server message: %v", swapResp.serverMessage)
}
return &loopInInitResult{
swap: swap,
serverMessage: swapResp.serverMessage,
}, nil
}
// resumeLoopInSwap returns a swap object representing a pending swap that has

@ -35,13 +35,14 @@ func TestLoopInSuccess(t *testing.T) {
cfg := newSwapConfig(&ctx.lnd.LndServices, ctx.store, ctx.server)
swap, err := newLoopInSwap(
initResult, err := newLoopInSwap(
context.Background(), cfg,
height, &testLoopInRequest,
)
if err != nil {
t.Fatal(err)
}
swap := initResult.swap
ctx.store.assertLoopInStored()
@ -159,13 +160,14 @@ func testLoopInTimeout(t *testing.T,
req.ExternalHtlc = true
}
s, err := newLoopInSwap(
initResult, err := newLoopInSwap(
context.Background(), cfg,
height, &req,
)
if err != nil {
t.Fatal(err)
}
s := initResult.swap
ctx.store.assertLoopInStored()

@ -73,10 +73,16 @@ type executeConfig struct {
loopOutMaxParts uint32
}
// loopOutInitResult contains information about a just-initiated loop out swap.
type loopOutInitResult struct {
swap *loopOutSwap
serverMessage string
}
// newLoopOutSwap initiates a new swap with the server and returns a
// corresponding swap object.
func newLoopOutSwap(globalCtx context.Context, cfg *swapConfig,
currentHeight int32, request *OutRequest) (*loopOutSwap, error) {
currentHeight int32, request *OutRequest) (*loopOutInitResult, error) {
// Generate random preimage.
var swapPreimage [32]byte
@ -176,7 +182,14 @@ func newLoopOutSwap(globalCtx context.Context, cfg *swapConfig,
return nil, fmt.Errorf("cannot store swap: %v", err)
}
return swap, nil
if swapResp.serverMessage != "" {
swap.log.Infof("Server message: %v", swapResp.serverMessage)
}
return &loopOutInitResult{
swap: swap,
serverMessage: swapResp.serverMessage,
}, nil
}
// resumeLoopOutSwap returns a swap object representing a pending swap that has

@ -54,12 +54,13 @@ func TestLoopOutPaymentParameters(t *testing.T) {
req := *testRequest
req.OutgoingChanSet = loopdb.ChannelSet{2, 3}
swap, err := newLoopOutSwap(
initResult, err := newLoopOutSwap(
context.Background(), cfg, height, &req,
)
if err != nil {
t.Fatal(err)
}
swap := initResult.swap
// Execute the swap in its own goroutine.
errChan := make(chan error)
@ -150,12 +151,13 @@ func TestLateHtlcPublish(t *testing.T) {
cfg := newSwapConfig(&lnd.LndServices, store, server)
swap, err := newLoopOutSwap(
initResult, err := newLoopOutSwap(
context.Background(), cfg, height, testRequest,
)
if err != nil {
t.Fatal(err)
}
swap := initResult.swap
sweeper := &sweep.Sweeper{Lnd: &lnd.LndServices}
@ -235,12 +237,13 @@ func TestCustomSweepConfTarget(t *testing.T) {
&lnd.LndServices, newStoreMock(t), server,
)
swap, err := newLoopOutSwap(
initResult, err := newLoopOutSwap(
context.Background(), cfg, ctx.Lnd.Height, testRequest,
)
if err != nil {
t.Fatal(err)
}
swap := initResult.swap
// Set up the required dependencies to execute the swap.
//
@ -442,10 +445,11 @@ func TestPreimagePush(t *testing.T) {
&lnd.LndServices, newStoreMock(t), server,
)
swap, err := newLoopOutSwap(
initResult, err := newLoopOutSwap(
context.Background(), cfg, ctx.Lnd.Height, testRequest,
)
require.NoError(t, err)
swap := initResult.swap
// Set up the required dependencies to execute the swap.
sweeper := &sweep.Sweeper{Lnd: &lnd.LndServices}

@ -411,7 +411,9 @@ type SwapResponse struct {
//*
//The native segwit address of the on-chain htlc.
//Used for both loop-in and loop-out.
HtlcAddressP2Wsh string `protobuf:"bytes,5,opt,name=htlc_address_p2wsh,json=htlcAddressP2wsh,proto3" json:"htlc_address_p2wsh,omitempty"`
HtlcAddressP2Wsh string `protobuf:"bytes,5,opt,name=htlc_address_p2wsh,json=htlcAddressP2wsh,proto3" json:"htlc_address_p2wsh,omitempty"`
// A human-readable message received from the loop server.
ServerMessage string `protobuf:"bytes,6,opt,name=server_message,json=serverMessage,proto3" json:"server_message,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -479,6 +481,13 @@ func (m *SwapResponse) GetHtlcAddressP2Wsh() string {
return ""
}
func (m *SwapResponse) GetServerMessage() string {
if m != nil {
return m.ServerMessage
}
return ""
}
type MonitorRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1251,103 +1260,104 @@ func init() {
func init() { proto.RegisterFile("client.proto", fileDescriptor_014de31d7ac8c57c) }
var fileDescriptor_014de31d7ac8c57c = []byte{
// 1533 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4d, 0x72, 0xdb, 0x38,
0x16, 0x0e, 0xf5, 0xaf, 0x27, 0x8a, 0xa2, 0xe0, 0xc4, 0x96, 0x35, 0x93, 0x8a, 0xc2, 0x99, 0xcc,
0x28, 0xae, 0x94, 0x35, 0x71, 0x56, 0x93, 0x9a, 0x9a, 0x2a, 0x47, 0x56, 0x62, 0xb9, 0xfc, 0xa3,
0xa1, 0xe4, 0x54, 0x25, 0x1b, 0x0e, 0x2c, 0xc2, 0x16, 0xab, 0x45, 0x82, 0x21, 0xa0, 0xd8, 0xae,
0x54, 0x36, 0x7d, 0x85, 0xbe, 0x41, 0xdf, 0xa0, 0xd7, 0xbd, 0xeb, 0x65, 0xef, 0xba, 0xfa, 0x00,
0xbd, 0xe9, 0x23, 0xf4, 0x01, 0xba, 0x00, 0x50, 0x14, 0x65, 0xcb, 0x59, 0x64, 0x27, 0x7e, 0xf8,
0xf0, 0xe1, 0xe1, 0xbd, 0x87, 0x0f, 0x10, 0xe8, 0xe3, 0xa9, 0x47, 0x02, 0xbe, 0x1d, 0x46, 0x94,
0x53, 0x54, 0x9c, 0x52, 0x1a, 0x46, 0xe1, 0xb8, 0xf9, 0xd7, 0x0b, 0x4a, 0x2f, 0xa6, 0xa4, 0x83,
0x43, 0xaf, 0x83, 0x83, 0x80, 0x72, 0xcc, 0x3d, 0x1a, 0x30, 0x45, 0xb3, 0x7e, 0xce, 0x82, 0x71,
0x48, 0x69, 0x78, 0x32, 0xe3, 0x36, 0xf9, 0x30, 0x23, 0x8c, 0x23, 0x13, 0xb2, 0xd8, 0xe7, 0x0d,
0xad, 0xa5, 0xb5, 0xb3, 0xb6, 0xf8, 0x89, 0x10, 0xe4, 0x5c, 0xc2, 0x78, 0x23, 0xd3, 0xd2, 0xda,
0x65, 0x5b, 0xfe, 0x46, 0x1d, 0xb8, 0xef, 0xe3, 0x2b, 0x87, 0x5d, 0xe2, 0xd0, 0x89, 0xe8, 0x8c,
0x7b, 0xc1, 0x85, 0x73, 0x4e, 0x48, 0x23, 0x2b, 0xa7, 0xd5, 0x7d, 0x7c, 0x35, 0xbc, 0xc4, 0xa1,
0xad, 0x46, 0x5e, 0x13, 0x82, 0x5e, 0xc0, 0xba, 0x98, 0x10, 0x46, 0x24, 0xc4, 0xd7, 0x4b, 0x53,
0x72, 0x72, 0xca, 0x9a, 0x8f, 0xaf, 0x06, 0x72, 0x30, 0x35, 0xa9, 0x05, 0x7a, 0xb2, 0x8a, 0xa0,
0xe6, 0x25, 0x15, 0x62, 0x75, 0xc1, 0xf8, 0x3b, 0x18, 0x29, 0x59, 0x11, 0x78, 0x41, 0x72, 0xf4,
0x44, 0x6e, 0xd7, 0xe7, 0xc8, 0x82, 0xaa, 0x60, 0xf9, 0x5e, 0x40, 0x22, 0x29, 0x54, 0x94, 0xa4,
0x8a, 0x8f, 0xaf, 0x8e, 0x04, 0x26, 0x94, 0x9e, 0x81, 0x29, 0x72, 0xe6, 0xd0, 0x19, 0x77, 0xc6,
0x13, 0x1c, 0x04, 0x64, 0xda, 0x28, 0xb5, 0xb4, 0x76, 0xee, 0x55, 0xa6, 0xa1, 0xd9, 0xc6, 0x54,
0x65, 0xa9, 0xab, 0x46, 0xd0, 0x16, 0xd4, 0xe9, 0x8c, 0x5f, 0x50, 0xb1, 0x09, 0xc1, 0x76, 0x18,
0xe1, 0x8d, 0x4a, 0x2b, 0xdb, 0xce, 0xd9, 0xb5, 0xf9, 0x80, 0xe0, 0x0e, 0x09, 0x17, 0x5c, 0x76,
0x49, 0x48, 0xe8, 0x8c, 0x69, 0x70, 0xee, 0x70, 0x1c, 0x5d, 0x10, 0xde, 0x28, 0xb7, 0xb4, 0x76,
0xde, 0xae, 0xc9, 0x81, 0x2e, 0x0d, 0xce, 0x47, 0x12, 0x46, 0x2f, 0x61, 0x53, 0xee, 0x36, 0x9c,
0x9d, 0x4d, 0xbd, 0xb1, 0xac, 0x95, 0xe3, 0x12, 0xec, 0x4e, 0xbd, 0x80, 0x34, 0x40, 0x84, 0x63,
0x6f, 0x08, 0xc2, 0x60, 0x31, 0xbe, 0x17, 0x0f, 0x5b, 0xbf, 0x68, 0x50, 0x15, 0xc5, 0xec, 0x07,
0x77, 0xd7, 0xf2, 0x66, 0x46, 0x33, 0xb7, 0x32, 0x7a, 0x2b, 0x57, 0xd9, 0xdb, 0xb9, 0xda, 0x84,
0xd2, 0x14, 0x33, 0xee, 0x4c, 0x68, 0x28, 0xcb, 0xa7, 0xdb, 0x45, 0xf1, 0xbd, 0x4f, 0x43, 0xf4,
0x37, 0xa8, 0x92, 0x2b, 0x4e, 0xa2, 0x00, 0x4f, 0x9d, 0x09, 0x9f, 0x8e, 0x65, 0xcd, 0x4a, 0xb6,
0x3e, 0x07, 0xf7, 0xf9, 0x74, 0x8c, 0xda, 0x60, 0x8a, 0xb1, 0xa5, 0x84, 0x14, 0x64, 0x42, 0x0c,
0x81, 0x2f, 0xf2, 0x61, 0xfd, 0xa4, 0x81, 0x2e, 0x3b, 0x89, 0xb0, 0x90, 0x06, 0x8c, 0x20, 0x04,
0x19, 0xcf, 0x95, 0x3b, 0x2a, 0xcb, 0xc2, 0x64, 0x3c, 0x57, 0x84, 0xe3, 0xb9, 0xce, 0xd9, 0x35,
0x27, 0x4c, 0x46, 0xab, 0xdb, 0x45, 0xcf, 0x7d, 0x25, 0x3e, 0xd1, 0x13, 0xd0, 0xe5, 0x4a, 0xd8,
0x75, 0x23, 0xc2, 0x98, 0xea, 0x61, 0x39, 0xb1, 0x22, 0xf0, 0x5d, 0x05, 0xa3, 0x6d, 0x58, 0x4b,
0xd3, 0x9c, 0x20, 0xdc, 0xb9, 0x64, 0x13, 0xb9, 0xb7, 0xb2, 0x5d, 0x4f, 0x31, 0x8f, 0xe5, 0x00,
0x7a, 0x06, 0x68, 0x89, 0xaf, 0xe8, 0x79, 0x49, 0x37, 0x53, 0xf4, 0x81, 0xc0, 0x2d, 0x13, 0x8c,
0x23, 0x1a, 0x78, 0x9c, 0x46, 0x71, 0x61, 0xac, 0xdf, 0xb2, 0x00, 0x62, 0x5b, 0x43, 0x8e, 0xf9,
0x8c, 0xad, 0x3c, 0x73, 0x62, 0x9b, 0x99, 0x3b, 0xb7, 0x59, 0xb9, 0xb9, 0xcd, 0x1c, 0xbf, 0x0e,
0x55, 0xad, 0x8c, 0x9d, 0xfa, 0x76, 0x7c, 0xfa, 0xb7, 0xc5, 0x1a, 0xa3, 0xeb, 0x90, 0xd8, 0x72,
0x18, 0xb5, 0x21, 0xcf, 0x38, 0xe6, 0xea, 0xcc, 0x19, 0x3b, 0x68, 0x89, 0x27, 0x62, 0x21, 0xb6,
0x22, 0xa0, 0x7f, 0x42, 0xcd, 0x0b, 0x3c, 0xee, 0xa9, 0x0e, 0xe4, 0x9e, 0x3f, 0x3f, 0x7c, 0xc6,
0x02, 0x1e, 0x79, 0xbe, 0x90, 0x34, 0x65, 0x2b, 0xcc, 0x42, 0x17, 0x73, 0xa2, 0x98, 0xea, 0x08,
0x1a, 0x02, 0x3f, 0x95, 0xb0, 0x64, 0xde, 0x2c, 0x45, 0x71, 0x75, 0x29, 0x56, 0xa7, 0x56, 0x5f,
0x9d, 0xda, 0xbb, 0x0a, 0x57, 0xbd, 0xab, 0x70, 0x8f, 0xa0, 0x32, 0xa6, 0x8c, 0x3b, 0x8c, 0x44,
0x1f, 0x49, 0x24, 0x0f, 0x78, 0xd6, 0x06, 0x01, 0x0d, 0x25, 0x82, 0x1e, 0x83, 0x2e, 0x09, 0x34,
0x18, 0x4f, 0xb0, 0x17, 0xc8, 0x73, 0x9a, 0xb5, 0xe5, 0xa4, 0x13, 0x05, 0x89, 0x16, 0x57, 0x94,
0xf3, 0x73, 0xc5, 0x01, 0x65, 0x39, 0x92, 0x13, 0x63, 0x16, 0x02, 0xf3, 0xd0, 0x63, 0x5c, 0x24,
0x96, 0xcd, 0xab, 0xfe, 0x5f, 0xa8, 0xa7, 0xb0, 0xb8, 0xa1, 0x9f, 0x42, 0x5e, 0x9c, 0x46, 0xd6,
0xd0, 0x5a, 0xd9, 0x76, 0x65, 0x67, 0xed, 0x56, 0x4d, 0x66, 0xcc, 0x56, 0x0c, 0xeb, 0x31, 0xd4,
0x04, 0xd8, 0x0f, 0xce, 0xe9, 0xfc, 0x84, 0x1b, 0xc9, 0x71, 0xd0, 0x45, 0x8f, 0x58, 0x06, 0xe8,
0x23, 0x12, 0xf9, 0xc9, 0x92, 0x9f, 0xa1, 0x1a, 0x7f, 0xc7, 0xcb, 0xfd, 0x03, 0x6a, 0xbe, 0x17,
0x28, 0x03, 0xc0, 0x3e, 0x9d, 0x05, 0x3c, 0x2e, 0x6c, 0xd5, 0xf7, 0x02, 0xa1, 0xbe, 0x2b, 0x41,
0xc9, 0x9b, 0x1b, 0x45, 0xcc, 0x2b, 0xc4, 0x3c, 0xe5, 0x15, 0x8a, 0x77, 0x90, 0x2b, 0x69, 0x66,
0xe6, 0x20, 0x57, 0xca, 0x98, 0xd9, 0x83, 0x5c, 0x29, 0x6b, 0xe6, 0x0e, 0x72, 0xa5, 0x9c, 0x99,
0x3f, 0xc8, 0x95, 0x8a, 0x66, 0xc9, 0xfa, 0x5e, 0x03, 0xfd, 0x7f, 0x33, 0xca, 0xc9, 0xdd, 0x8e,
0x24, 0x2b, 0xb2, 0xb0, 0x81, 0x8c, 0xb4, 0x01, 0x18, 0x2f, 0x2c, 0xf1, 0x96, 0xa3, 0x64, 0x57,
0x38, 0xca, 0x17, 0x7d, 0x33, 0xf7, 0x65, 0xdf, 0xfc, 0x41, 0x83, 0x6a, 0x1c, 0x64, 0x9c, 0xa4,
0x4d, 0x28, 0x25, 0x0e, 0xa9, 0x42, 0x2d, 0xb2, 0xd8, 0x1e, 0x1f, 0x02, 0xa4, 0x2e, 0x1b, 0x65,
0x9f, 0xe5, 0x30, 0xb9, 0x69, 0xfe, 0x02, 0xe5, 0x9b, 0xce, 0x59, 0xf2, 0xe7, 0xb6, 0x29, 0x2f,
0x02, 0x11, 0x24, 0xbe, 0xf6, 0x49, 0xc0, 0x1d, 0x79, 0xab, 0x2a, 0xff, 0xac, 0xc9, 0xe0, 0x14,
0xbe, 0x27, 0x12, 0xf5, 0x10, 0x60, 0x3c, 0xe5, 0x1f, 0x1d, 0x97, 0x4c, 0x39, 0x96, 0x25, 0xca,
0xdb, 0x65, 0x81, 0xec, 0x09, 0xc0, 0xaa, 0x41, 0x75, 0x44, 0xbf, 0x21, 0x41, 0x52, 0xe8, 0xff,
0x80, 0x31, 0x07, 0xe2, 0x4d, 0x6c, 0x41, 0x81, 0x4b, 0x24, 0xee, 0xac, 0xc5, 0x69, 0x3f, 0x64,
0x98, 0x4b, 0xb2, 0x1d, 0x33, 0xac, 0x1f, 0x33, 0x50, 0x4e, 0x50, 0x91, 0xf1, 0x33, 0xcc, 0x88,
0xe3, 0xe3, 0x31, 0x8e, 0x28, 0x0d, 0xe2, 0xfe, 0xd2, 0x05, 0x78, 0x14, 0x63, 0xe2, 0xa0, 0xcc,
0xf7, 0x31, 0xc1, 0x6c, 0x22, 0x53, 0xa1, 0xdb, 0x95, 0x18, 0xdb, 0xc7, 0x6c, 0x82, 0x9e, 0x82,
0x39, 0xa7, 0x84, 0x11, 0xf1, 0x7c, 0x7c, 0x41, 0x62, 0x7f, 0xae, 0xc5, 0xf8, 0x20, 0x86, 0x85,
0x8d, 0xa8, 0x2e, 0x73, 0x42, 0xec, 0xb9, 0x8e, 0xcf, 0x30, 0x8f, 0x1f, 0x06, 0x86, 0xc2, 0x07,
0xd8, 0x73, 0x8f, 0x18, 0xe6, 0xe8, 0x39, 0x3c, 0x48, 0xbd, 0x1e, 0x52, 0x74, 0xd5, 0xc6, 0x28,
0x4a, 0x9e, 0x0f, 0xc9, 0x94, 0xc7, 0xa0, 0x0b, 0x5f, 0x72, 0xc6, 0x11, 0xc1, 0x9c, 0xb8, 0x71,
0x23, 0x57, 0x04, 0xd6, 0x55, 0x10, 0x6a, 0x40, 0x91, 0x5c, 0x85, 0x5e, 0x44, 0x5c, 0xe9, 0x4b,
0x25, 0x7b, 0xfe, 0x29, 0x26, 0x33, 0x4e, 0x23, 0x7c, 0x41, 0x9c, 0x00, 0xfb, 0x44, 0x5a, 0x46,
0xd9, 0xae, 0xc4, 0xd8, 0x31, 0xf6, 0xc9, 0xd6, 0x13, 0x28, 0xcd, 0x8d, 0x16, 0xe9, 0x50, 0x3a,
0x3c, 0x39, 0x19, 0x38, 0x27, 0xa7, 0x23, 0xf3, 0x1e, 0xaa, 0x40, 0x51, 0x7e, 0xf5, 0x8f, 0x4d,
0x6d, 0x8b, 0x41, 0x39, 0xf1, 0x59, 0x54, 0x85, 0x72, 0xff, 0xb8, 0x3f, 0xea, 0xef, 0x8e, 0x7a,
0x7b, 0xe6, 0x3d, 0xf4, 0x00, 0xea, 0x03, 0xbb, 0xd7, 0x3f, 0xda, 0x7d, 0xd3, 0x73, 0xec, 0xde,
0xdb, 0xde, 0xee, 0x61, 0x6f, 0xcf, 0xd4, 0x10, 0x02, 0x63, 0x7f, 0x74, 0xd8, 0x75, 0x06, 0xa7,
0xaf, 0x0e, 0xfb, 0xc3, 0xfd, 0xde, 0x9e, 0x99, 0x11, 0x9a, 0xc3, 0xd3, 0x6e, 0xb7, 0x37, 0x1c,
0x9a, 0x59, 0x04, 0x50, 0x78, 0xbd, 0xdb, 0x17, 0xe4, 0x1c, 0x5a, 0x83, 0x5a, 0xff, 0xf8, 0xed,
0x49, 0xbf, 0xdb, 0x73, 0x86, 0xbd, 0xd1, 0x48, 0x80, 0xf9, 0x9d, 0x3f, 0x0a, 0xea, 0xa6, 0xe9,
0xca, 0xd7, 0x21, 0xb2, 0xa1, 0x18, 0xbf, 0xf7, 0xd0, 0xc6, 0xa2, 0x1f, 0x96, 0x5e, 0x80, 0xcd,
0x07, 0x4b, 0x16, 0x34, 0xef, 0x27, 0x6b, 0xe3, 0xdb, 0x5f, 0x7f, 0xff, 0x2e, 0x53, 0xb7, 0xf4,
0xce, 0xc7, 0xe7, 0x1d, 0xc1, 0xe8, 0xd0, 0x19, 0x7f, 0xa9, 0x6d, 0xa1, 0x13, 0x28, 0xa8, 0x67,
0x07, 0x5a, 0x5f, 0x92, 0x4c, 0xde, 0x21, 0x77, 0x29, 0xae, 0x4b, 0x45, 0xd3, 0xaa, 0x24, 0x8a,
0x5e, 0x20, 0x04, 0xff, 0x0d, 0xc5, 0xf8, 0xbe, 0x4c, 0x05, 0xb9, 0x7c, 0x83, 0x36, 0x57, 0xf9,
0xe4, 0xbf, 0x34, 0xf4, 0x1e, 0xca, 0x89, 0xc5, 0xa2, 0xcd, 0x45, 0x38, 0x37, 0xac, 0xb8, 0xd9,
0x5c, 0x35, 0xb4, 0x1c, 0x16, 0x32, 0x92, 0xb0, 0xa4, 0xfd, 0xa2, 0x53, 0x55, 0x66, 0x61, 0xbf,
0xa8, 0xb1, 0xb4, 0x7c, 0xca, 0x91, 0x57, 0x06, 0x66, 0x35, 0xa5, 0xe4, 0x7d, 0x84, 0x96, 0x24,
0x3b, 0x9f, 0x3c, 0xf7, 0x33, 0x7a, 0x07, 0x7a, 0x5c, 0x00, 0xe9, 0xd4, 0x68, 0x91, 0xac, 0xb4,
0x93, 0x37, 0xd7, 0x6f, 0xc2, 0x71, 0xb4, 0xb7, 0xa5, 0xe9, 0x8c, 0x77, 0xb8, 0x94, 0x72, 0x12,
0x69, 0xe9, 0x6f, 0x29, 0xe9, 0xb4, 0x29, 0xa7, 0xa4, 0x97, 0x6c, 0xd0, 0x6a, 0x49, 0xe9, 0x26,
0x6a, 0x2c, 0x49, 0x7f, 0x10, 0x9c, 0xce, 0x27, 0xec, 0xf3, 0xcf, 0xe8, 0x3d, 0x18, 0x6f, 0x08,
0x57, 0xc5, 0xfe, 0xaa, 0xe8, 0x37, 0xe5, 0x12, 0x6b, 0xa8, 0x9e, 0x6a, 0x81, 0x38, 0xf8, 0xff,
0xa7, 0xb4, 0xbf, 0x2a, 0xfc, 0x47, 0x52, 0x7b, 0x13, 0x6d, 0xa4, 0xb5, 0xd3, 0xd1, 0xbf, 0x83,
0xaa, 0x58, 0x61, 0xee, 0x7b, 0x2c, 0xd5, 0xbf, 0x4b, 0xe6, 0xda, 0xdc, 0xb8, 0x85, 0x2f, 0x9f,
0x09, 0x54, 0x93, 0x4b, 0x30, 0xcc, 0x3b, 0xca, 0x50, 0xcf, 0x0a, 0xf2, 0xff, 0xd5, 0x8b, 0x3f,
0x03, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x9f, 0xce, 0xa4, 0x96, 0x0d, 0x00, 0x00,
// 1549 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xcd, 0x72, 0xdb, 0xb6,
0x16, 0x0e, 0xf5, 0xaf, 0x23, 0x8a, 0xa2, 0xe0, 0xc4, 0x96, 0x75, 0x6f, 0x26, 0x0a, 0xef, 0x4d,
0xab, 0x78, 0x32, 0x56, 0xe3, 0xac, 0x9a, 0xe9, 0x74, 0xc6, 0x91, 0x95, 0x58, 0x1e, 0xff, 0xa8,
0x94, 0x9c, 0x99, 0x64, 0xc3, 0xc2, 0x22, 0x6c, 0x71, 0x2a, 0x12, 0x0c, 0x01, 0xc5, 0xf6, 0x64,
0xb2, 0xe9, 0x2b, 0xf4, 0x0d, 0xfa, 0x06, 0x5d, 0xf7, 0x0d, 0xba, 0xeb, 0xf4, 0x01, 0xba, 0xe9,
0xa6, 0xfb, 0x3e, 0x40, 0x07, 0x00, 0x45, 0x51, 0xfe, 0xc9, 0x22, 0x3b, 0xf1, 0xc3, 0x87, 0x0f,
0x07, 0xe7, 0x1c, 0x7c, 0x80, 0x40, 0x1f, 0x4f, 0x3d, 0x12, 0xf0, 0xcd, 0x30, 0xa2, 0x9c, 0xa2,
0xe2, 0x94, 0xd2, 0x30, 0x0a, 0xc7, 0xcd, 0xff, 0x9e, 0x51, 0x7a, 0x36, 0x25, 0x1d, 0x1c, 0x7a,
0x1d, 0x1c, 0x04, 0x94, 0x63, 0xee, 0xd1, 0x80, 0x29, 0x9a, 0xf5, 0x5b, 0x16, 0x8c, 0x7d, 0x4a,
0xc3, 0xa3, 0x19, 0xb7, 0xc9, 0xbb, 0x19, 0x61, 0x1c, 0x99, 0x90, 0xc5, 0x3e, 0x6f, 0x68, 0x2d,
0xad, 0x9d, 0xb5, 0xc5, 0x4f, 0x84, 0x20, 0xe7, 0x12, 0xc6, 0x1b, 0x99, 0x96, 0xd6, 0x2e, 0xdb,
0xf2, 0x37, 0xea, 0xc0, 0x5d, 0x1f, 0x5f, 0x38, 0xec, 0x1c, 0x87, 0x4e, 0x44, 0x67, 0xdc, 0x0b,
0xce, 0x9c, 0x53, 0x42, 0x1a, 0x59, 0x39, 0xad, 0xee, 0xe3, 0x8b, 0xe1, 0x39, 0x0e, 0x6d, 0x35,
0xf2, 0x92, 0x10, 0xf4, 0x0c, 0x56, 0xc5, 0x84, 0x30, 0x22, 0x21, 0xbe, 0x5c, 0x9a, 0x92, 0x93,
0x53, 0x56, 0x7c, 0x7c, 0x31, 0x90, 0x83, 0xa9, 0x49, 0x2d, 0xd0, 0x93, 0x55, 0x04, 0x35, 0x2f,
0xa9, 0x10, 0xab, 0x0b, 0xc6, 0xff, 0xc1, 0x48, 0xc9, 0x8a, 0xc0, 0x0b, 0x92, 0xa3, 0x27, 0x72,
0xdb, 0x3e, 0x47, 0x16, 0x54, 0x05, 0xcb, 0xf7, 0x02, 0x12, 0x49, 0xa1, 0xa2, 0x24, 0x55, 0x7c,
0x7c, 0x71, 0x20, 0x30, 0xa1, 0xf4, 0x04, 0x4c, 0x91, 0x33, 0x87, 0xce, 0xb8, 0x33, 0x9e, 0xe0,
0x20, 0x20, 0xd3, 0x46, 0xa9, 0xa5, 0xb5, 0x73, 0x2f, 0x32, 0x0d, 0xcd, 0x36, 0xa6, 0x2a, 0x4b,
0x5d, 0x35, 0x82, 0x36, 0xa0, 0x4e, 0x67, 0xfc, 0x8c, 0x8a, 0x4d, 0x08, 0xb6, 0xc3, 0x08, 0x6f,
0x54, 0x5a, 0xd9, 0x76, 0xce, 0xae, 0xcd, 0x07, 0x04, 0x77, 0x48, 0xb8, 0xe0, 0xb2, 0x73, 0x42,
0x42, 0x67, 0x4c, 0x83, 0x53, 0x87, 0xe3, 0xe8, 0x8c, 0xf0, 0x46, 0xb9, 0xa5, 0xb5, 0xf3, 0x76,
0x4d, 0x0e, 0x74, 0x69, 0x70, 0x3a, 0x92, 0x30, 0x7a, 0x0e, 0xeb, 0x72, 0xb7, 0xe1, 0xec, 0x64,
0xea, 0x8d, 0x65, 0xad, 0x1c, 0x97, 0x60, 0x77, 0xea, 0x05, 0xa4, 0x01, 0x22, 0x1c, 0x7b, 0x4d,
0x10, 0x06, 0x8b, 0xf1, 0x9d, 0x78, 0xd8, 0xfa, 0x5d, 0x83, 0xaa, 0x28, 0x66, 0x3f, 0xb8, 0xbd,
0x96, 0x57, 0x33, 0x9a, 0xb9, 0x96, 0xd1, 0x6b, 0xb9, 0xca, 0x5e, 0xcf, 0xd5, 0x3a, 0x94, 0xa6,
0x98, 0x71, 0x67, 0x42, 0x43, 0x59, 0x3e, 0xdd, 0x2e, 0x8a, 0xef, 0x5d, 0x1a, 0xa2, 0xff, 0x41,
0x95, 0x5c, 0x70, 0x12, 0x05, 0x78, 0xea, 0x4c, 0xf8, 0x74, 0x2c, 0x6b, 0x56, 0xb2, 0xf5, 0x39,
0xb8, 0xcb, 0xa7, 0x63, 0xd4, 0x06, 0x53, 0x8c, 0x2d, 0x25, 0xa4, 0x20, 0x13, 0x62, 0x08, 0x7c,
0x91, 0x0f, 0xeb, 0x6f, 0x0d, 0x74, 0xd9, 0x49, 0x84, 0x85, 0x34, 0x60, 0x04, 0x21, 0xc8, 0x78,
0xae, 0xdc, 0x51, 0x59, 0x16, 0x26, 0xe3, 0xb9, 0x22, 0x1c, 0xcf, 0x75, 0x4e, 0x2e, 0x39, 0x61,
0x32, 0x5a, 0xdd, 0x2e, 0x7a, 0xee, 0x0b, 0xf1, 0x89, 0x1e, 0x81, 0x2e, 0x57, 0xc2, 0xae, 0x1b,
0x11, 0xc6, 0x54, 0x0f, 0xcb, 0x89, 0x15, 0x81, 0x6f, 0x2b, 0x18, 0x6d, 0xc2, 0x4a, 0x9a, 0xe6,
0x04, 0xe1, 0xd6, 0x39, 0x9b, 0xc8, 0xbd, 0x95, 0xed, 0x7a, 0x8a, 0x79, 0x28, 0x07, 0xd0, 0x13,
0x40, 0x4b, 0x7c, 0x45, 0xcf, 0x4b, 0xba, 0x99, 0xa2, 0x0f, 0x24, 0xfb, 0x11, 0x18, 0x8c, 0x44,
0xef, 0x49, 0xe4, 0xf8, 0x84, 0x31, 0x7c, 0x46, 0xe4, 0x66, 0xcb, 0x76, 0x55, 0xa1, 0x07, 0x0a,
0xb4, 0x4c, 0x30, 0x0e, 0x68, 0xe0, 0x71, 0x1a, 0xc5, 0xf5, 0xb3, 0xfe, 0xcc, 0x02, 0x88, 0xdd,
0x0f, 0x39, 0xe6, 0x33, 0x76, 0xe3, 0xd1, 0x14, 0xd9, 0xc8, 0xdc, 0x9a, 0x8d, 0xca, 0xd5, 0x6c,
0xe4, 0xf8, 0x65, 0xa8, 0x4a, 0x6a, 0x6c, 0xd5, 0x37, 0x63, 0x93, 0xd8, 0x14, 0x6b, 0x8c, 0x2e,
0x43, 0x62, 0xcb, 0x61, 0xd4, 0x86, 0x3c, 0xe3, 0x98, 0xab, 0xa3, 0x69, 0x6c, 0xa1, 0x25, 0x9e,
0x88, 0x85, 0xd8, 0x8a, 0x80, 0xbe, 0x84, 0x9a, 0x17, 0x78, 0xdc, 0x53, 0x8d, 0xca, 0x3d, 0x7f,
0x7e, 0x46, 0x8d, 0x05, 0x3c, 0xf2, 0x7c, 0x21, 0x69, 0xca, 0x8e, 0x99, 0x85, 0x2e, 0xe6, 0x44,
0x31, 0xd5, 0x49, 0x35, 0x04, 0x7e, 0x2c, 0x61, 0xc9, 0xbc, 0x5a, 0xb1, 0xe2, 0xcd, 0x15, 0xbb,
0xb9, 0x02, 0xfa, 0x2d, 0x15, 0xb8, 0xa5, 0xbe, 0xd5, 0xdb, 0xea, 0xfb, 0x00, 0x2a, 0x63, 0xca,
0xb8, 0xa3, 0x0a, 0x24, 0x7d, 0x20, 0x6b, 0x83, 0x80, 0x86, 0x12, 0x41, 0x0f, 0x41, 0x97, 0x04,
0x1a, 0x8c, 0x27, 0xd8, 0x0b, 0xe4, 0x71, 0xce, 0xda, 0x72, 0xd2, 0x91, 0x82, 0xc4, 0x49, 0x50,
0x94, 0xd3, 0x53, 0xc5, 0x01, 0xe5, 0x4c, 0x92, 0x13, 0x63, 0x16, 0x02, 0x73, 0xdf, 0x63, 0x5c,
0x24, 0x96, 0xcd, 0xab, 0xfe, 0x2d, 0xd4, 0x53, 0x58, 0xdc, 0xf7, 0x8f, 0x21, 0x2f, 0x0e, 0x2d,
0x6b, 0x68, 0xad, 0x6c, 0xbb, 0xb2, 0xb5, 0x72, 0xad, 0x26, 0x33, 0x66, 0x2b, 0x86, 0xf5, 0x10,
0x6a, 0x02, 0xec, 0x07, 0xa7, 0x74, 0x6e, 0x04, 0x46, 0x72, 0x6a, 0x74, 0xd1, 0x23, 0x96, 0x01,
0xfa, 0x88, 0x44, 0x7e, 0xb2, 0xe4, 0x47, 0xa8, 0xc6, 0xdf, 0xf1, 0x72, 0x5f, 0x40, 0xcd, 0xf7,
0x02, 0xe5, 0x13, 0xd8, 0xa7, 0xb3, 0x80, 0xc7, 0x85, 0xad, 0xfa, 0x5e, 0x20, 0xd4, 0xb7, 0x25,
0x28, 0x79, 0x73, 0x3f, 0x89, 0x79, 0x85, 0x98, 0xa7, 0x2c, 0x45, 0xf1, 0xf6, 0x72, 0x25, 0xcd,
0xcc, 0xec, 0xe5, 0x4a, 0x19, 0x33, 0xbb, 0x97, 0x2b, 0x65, 0xcd, 0xdc, 0x5e, 0xae, 0x94, 0x33,
0xf3, 0x7b, 0xb9, 0x52, 0xd1, 0x2c, 0x59, 0x3f, 0x6b, 0xa0, 0x7f, 0x37, 0xa3, 0x9c, 0xdc, 0x6e,
0x5c, 0xb2, 0x22, 0x0b, 0xb7, 0xc8, 0x48, 0xb7, 0x80, 0xf1, 0xc2, 0x39, 0xaf, 0x19, 0x4f, 0xf6,
0x06, 0xe3, 0xf9, 0xa4, 0xbd, 0xe6, 0x3e, 0x6d, 0xaf, 0xbf, 0x68, 0x50, 0x8d, 0x83, 0x8c, 0x93,
0xb4, 0x0e, 0xa5, 0xc4, 0x48, 0x55, 0xa8, 0x45, 0x16, 0xbb, 0xe8, 0x7d, 0x80, 0xd4, 0x9d, 0xa4,
0x5c, 0xb6, 0x1c, 0x26, 0x17, 0xd2, 0x7f, 0xa0, 0x7c, 0xd5, 0x60, 0x4b, 0xfe, 0xdc, 0x5d, 0xe5,
0x7d, 0x21, 0x82, 0xc4, 0x97, 0x3e, 0x09, 0xb8, 0x23, 0x2f, 0x5f, 0x65, 0xb3, 0x35, 0x19, 0x9c,
0xc2, 0x77, 0x44, 0xa2, 0xee, 0x03, 0x8c, 0xa7, 0xfc, 0xbd, 0xe3, 0x92, 0x29, 0xc7, 0xb2, 0x44,
0x79, 0xbb, 0x2c, 0x90, 0x1d, 0x01, 0x58, 0x35, 0xa8, 0x8e, 0xe8, 0x0f, 0x24, 0x48, 0x0a, 0xfd,
0x0d, 0x18, 0x73, 0x20, 0xde, 0xc4, 0x06, 0x14, 0xb8, 0x44, 0xe2, 0xce, 0x5a, 0x9c, 0xf6, 0x7d,
0x86, 0xb9, 0x24, 0xdb, 0x31, 0xc3, 0xfa, 0x35, 0x03, 0xe5, 0x04, 0x15, 0x19, 0x3f, 0xc1, 0x8c,
0x38, 0x3e, 0x1e, 0xe3, 0x88, 0xd2, 0x20, 0xee, 0x2f, 0x5d, 0x80, 0x07, 0x31, 0x26, 0x0e, 0xca,
0x7c, 0x1f, 0x13, 0xcc, 0x26, 0x32, 0x15, 0xba, 0x5d, 0x89, 0xb1, 0x5d, 0xcc, 0x26, 0xe8, 0x31,
0x98, 0x73, 0x4a, 0x18, 0x11, 0xcf, 0x17, 0x06, 0xa9, 0x6c, 0xbc, 0x16, 0xe3, 0x83, 0x18, 0x16,
0x36, 0xa2, 0xba, 0xcc, 0x09, 0xb1, 0xe7, 0x3a, 0x3e, 0xc3, 0x3c, 0x7e, 0x3f, 0x18, 0x0a, 0x1f,
0x60, 0xcf, 0x3d, 0x60, 0x98, 0xa3, 0xa7, 0x70, 0x2f, 0xf5, 0xc8, 0x48, 0xd1, 0x55, 0x1b, 0xa3,
0x28, 0x79, 0x65, 0x24, 0x53, 0x1e, 0x82, 0x2e, 0x7c, 0xc9, 0x19, 0x47, 0x04, 0x73, 0xe2, 0xc6,
0x8d, 0x5c, 0x11, 0x58, 0x57, 0x41, 0xa8, 0x01, 0x45, 0x72, 0x11, 0x7a, 0x11, 0x71, 0xa5, 0x2f,
0x95, 0xec, 0xf9, 0xa7, 0x98, 0xcc, 0x38, 0x8d, 0xf0, 0x19, 0x71, 0x02, 0xec, 0x13, 0x69, 0x19,
0x65, 0xbb, 0x12, 0x63, 0x87, 0xd8, 0x27, 0x1b, 0x8f, 0xa0, 0x34, 0x37, 0x5a, 0xa4, 0x43, 0x69,
0xff, 0xe8, 0x68, 0xe0, 0x1c, 0x1d, 0x8f, 0xcc, 0x3b, 0xa8, 0x02, 0x45, 0xf9, 0xd5, 0x3f, 0x34,
0xb5, 0x0d, 0x06, 0xe5, 0xc4, 0x67, 0x51, 0x15, 0xca, 0xfd, 0xc3, 0xfe, 0xa8, 0xbf, 0x3d, 0xea,
0xed, 0x98, 0x77, 0xd0, 0x3d, 0xa8, 0x0f, 0xec, 0x5e, 0xff, 0x60, 0xfb, 0x55, 0xcf, 0xb1, 0x7b,
0xaf, 0x7b, 0xdb, 0xfb, 0xbd, 0x1d, 0x53, 0x43, 0x08, 0x8c, 0xdd, 0xd1, 0x7e, 0xd7, 0x19, 0x1c,
0xbf, 0xd8, 0xef, 0x0f, 0x77, 0x7b, 0x3b, 0x66, 0x46, 0x68, 0x0e, 0x8f, 0xbb, 0xdd, 0xde, 0x70,
0x68, 0x66, 0x11, 0x40, 0xe1, 0xe5, 0x76, 0x5f, 0x90, 0x73, 0x68, 0x05, 0x6a, 0xfd, 0xc3, 0xd7,
0x47, 0xfd, 0x6e, 0xcf, 0x19, 0xf6, 0x46, 0x23, 0x01, 0xe6, 0xb7, 0xfe, 0x29, 0xa8, 0x9b, 0xa6,
0x2b, 0x1f, 0x91, 0xc8, 0x86, 0x62, 0xfc, 0x2c, 0x44, 0x6b, 0x8b, 0x7e, 0x58, 0x7a, 0x28, 0x36,
0xef, 0x2d, 0x59, 0xd0, 0xbc, 0x9f, 0xac, 0xb5, 0x1f, 0xff, 0xf8, 0xeb, 0xa7, 0x4c, 0xdd, 0xd2,
0x3b, 0xef, 0x9f, 0x76, 0x04, 0xa3, 0x43, 0x67, 0xfc, 0xb9, 0xb6, 0x81, 0x8e, 0xa0, 0xa0, 0x5e,
0x27, 0x68, 0x75, 0x49, 0x32, 0x79, 0xae, 0xdc, 0xa6, 0xb8, 0x2a, 0x15, 0x4d, 0xab, 0x92, 0x28,
0x7a, 0x81, 0x10, 0xfc, 0x1a, 0x8a, 0xf1, 0x7d, 0x99, 0x0a, 0x72, 0xf9, 0x06, 0x6d, 0xde, 0xe4,
0x93, 0x5f, 0x69, 0xe8, 0x2d, 0x94, 0x13, 0x8b, 0x45, 0xeb, 0x8b, 0x70, 0xae, 0x58, 0x71, 0xb3,
0x79, 0xd3, 0xd0, 0x72, 0x58, 0xc8, 0x48, 0xc2, 0x92, 0xf6, 0x8b, 0x8e, 0x55, 0x99, 0x85, 0xfd,
0xa2, 0xc6, 0xd2, 0xf2, 0x29, 0x47, 0xbe, 0x31, 0x30, 0xab, 0x29, 0x25, 0xef, 0x22, 0xb4, 0x24,
0xd9, 0xf9, 0xe0, 0xb9, 0x1f, 0xd1, 0x1b, 0xd0, 0xe3, 0x02, 0x48, 0xa7, 0x46, 0x8b, 0x64, 0xa5,
0x9d, 0xbc, 0xb9, 0x7a, 0x15, 0x8e, 0xa3, 0xbd, 0x2e, 0x4d, 0x67, 0xbc, 0xc3, 0xa5, 0x94, 0x93,
0x48, 0x4b, 0x7f, 0x4b, 0x49, 0xa7, 0x4d, 0x39, 0x25, 0xbd, 0x64, 0x83, 0x56, 0x4b, 0x4a, 0x37,
0x51, 0x63, 0x49, 0xfa, 0x9d, 0xe0, 0x74, 0x3e, 0x60, 0x9f, 0x7f, 0x44, 0x6f, 0xc1, 0x78, 0x45,
0xb8, 0x2a, 0xf6, 0x67, 0x45, 0xbf, 0x2e, 0x97, 0x58, 0x41, 0xf5, 0x54, 0x0b, 0xc4, 0xc1, 0x7f,
0x9f, 0xd2, 0xfe, 0xac, 0xf0, 0x1f, 0x48, 0xed, 0x75, 0xb4, 0x96, 0xd6, 0x4e, 0x47, 0xff, 0x06,
0xaa, 0x62, 0x85, 0xb9, 0xef, 0xb1, 0x54, 0xff, 0x2e, 0x99, 0x6b, 0x73, 0xed, 0x1a, 0xbe, 0x7c,
0x26, 0x50, 0x4d, 0x2e, 0xc1, 0x30, 0xef, 0x28, 0x43, 0x3d, 0x29, 0xc8, 0xbf, 0x61, 0xcf, 0xfe,
0x0d, 0x00, 0x00, 0xff, 0xff, 0xba, 0x8f, 0xd4, 0xd8, 0xbd, 0x0d, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.

@ -272,6 +272,9 @@ message SwapResponse {
Used for both loop-in and loop-out.
*/
string htlc_address_p2wsh = 5;
// A human-readable message received from the loop server.
string server_message = 6;
}
message MonitorRequest {

@ -524,6 +524,10 @@
"htlc_address_p2wsh": {
"type": "string",
"description": "*\nThe native segwit address of the on-chain htlc.\nUsed for both loop-in and loop-out."
},
"server_message": {
"type": "string",
"description": "A human-readable message received from the loop server."
}
}
},

@ -145,10 +145,12 @@ func (m *ServerLoopOutRequest) GetProtocolVersion() ProtocolVersion {
}
type ServerLoopOutResponse struct {
SwapInvoice string `protobuf:"bytes,1,opt,name=swap_invoice,json=swapInvoice,proto3" json:"swap_invoice,omitempty"`
PrepayInvoice string `protobuf:"bytes,2,opt,name=prepay_invoice,json=prepayInvoice,proto3" json:"prepay_invoice,omitempty"`
SenderKey []byte `protobuf:"bytes,3,opt,name=sender_key,json=senderKey,proto3" json:"sender_key,omitempty"`
Expiry int32 `protobuf:"varint,4,opt,name=expiry,proto3" json:"expiry,omitempty"`
SwapInvoice string `protobuf:"bytes,1,opt,name=swap_invoice,json=swapInvoice,proto3" json:"swap_invoice,omitempty"`
PrepayInvoice string `protobuf:"bytes,2,opt,name=prepay_invoice,json=prepayInvoice,proto3" json:"prepay_invoice,omitempty"`
SenderKey []byte `protobuf:"bytes,3,opt,name=sender_key,json=senderKey,proto3" json:"sender_key,omitempty"`
Expiry int32 `protobuf:"varint,4,opt,name=expiry,proto3" json:"expiry,omitempty"`
// A human-readable message from the loop server.
ServerMessage string `protobuf:"bytes,5,opt,name=server_message,json=serverMessage,proto3" json:"server_message,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -207,6 +209,13 @@ func (m *ServerLoopOutResponse) GetExpiry() int32 {
return 0
}
func (m *ServerLoopOutResponse) GetServerMessage() string {
if m != nil {
return m.ServerMessage
}
return ""
}
type ServerLoopOutQuoteRequest struct {
/// The swap amount. If zero, a quote for a maximum amt swap will be given.
Amt uint64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"`
@ -525,8 +534,10 @@ func (m *ServerLoopInRequest) GetProtocolVersion() ProtocolVersion {
}
type ServerLoopInResponse struct {
ReceiverKey []byte `protobuf:"bytes,1,opt,name=receiver_key,json=receiverKey,proto3" json:"receiver_key,omitempty"`
Expiry int32 `protobuf:"varint,2,opt,name=expiry,proto3" json:"expiry,omitempty"`
ReceiverKey []byte `protobuf:"bytes,1,opt,name=receiver_key,json=receiverKey,proto3" json:"receiver_key,omitempty"`
Expiry int32 `protobuf:"varint,2,opt,name=expiry,proto3" json:"expiry,omitempty"`
// A human-readable message from the loop server.
ServerMessage string `protobuf:"bytes,3,opt,name=server_message,json=serverMessage,proto3" json:"server_message,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -571,6 +582,13 @@ func (m *ServerLoopInResponse) GetExpiry() int32 {
return 0
}
func (m *ServerLoopInResponse) GetServerMessage() string {
if m != nil {
return m.ServerMessage
}
return ""
}
type ServerLoopInQuoteRequest struct {
/// The swap amount. If zero, a quote for a maximum amt swap will be given.
Amt uint64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"`
@ -887,63 +905,64 @@ func init() {
func init() { proto.RegisterFile("server.proto", fileDescriptor_ad098daeda4239f7) }
var fileDescriptor_ad098daeda4239f7 = []byte{
// 884 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x41, 0x73, 0xda, 0x46,
0x14, 0xae, 0x04, 0xc6, 0xe6, 0x19, 0xdb, 0x64, 0xd3, 0xa4, 0x82, 0xc4, 0x1d, 0x4c, 0xa7, 0x1e,
0xd7, 0x07, 0x67, 0x26, 0xbd, 0xf5, 0x46, 0x63, 0x62, 0x33, 0x25, 0x86, 0x08, 0x9c, 0x4e, 0x4f,
0xea, 0x06, 0x5e, 0x8d, 0xa6, 0x42, 0xbb, 0x91, 0x16, 0x6c, 0xce, 0xfd, 0x13, 0xed, 0x9f, 0xe8,
0xbf, 0xe9, 0xb9, 0xb7, 0xce, 0xf4, 0x5f, 0x64, 0xb4, 0xbb, 0x32, 0x48, 0x08, 0xdb, 0xcc, 0xf8,
0xc6, 0xbe, 0xf7, 0xe9, 0xed, 0xfb, 0xbe, 0xb7, 0xdf, 0x03, 0x4a, 0x21, 0x06, 0x53, 0x0c, 0x4e,
0x78, 0xc0, 0x04, 0x23, 0x9b, 0x1e, 0x63, 0x3c, 0xe0, 0x83, 0xea, 0xcb, 0x2b, 0xc6, 0xae, 0x3c,
0x7c, 0x45, 0xb9, 0xfb, 0x8a, 0xfa, 0x3e, 0x13, 0x54, 0xb8, 0xcc, 0x0f, 0x15, 0xac, 0xfe, 0xbf,
0x01, 0x5f, 0xf6, 0xe4, 0x77, 0x6d, 0xc6, 0x78, 0x67, 0x22, 0x6c, 0xfc, 0x34, 0xc1, 0x50, 0x90,
0x03, 0x28, 0x05, 0x38, 0x40, 0x77, 0x8a, 0x81, 0xf3, 0x3b, 0xce, 0x2c, 0xa3, 0x66, 0x1c, 0x95,
0xec, 0xed, 0x38, 0xf6, 0x13, 0xce, 0xc8, 0x0b, 0x28, 0x86, 0xd7, 0x94, 0x3b, 0x23, 0x1a, 0x8e,
0x2c, 0x53, 0xe6, 0xb7, 0xa2, 0xc0, 0x39, 0x0d, 0x47, 0xa4, 0x0c, 0x39, 0x3a, 0x16, 0x56, 0xae,
0x66, 0x1c, 0xe5, 0xed, 0xe8, 0x27, 0xf9, 0x01, 0x2a, 0x12, 0xce, 0x27, 0x1f, 0x3d, 0x77, 0x20,
0xbb, 0x70, 0x86, 0x48, 0x87, 0x9e, 0xeb, 0xa3, 0x95, 0xaf, 0x19, 0x47, 0x39, 0xfb, 0xab, 0x08,
0xd0, 0x9d, 0xe7, 0x4f, 0x75, 0x9a, 0xbc, 0x81, 0xb2, 0xec, 0x77, 0xc0, 0x3c, 0x67, 0x8a, 0x41,
0xe8, 0x32, 0xdf, 0xda, 0xa8, 0x19, 0x47, 0xbb, 0xaf, 0xad, 0x13, 0x4d, 0xf4, 0xa4, 0xab, 0x01,
0x1f, 0x54, 0xde, 0xde, 0xe3, 0xc9, 0x40, 0xfd, 0x4f, 0x03, 0x9e, 0xa5, 0xb8, 0x86, 0x9c, 0xf9,
0x21, 0x46, 0x64, 0x65, 0x6b, 0xae, 0x3f, 0x65, 0xee, 0x00, 0x25, 0xd9, 0xa2, 0xbd, 0x1d, 0xc5,
0x5a, 0x2a, 0x44, 0xbe, 0x85, 0x5d, 0x1e, 0x20, 0xa7, 0xb3, 0x5b, 0x90, 0x29, 0x41, 0x3b, 0x2a,
0x1a, 0xc3, 0xf6, 0x01, 0x42, 0xf4, 0x87, 0x5a, 0xb4, 0x9c, 0x14, 0xa5, 0xa8, 0x22, 0x91, 0x64,
0xcf, 0xa1, 0x80, 0x37, 0xdc, 0x0d, 0x66, 0x92, 0xf0, 0x86, 0xad, 0x4f, 0xf5, 0xbf, 0x0d, 0xa8,
0x24, 0x5a, 0x7b, 0x3f, 0x61, 0x02, 0xe3, 0x59, 0x68, 0x2d, 0x8d, 0x07, 0x6a, 0x69, 0xae, 0xaf,
0x65, 0x6e, 0x5d, 0x2d, 0xff, 0x32, 0x81, 0x2c, 0x37, 0x4c, 0x8e, 0xe1, 0x89, 0xea, 0x8b, 0xce,
0xc6, 0xe8, 0x0b, 0x67, 0x88, 0xa1, 0xd0, 0x6a, 0xee, 0xc9, 0x7e, 0x54, 0xfc, 0x34, 0x62, 0x55,
0x01, 0xf9, 0x5a, 0x9c, 0xdf, 0x30, 0x6e, 0x79, 0x33, 0x3a, 0xbf, 0x45, 0x24, 0x87, 0xb0, 0x13,
0xa7, 0x9c, 0x80, 0x0a, 0x94, 0xfd, 0xe5, 0x7e, 0x34, 0x2d, 0x43, 0x0d, 0xe5, 0x2d, 0xa2, 0x4d,
0x85, 0x54, 0x5b, 0x0f, 0x25, 0xd2, 0x27, 0x2f, 0xf5, 0x29, 0xaa, 0x48, 0x63, 0x2c, 0xc8, 0x31,
0xec, 0x8d, 0x5d, 0xdf, 0x91, 0xa5, 0xe8, 0x98, 0x4d, 0x7c, 0x21, 0x1f, 0x4d, 0x5e, 0x16, 0xda,
0x19, 0xbb, 0x7e, 0xef, 0x9a, 0xf2, 0x86, 0x4c, 0x48, 0x2c, 0xbd, 0x49, 0x60, 0x0b, 0x0b, 0x58,
0x7a, 0xb3, 0x80, 0xdd, 0x07, 0x18, 0x78, 0x62, 0xea, 0x0c, 0xd1, 0x13, 0xd4, 0xda, 0x94, 0x93,
0x2c, 0x46, 0x91, 0xd3, 0x28, 0x50, 0xff, 0x35, 0x35, 0xcb, 0x3e, 0x06, 0xe3, 0x30, 0x9e, 0x65,
0x96, 0xfa, 0xc6, 0xba, 0xea, 0x0f, 0x53, 0xe2, 0xcb, 0x1b, 0xc8, 0xe1, 0x32, 0x5d, 0xf5, 0x64,
0x52, 0x54, 0x0f, 0x97, 0xa9, 0x9a, 0x1a, 0xb7, 0x48, 0xb3, 0xfe, 0x9f, 0x01, 0x4f, 0xe7, 0xd7,
0xb4, 0xfc, 0x98, 0x42, 0xf2, 0x8d, 0x1b, 0xe9, 0x37, 0xbe, 0xe6, 0x5a, 0x48, 0x7b, 0x2f, 0xbf,
0xec, 0xbd, 0x0a, 0x6c, 0x79, 0x34, 0x14, 0xce, 0x88, 0x71, 0x39, 0xc0, 0x92, 0xbd, 0x19, 0x9d,
0xcf, 0x19, 0xcf, 0x94, 0xb3, 0xb0, 0xae, 0x9c, 0xef, 0x17, 0x77, 0x60, 0xc4, 0x73, 0xbe, 0x16,
0xee, 0xdb, 0x81, 0x73, 0x43, 0x9b, 0x09, 0x43, 0x7f, 0x02, 0x6b, 0xb1, 0xe4, 0x3d, 0x76, 0xce,
0x62, 0x61, 0xae, 0xcb, 0xe2, 0x9f, 0xc4, 0x0e, 0xb9, 0xbd, 0x53, 0x73, 0x59, 0x74, 0x9b, 0x71,
0x8f, 0xdb, 0xcc, 0x6c, 0xb7, 0x65, 0xd8, 0x29, 0xbf, 0x86, 0x9d, 0x36, 0x1e, 0x66, 0xa7, 0x42,
0xda, 0x4e, 0x4e, 0x52, 0xca, 0xc7, 0x77, 0xd3, 0x00, 0x9e, 0x2c, 0x5d, 0xf0, 0xe8, 0x66, 0xfa,
0xc3, 0x80, 0x5a, 0xc2, 0xb3, 0xdd, 0x49, 0x38, 0xea, 0x06, 0xe8, 0x8e, 0xe9, 0x15, 0x3e, 0x26,
0x1d, 0x52, 0x85, 0x2d, 0xae, 0xeb, 0xc6, 0xf6, 0x8b, 0xcf, 0xf5, 0x6f, 0xe0, 0xe0, 0x8e, 0x26,
0xd4, 0x53, 0x39, 0x1e, 0xc1, 0x5e, 0xea, 0x12, 0x02, 0x50, 0x68, 0x37, 0xcf, 0x1a, 0x6f, 0x7e,
0x29, 0x7f, 0x41, 0x08, 0xec, 0xbe, 0xbb, 0x6c, 0xf7, 0x5b, 0x4e, 0xbb, 0xd3, 0xe9, 0x3a, 0x9d,
0xcb, 0x7e, 0xd9, 0x20, 0x15, 0x78, 0x76, 0xd1, 0xe8, 0xb7, 0x3e, 0x34, 0x9d, 0x5e, 0xf3, 0xec,
0xe7, 0x56, 0x5f, 0xe5, 0x5a, 0x17, 0x65, 0x93, 0x54, 0xe1, 0x79, 0xd7, 0x6e, 0xb6, 0xde, 0x35,
0xce, 0x9a, 0x4e, 0xf7, 0xb2, 0x77, 0x3e, 0xff, 0x2c, 0xf7, 0xfa, 0xdf, 0x3c, 0x40, 0xa4, 0x91,
0xea, 0x89, 0x74, 0xa0, 0x94, 0x58, 0x68, 0xf5, 0x5b, 0xd2, 0x2b, 0xf7, 0x69, 0xf5, 0xc5, 0x1d,
0x18, 0xd2, 0x81, 0xdd, 0x0b, 0xbc, 0xd6, 0xa1, 0xe8, 0x22, 0xb2, 0x9f, 0x0d, 0x8f, 0xab, 0x7d,
0xbd, 0x2a, 0xad, 0x5d, 0xe4, 0xc1, 0xd3, 0x0c, 0xe5, 0xc8, 0x77, 0xd9, 0x9f, 0x65, 0x8c, 0xb8,
0x7a, 0xfc, 0x10, 0xa8, 0xbe, 0x6d, 0xae, 0x87, 0xfa, 0x77, 0x5d, 0xa1, 0xc7, 0xe2, 0x72, 0x59,
0xa5, 0x87, 0x2a, 0xd0, 0x86, 0xed, 0xc5, 0x37, 0x7e, 0x90, 0x81, 0x4d, 0x1a, 0xac, 0x5a, 0x5d,
0x0d, 0x21, 0x6d, 0xd8, 0xd1, 0xea, 0xb6, 0xa4, 0x23, 0xc8, 0xcb, 0x4c, 0x70, 0x5c, 0x6a, 0x7f,
0x45, 0x56, 0x93, 0xed, 0xc7, 0xbd, 0xa9, 0x56, 0xb3, 0x7b, 0x4b, 0x50, 0xad, 0xdf, 0x05, 0x51,
0x55, 0x3f, 0x16, 0xa4, 0x3b, 0xbe, 0xff, 0x1c, 0x00, 0x00, 0xff, 0xff, 0x76, 0xc4, 0xb9, 0x29,
0x1d, 0x0b, 0x00, 0x00,
// 906 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x72, 0xda, 0x56,
0x10, 0xae, 0x04, 0xc6, 0x66, 0x0d, 0x36, 0x39, 0x69, 0x52, 0x41, 0xe2, 0x0e, 0xa6, 0x53, 0x8f,
0xeb, 0x0b, 0x67, 0x26, 0xbd, 0xeb, 0x1d, 0x8d, 0x89, 0xcd, 0x14, 0x1b, 0x2a, 0xe3, 0x74, 0x7a,
0xa5, 0x9e, 0xc0, 0xd6, 0x68, 0x2a, 0xe9, 0x28, 0xd2, 0x01, 0x9b, 0xeb, 0x3e, 0x45, 0x5f, 0xa2,
0xaf, 0xd0, 0xa7, 0xe8, 0x75, 0xef, 0x3a, 0xd3, 0xb7, 0xe8, 0x9c, 0x1f, 0x19, 0x04, 0xc2, 0x36,
0x33, 0xbe, 0x43, 0xbb, 0x9f, 0x76, 0xf7, 0xfb, 0x56, 0xdf, 0x02, 0xa5, 0x18, 0xa3, 0x09, 0x46,
0xc7, 0x61, 0xc4, 0x38, 0x23, 0x9b, 0x1e, 0x63, 0x61, 0x14, 0x0e, 0x6a, 0xaf, 0xaf, 0x19, 0xbb,
0xf6, 0xf0, 0x0d, 0x0d, 0xdd, 0x37, 0x34, 0x08, 0x18, 0xa7, 0xdc, 0x65, 0x41, 0xac, 0x60, 0x8d,
0xff, 0x0c, 0xf8, 0xfc, 0x52, 0xbe, 0xd7, 0x61, 0x2c, 0xec, 0x8e, 0xb9, 0x8d, 0x9f, 0xc6, 0x18,
0x73, 0xb2, 0x0f, 0xa5, 0x08, 0x07, 0xe8, 0x4e, 0x30, 0x72, 0x7e, 0xc3, 0xa9, 0x65, 0xd4, 0x8d,
0xc3, 0x92, 0xbd, 0x9d, 0xc4, 0x7e, 0xc0, 0x29, 0x79, 0x05, 0xc5, 0xf8, 0x86, 0x86, 0xce, 0x88,
0xc6, 0x23, 0xcb, 0x94, 0xf9, 0x2d, 0x11, 0x38, 0xa3, 0xf1, 0x88, 0x54, 0x20, 0x47, 0x7d, 0x6e,
0xe5, 0xea, 0xc6, 0x61, 0xde, 0x16, 0x3f, 0xc9, 0x77, 0x50, 0x95, 0xf0, 0x70, 0xfc, 0xd1, 0x73,
0x07, 0x72, 0x0a, 0x67, 0x88, 0x74, 0xe8, 0xb9, 0x01, 0x5a, 0xf9, 0xba, 0x71, 0x98, 0xb3, 0xbf,
0x10, 0x80, 0xde, 0x2c, 0x7f, 0xa2, 0xd3, 0xe4, 0x1d, 0x54, 0xe4, 0xbc, 0x03, 0xe6, 0x39, 0x13,
0x8c, 0x62, 0x97, 0x05, 0xd6, 0x46, 0xdd, 0x38, 0xdc, 0x79, 0x6b, 0x1d, 0x6b, 0xa2, 0xc7, 0x3d,
0x0d, 0xf8, 0xa0, 0xf2, 0xf6, 0x6e, 0x98, 0x0e, 0x34, 0xfe, 0x32, 0xe0, 0xc5, 0x02, 0xd7, 0x38,
0x64, 0x41, 0x8c, 0x82, 0xac, 0x1c, 0xcd, 0x0d, 0x26, 0xcc, 0x1d, 0xa0, 0x24, 0x5b, 0xb4, 0xb7,
0x45, 0xac, 0xad, 0x42, 0xe4, 0x6b, 0xd8, 0x09, 0x23, 0x0c, 0xe9, 0xf4, 0x0e, 0x64, 0x4a, 0x50,
0x59, 0x45, 0x13, 0xd8, 0x1e, 0x40, 0x8c, 0xc1, 0x50, 0x8b, 0x96, 0x93, 0xa2, 0x14, 0x55, 0x44,
0x48, 0xf6, 0x12, 0x0a, 0x78, 0x1b, 0xba, 0xd1, 0x54, 0x12, 0xde, 0xb0, 0xf5, 0x93, 0xa8, 0xae,
0xb6, 0xe7, 0xf8, 0x18, 0xc7, 0xf4, 0x1a, 0x25, 0xbb, 0xa2, 0x5d, 0x56, 0xd1, 0x73, 0x15, 0x6c,
0xfc, 0x69, 0x40, 0x35, 0xc5, 0xe0, 0xc7, 0x31, 0xe3, 0x98, 0xac, 0x4c, 0x4b, 0x6e, 0x3c, 0x52,
0x72, 0x73, 0x7d, 0xc9, 0x73, 0xeb, 0x4a, 0xfe, 0x87, 0x09, 0x64, 0x79, 0x60, 0x72, 0x04, 0xcf,
0xd4, 0x5c, 0x74, 0xea, 0x63, 0xc0, 0x9d, 0x21, 0xc6, 0x5c, 0x8b, 0xbe, 0x2b, 0xe7, 0x51, 0xf1,
0x13, 0xc1, 0xaa, 0x0a, 0xf2, 0xa3, 0x72, 0x7e, 0xc5, 0x64, 0xe4, 0x4d, 0xf1, 0xfc, 0x1e, 0x91,
0x1c, 0x40, 0x39, 0x49, 0x39, 0x11, 0xe5, 0x28, 0xe7, 0xcb, 0x7d, 0x6f, 0x5a, 0x86, 0xda, 0xdd,
0x7b, 0x44, 0x9b, 0x72, 0xb9, 0x14, 0xbd, 0x3b, 0xa1, 0x4f, 0x5e, 0xea, 0x53, 0x54, 0x91, 0xa6,
0xcf, 0xc9, 0x11, 0xec, 0xfa, 0x6e, 0xe0, 0xc8, 0x52, 0xd4, 0x67, 0xe3, 0x80, 0x4b, 0xf5, 0xf3,
0xb2, 0x50, 0xd9, 0x77, 0x83, 0xcb, 0x1b, 0x1a, 0x36, 0x65, 0x42, 0x62, 0xe9, 0x6d, 0x0a, 0x5b,
0x98, 0xc3, 0xd2, 0xdb, 0x39, 0xec, 0x1e, 0xc0, 0xc0, 0xe3, 0x13, 0x67, 0x88, 0x1e, 0xa7, 0xd6,
0xa6, 0x5c, 0x78, 0x51, 0x44, 0x4e, 0x44, 0xa0, 0xf1, 0xcb, 0xc2, 0x2e, 0xfb, 0x18, 0xf9, 0x71,
0xb2, 0xcb, 0x2c, 0xf5, 0x8d, 0x75, 0xd5, 0x1f, 0x2e, 0x88, 0x2f, 0x3b, 0x90, 0x83, 0x65, 0xba,
0xea, 0x93, 0x59, 0xa0, 0x7a, 0xb0, 0x4c, 0xd5, 0xd4, 0xb8, 0x79, 0x9a, 0x8d, 0x7f, 0x0d, 0x78,
0x3e, 0x6b, 0xd3, 0x0e, 0x12, 0x0a, 0x69, 0x2b, 0x18, 0x8b, 0x56, 0x58, 0xf3, 0x7a, 0x2c, 0x5a,
0x34, 0xbf, 0x6c, 0xd1, 0x2a, 0x6c, 0x79, 0x34, 0xe6, 0xce, 0x88, 0x85, 0x72, 0x81, 0x25, 0x7b,
0x53, 0x3c, 0x9f, 0xb1, 0x30, 0x53, 0xce, 0xc2, 0xba, 0x72, 0xde, 0xce, 0x9f, 0x4a, 0xc1, 0x73,
0x76, 0x3d, 0x1e, 0x3a, 0x95, 0x33, 0xdf, 0x9b, 0x0f, 0xf8, 0x3e, 0x97, 0xe5, 0xfb, 0x4f, 0x60,
0xcd, 0x77, 0x7e, 0xc0, 0xf5, 0x59, 0x64, 0xcd, 0x75, 0xc9, 0xfe, 0x9d, 0x3a, 0x35, 0x77, 0x3d,
0x35, 0xe5, 0x79, 0x53, 0x1a, 0x0f, 0x98, 0xd2, 0xcc, 0x36, 0x65, 0x86, 0xeb, 0xf2, 0x6b, 0xb8,
0x6e, 0xe3, 0x71, 0xae, 0x2b, 0x2c, 0xba, 0xce, 0x49, 0x4b, 0xf9, 0xf4, 0xa6, 0x1b, 0xc0, 0xb3,
0xa5, 0x06, 0x4f, 0xee, 0xb9, 0xdf, 0x0d, 0xa8, 0xa7, 0xac, 0xdd, 0x1b, 0xc7, 0xa3, 0x5e, 0x84,
0xae, 0x4f, 0xaf, 0xf1, 0x29, 0xe9, 0x90, 0x1a, 0x6c, 0x85, 0xba, 0x6e, 0xe2, 0xd2, 0xe4, 0xb9,
0xf1, 0x15, 0xec, 0xdf, 0x33, 0x84, 0xfa, 0x54, 0x8e, 0x46, 0xb0, 0xbb, 0xd0, 0x84, 0x00, 0x14,
0x3a, 0xad, 0xd3, 0xe6, 0xbb, 0x9f, 0x2b, 0x9f, 0x11, 0x02, 0x3b, 0xe7, 0x57, 0x9d, 0x7e, 0xdb,
0xe9, 0x74, 0xbb, 0x3d, 0xa7, 0x7b, 0xd5, 0xaf, 0x18, 0xa4, 0x0a, 0x2f, 0x2e, 0x9a, 0xfd, 0xf6,
0x87, 0x96, 0x73, 0xd9, 0x3a, 0xfd, 0xa9, 0xdd, 0x57, 0xb9, 0xf6, 0x45, 0xc5, 0x24, 0x35, 0x78,
0xd9, 0xb3, 0x5b, 0xed, 0xf3, 0xe6, 0x69, 0xcb, 0xe9, 0x5d, 0x5d, 0x9e, 0xcd, 0x5e, 0xcb, 0xbd,
0xfd, 0x27, 0x0f, 0x20, 0x34, 0x52, 0x33, 0x91, 0x2e, 0x94, 0x52, 0x77, 0xaf, 0x71, 0x47, 0x7a,
0xe5, 0xd9, 0xad, 0xbd, 0xba, 0x07, 0x43, 0xba, 0xb0, 0x73, 0x81, 0x37, 0x3a, 0x24, 0x1a, 0x91,
0xbd, 0x6c, 0x78, 0x52, 0xed, 0xcb, 0x55, 0x69, 0xed, 0x22, 0x0f, 0x9e, 0x67, 0x28, 0x47, 0xbe,
0xc9, 0x7e, 0x2d, 0x63, 0xc5, 0xb5, 0xa3, 0xc7, 0x40, 0x75, 0xb7, 0x99, 0x1e, 0xea, 0x4f, 0x78,
0x85, 0x1e, 0xf3, 0xc7, 0x65, 0x95, 0x1e, 0xaa, 0x40, 0x07, 0xb6, 0xe7, 0xbf, 0xf1, 0xfd, 0x0c,
0x6c, 0xda, 0x60, 0xb5, 0xda, 0x6a, 0x08, 0xe9, 0x40, 0x59, 0xab, 0xdb, 0x96, 0x8e, 0x20, 0xaf,
0x33, 0xc1, 0x49, 0xa9, 0xbd, 0x15, 0x59, 0x4d, 0xb6, 0x9f, 0xcc, 0xa6, 0x46, 0xcd, 0x9e, 0x2d,
0x45, 0xb5, 0x71, 0x1f, 0x44, 0x55, 0xfd, 0x58, 0x90, 0xee, 0xf8, 0xf6, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0x52, 0x9a, 0x24, 0x73, 0x6b, 0x0b, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.

@ -72,6 +72,9 @@ message ServerLoopOutResponse {
bytes sender_key = 3;
int32 expiry = 4;
// A human-readable message from the loop server.
string server_message = 5;
}
message ServerLoopOutQuoteRequest {
@ -127,6 +130,9 @@ message ServerLoopInRequest {
message ServerLoopInResponse {
bytes receiver_key = 1;
int32 expiry = 2;
// A human-readable message from the loop server.
string server_message = 3;
}
message ServerLoopInQuoteRequest {

@ -215,6 +215,7 @@ func (s *grpcSwapServerClient) NewLoopOutSwap(ctx context.Context,
prepayInvoice: swapResp.PrepayInvoice,
senderKey: senderKey,
expiry: swapResp.Expiry,
serverMessage: swapResp.ServerMessage,
}, nil
}
@ -268,8 +269,9 @@ func (s *grpcSwapServerClient) NewLoopInSwap(ctx context.Context,
}
return &newLoopInResponse{
receiverKey: receiverKey,
expiry: swapResp.Expiry,
receiverKey: receiverKey,
expiry: swapResp.Expiry,
serverMessage: swapResp.ServerMessage,
}, nil
}
@ -334,9 +336,11 @@ type newLoopOutResponse struct {
prepayInvoice string
senderKey [33]byte
expiry int32
serverMessage string
}
type newLoopInResponse struct {
receiverKey [33]byte
expiry int32
receiverKey [33]byte
expiry int32
serverMessage string
}

Loading…
Cancel
Save