From 15317d7893c6ddc2e61ebc8a09f78434f809ea7c Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Mon, 20 Mar 2023 14:27:18 -0600 Subject: [PATCH 01/46] Flush query should include begin and end block events (#1125) * Include begin and end block events * disable flushing when termination condition is set * Still flush for FlushLifecycle * Add sort for flush logging to avoid confusion --- relayer/chains/cosmos/query.go | 56 +++++++++++++++++--- relayer/processor/path_processor.go | 31 ++++++++--- relayer/processor/path_processor_internal.go | 3 ++ 3 files changed, 77 insertions(+), 13 deletions(-) diff --git a/relayer/chains/cosmos/query.go b/relayer/chains/cosmos/query.go index c4690f6b3..5525d2c81 100644 --- a/relayer/chains/cosmos/query.go +++ b/relayer/chains/cosmos/query.go @@ -8,6 +8,7 @@ import ( "fmt" "strconv" "strings" + "sync" "time" abci "github.com/cometbft/cometbft/abci/types" @@ -52,14 +53,55 @@ func (cc *CosmosProvider) queryIBCMessages(ctx context.Context, log *zap.Logger, return nil, errors.New("limit must greater than 0") } - res, err := cc.RPCClient.TxSearch(ctx, query, true, &page, &limit, "") - if err != nil { - return nil, err - } - var ibcMsgs []ibcMessage + var eg errgroup.Group chainID := cc.ChainId() - for _, tx := range res.Txs { - ibcMsgs = append(ibcMsgs, ibcMessagesFromEvents(log, tx.TxResult.Events, chainID, 0, base64Encoded)...) + var ibcMsgs []ibcMessage + var mu sync.Mutex + + eg.Go(func() error { + res, err := cc.RPCClient.BlockSearch(ctx, query, &page, &limit, "") + if err != nil { + return err + } + + var nestedEg errgroup.Group + + for _, b := range res.Blocks { + b := b + nestedEg.Go(func() error { + block, err := cc.RPCClient.BlockResults(ctx, &b.Block.Height) + if err != nil { + return err + } + + mu.Lock() + defer mu.Unlock() + ibcMsgs = append(ibcMsgs, ibcMessagesFromEvents(log, block.BeginBlockEvents, chainID, 0, base64Encoded)...) + ibcMsgs = append(ibcMsgs, ibcMessagesFromEvents(log, block.EndBlockEvents, chainID, 0, base64Encoded)...) + + return nil + }) + } + return nestedEg.Wait() + }) + + eg.Go(func() error { + res, err := cc.RPCClient.TxSearch(ctx, query, true, &page, &limit, "") + if err != nil { + return err + } + + mu.Lock() + defer mu.Unlock() + for _, tx := range res.Txs { + ibcMsgs = append(ibcMsgs, ibcMessagesFromEvents(log, tx.TxResult.Events, chainID, 0, base64Encoded)...) + } + + return nil + }) + + if err := eg.Wait(); err != nil { + return nil, err } return ibcMsgs, nil diff --git a/relayer/processor/path_processor.go b/relayer/processor/path_processor.go index 317764d0a..3fb8f6b95 100644 --- a/relayer/processor/path_processor.go +++ b/relayer/processor/path_processor.go @@ -95,11 +95,7 @@ func NewPathProcessor( clientUpdateThresholdTime time.Duration, flushInterval time.Duration, ) *PathProcessor { - if flushInterval == 0 { - // "disable" periodic flushing by using a large value. - flushInterval = 200 * 24 * 365 * time.Hour - } - return &PathProcessor{ + pp := &PathProcessor{ log: log, pathEnd1: newPathEndRuntime(log, pathEnd1, metrics), pathEnd2: newPathEndRuntime(log, pathEnd2, metrics), @@ -109,10 +105,33 @@ func NewPathProcessor( flushInterval: flushInterval, metrics: metrics, } + if flushInterval == 0 { + pp.disablePeriodicFlush() + } + return pp +} + +// disablePeriodicFlush will "disable" periodic flushing by using a large value. +func (pp *PathProcessor) disablePeriodicFlush() { + pp.flushInterval = 200 * 24 * 365 * time.Hour } func (pp *PathProcessor) SetMessageLifecycle(messageLifecycle MessageLifecycle) { pp.messageLifecycle = messageLifecycle + if !pp.shouldFlush() { + // disable flushing when termination conditions are set, e.g. connection/channel handshakes + pp.disablePeriodicFlush() + } +} + +func (pp *PathProcessor) shouldFlush() bool { + if pp.messageLifecycle == nil { + return true + } + if _, ok := pp.messageLifecycle.(*FlushLifecycle); ok { + return true + } + return false } // TEST USE ONLY @@ -299,7 +318,7 @@ func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { continue } - if !pp.initialFlushComplete { + if pp.shouldFlush() && !pp.initialFlushComplete { pp.flush(ctx) pp.initialFlushComplete = true } else if pp.shouldTerminateForFlushComplete(ctx, cancel) { diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index f588a44dc..15a4e896e 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -781,6 +781,9 @@ func queryPacketCommitments( for i, p := range c.Commitments { commitments[k][i] = p.Sequence } + sort.SliceStable(commitments[k], func(i, j int) bool { + return commitments[k][i] < commitments[k][j] + }) return nil } } From 665ab907e8c06c6a4de3f3737dabefcd8ad98017 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Mon, 20 Mar 2023 14:55:36 -0600 Subject: [PATCH 02/46] pre_init messages (#1131) * Wire initial messages into path processor caches so that retry logic will occur * Fix counterparty keys * Remove debug log --- interchaintest/relayer.go | 2 +- relayer/chains/mock/message_handlers.go | 24 +- relayer/chains/mock/mock_chain_processor.go | 5 + relayer/processor/message_processor.go | 5 +- relayer/processor/path_end_runtime.go | 29 +- relayer/processor/path_processor_internal.go | 762 +++++++++++-------- relayer/processor/types.go | 24 + relayer/processor/types_internal.go | 31 +- 8 files changed, 538 insertions(+), 344 deletions(-) diff --git a/interchaintest/relayer.go b/interchaintest/relayer.go index 7c5a0e81c..ded1c97ec 100644 --- a/interchaintest/relayer.go +++ b/interchaintest/relayer.go @@ -158,7 +158,7 @@ func (r *Relayer) GetClients(ctx context.Context, _ ibc.RelayerExecReporter, cha if strings.TrimSpace(client) == "" { continue } - var clientOutput *ibc.ClientOutput + clientOutput := &ibc.ClientOutput{} if err := json.Unmarshal([]byte(client), clientOutput); err != nil { return nil, fmt.Errorf("failed to parse client %q: %w", client, err) } diff --git a/relayer/chains/mock/message_handlers.go b/relayer/chains/mock/message_handlers.go index 01d2ff24b..263f50d71 100644 --- a/relayer/chains/mock/message_handlers.go +++ b/relayer/chains/mock/message_handlers.go @@ -11,6 +11,7 @@ import ( type msgHandlerParams struct { mcp *MockChainProcessor + height int64 packetInfo *chantypes.Packet ibcMessagesCache processor.IBCMessagesCache } @@ -31,9 +32,14 @@ func handleMsgTransfer(p msgHandlerParams) { CounterpartyPortID: p.packetInfo.DestinationPort, } p.ibcMessagesCache.PacketFlow.Retain(channelKey, chantypes.EventTypeSendPacket, provider.PacketInfo{ + Height: uint64(p.height), Sequence: p.packetInfo.Sequence, Data: p.packetInfo.Data, TimeoutHeight: p.packetInfo.TimeoutHeight, + SourcePort: p.packetInfo.SourcePort, + SourceChannel: p.packetInfo.SourceChannel, + DestPort: p.packetInfo.DestinationPort, + DestChannel: p.packetInfo.DestinationChannel, }) p.mcp.log.Debug("observed MsgTransfer", zap.String("chain_id", p.mcp.chainID), @@ -53,8 +59,13 @@ func handleMsgRecvPacket(p msgHandlerParams) { CounterpartyPortID: p.packetInfo.SourcePort, } p.ibcMessagesCache.PacketFlow.Retain(channelKey, chantypes.EventTypeRecvPacket, provider.PacketInfo{ - Sequence: p.packetInfo.Sequence, - Data: p.packetInfo.Data, + Height: uint64(p.height), + Sequence: p.packetInfo.Sequence, + Data: p.packetInfo.Data, + SourcePort: p.packetInfo.SourcePort, + SourceChannel: p.packetInfo.SourceChannel, + DestPort: p.packetInfo.DestinationPort, + DestChannel: p.packetInfo.DestinationChannel, }) p.mcp.log.Debug("observed MsgRecvPacket", zap.String("chain_id", p.mcp.chainID), @@ -74,8 +85,13 @@ func handleMsgAcknowledgement(p msgHandlerParams) { CounterpartyPortID: p.packetInfo.DestinationPort, } p.ibcMessagesCache.PacketFlow.Retain(channelKey, chantypes.EventTypeAcknowledgePacket, provider.PacketInfo{ - Sequence: p.packetInfo.Sequence, - Data: p.packetInfo.Data, + Height: uint64(p.height), + Sequence: p.packetInfo.Sequence, + Data: p.packetInfo.Data, + SourcePort: p.packetInfo.SourcePort, + SourceChannel: p.packetInfo.SourceChannel, + DestPort: p.packetInfo.DestinationPort, + DestChannel: p.packetInfo.DestinationChannel, }) p.mcp.log.Debug("observed MsgAcknowledgement", zap.String("chain_id", p.mcp.chainID), diff --git a/relayer/chains/mock/mock_chain_processor.go b/relayer/chains/mock/mock_chain_processor.go index 329c4215b..5c94a63d6 100644 --- a/relayer/chains/mock/mock_chain_processor.go +++ b/relayer/chains/mock/mock_chain_processor.go @@ -156,6 +156,7 @@ func (mcp *MockChainProcessor) queryCycle(ctx context.Context, persistence *quer for _, m := range messages { if handler, ok := messageHandlers[m.EventType]; ok { handler(msgHandlerParams{ + height: i, mcp: mcp, packetInfo: m.PacketInfo, ibcMessagesCache: ibcMessagesCache, @@ -175,6 +176,10 @@ func (mcp *MockChainProcessor) queryCycle(ctx context.Context, persistence *quer for _, pp := range mcp.pathProcessors { mcp.log.Info("sending messages to path processor", zap.String("chain_id", mcp.chainID)) pp.HandleNewData(mcp.chainID, processor.ChainProcessorCacheData{ + LatestBlock: provider.LatestBlock{ + Height: uint64(i), + Time: time.Now(), + }, IBCMessagesCache: ibcMessagesCache, InSync: mcp.inSync, ChannelStateCache: channelStateCache, diff --git a/relayer/processor/message_processor.go b/relayer/processor/message_processor.go index 776c66303..55b1a9adf 100644 --- a/relayer/processor/message_processor.go +++ b/relayer/processor/message_processor.go @@ -199,7 +199,10 @@ func (mp *messageProcessor) assembleMessage( mp.trackMessage(msg.tracker(assembled), i) wg.Done() if err != nil { - dst.log.Error(fmt.Sprintf("Error assembling %s message", msg.msgType()), zap.Object("msg", msg)) + dst.log.Error(fmt.Sprintf("Error assembling %s message", msg.msgType()), + zap.Object("msg", msg), + zap.Error(err), + ) return } dst.log.Debug(fmt.Sprintf("Assembled %s message", msg.msgType()), zap.Object("msg", msg)) diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index 05c0f07b5..a16e36838 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -459,6 +459,9 @@ func (pathEnd *pathEndRuntime) removePacketRetention( toDelete := make(map[string][]uint64) toDeleteCounterparty := make(map[string][]uint64) switch eventType { + case chantypes.EventTypeSendPacket: + toDelete[eventType] = []uint64{sequence} + toDelete[preInitKey] = []uint64{sequence} case chantypes.EventTypeRecvPacket: toDelete[eventType] = []uint64{sequence} toDeleteCounterparty[chantypes.EventTypeSendPacket] = []uint64{sequence} @@ -480,7 +483,7 @@ func (pathEnd *pathEndRuntime) removePacketRetention( // It will also determine if the message needs to be given up on entirely and remove retention if so. func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBCMessage, counterparty *pathEndRuntime) bool { eventType := message.eventType - k := connectionInfoConnectionKey(message.info).Counterparty() + k := ConnectionInfoConnectionKey(message.info).Counterparty() if message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay connection message until counterparty height has incremented", zap.Inline(k), @@ -520,15 +523,20 @@ func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBC toDeleteCounterparty := make(map[string][]ConnectionKey) counterpartyKey := k.Counterparty() switch eventType { + case conntypes.EventTypeConnectionOpenInit: + toDelete[preInitKey] = []ConnectionKey{k.PreInitKey()} case conntypes.EventTypeConnectionOpenTry: toDeleteCounterparty[conntypes.EventTypeConnectionOpenInit] = []ConnectionKey{counterpartyKey.MsgInitKey()} + toDeleteCounterparty[preInitKey] = []ConnectionKey{counterpartyKey.PreInitKey()} case conntypes.EventTypeConnectionOpenAck: toDeleteCounterparty[conntypes.EventTypeConnectionOpenTry] = []ConnectionKey{counterpartyKey} toDelete[conntypes.EventTypeConnectionOpenInit] = []ConnectionKey{k.MsgInitKey()} + toDelete[preInitKey] = []ConnectionKey{k.PreInitKey()} case conntypes.EventTypeConnectionOpenConfirm: toDeleteCounterparty[conntypes.EventTypeConnectionOpenAck] = []ConnectionKey{counterpartyKey} toDelete[conntypes.EventTypeConnectionOpenTry] = []ConnectionKey{k} toDeleteCounterparty[conntypes.EventTypeConnectionOpenInit] = []ConnectionKey{counterpartyKey.MsgInitKey()} + toDeleteCounterparty[preInitKey] = []ConnectionKey{counterpartyKey.PreInitKey()} } // delete in progress send for this specific message pathEnd.connProcessing.deleteMessages(map[string][]ConnectionKey{eventType: {k}}) @@ -543,11 +551,11 @@ func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBC return true } -// shouldSendConnectionMessage determines if the channel handshake message should be sent now. +// shouldSendChannelMessage determines if the channel handshake message should be sent now. // It will also determine if the message needs to be given up on entirely and remove retention if so. func (pathEnd *pathEndRuntime) shouldSendChannelMessage(message channelIBCMessage, counterparty *pathEndRuntime) bool { eventType := message.eventType - channelKey := channelInfoChannelKey(message.info).Counterparty() + channelKey := ChannelInfoChannelKey(message.info).Counterparty() if message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay channel message until counterparty height has incremented", zap.Inline(channelKey), @@ -591,15 +599,20 @@ func (pathEnd *pathEndRuntime) shouldSendChannelMessage(message channelIBCMessag counterpartyKey := channelKey.Counterparty() switch eventType { + case chantypes.EventTypeChannelOpenInit: + toDelete[preInitKey] = []ChannelKey{channelKey.MsgInitKey()} case chantypes.EventTypeChannelOpenTry: toDeleteCounterparty[chantypes.EventTypeChannelOpenInit] = []ChannelKey{counterpartyKey.MsgInitKey()} + toDeleteCounterparty[preInitKey] = []ChannelKey{counterpartyKey.MsgInitKey()} case chantypes.EventTypeChannelOpenAck: toDeleteCounterparty[chantypes.EventTypeChannelOpenTry] = []ChannelKey{counterpartyKey} toDelete[chantypes.EventTypeChannelOpenInit] = []ChannelKey{channelKey.MsgInitKey()} + toDelete[preInitKey] = []ChannelKey{channelKey.MsgInitKey()} case chantypes.EventTypeChannelOpenConfirm: toDeleteCounterparty[chantypes.EventTypeChannelOpenAck] = []ChannelKey{counterpartyKey} toDelete[chantypes.EventTypeChannelOpenTry] = []ChannelKey{channelKey} toDeleteCounterparty[chantypes.EventTypeChannelOpenInit] = []ChannelKey{counterpartyKey.MsgInitKey()} + toDeleteCounterparty[preInitKey] = []ChannelKey{counterpartyKey.MsgInitKey()} case chantypes.EventTypeChannelCloseConfirm: toDeleteCounterparty[chantypes.EventTypeChannelCloseInit] = []ChannelKey{counterpartyKey} toDelete[chantypes.EventTypeChannelCloseConfirm] = []ChannelKey{channelKey} @@ -722,7 +735,10 @@ func (pathEnd *pathEndRuntime) trackProcessingMessage(tracker messageToTrack) ui } case channelMessageToTrack: eventType := t.msg.eventType - channelKey := channelInfoChannelKey(t.msg.info).Counterparty() + channelKey := ChannelInfoChannelKey(t.msg.info) + if eventType != chantypes.EventTypeChannelOpenInit { + channelKey = channelKey.Counterparty() + } msgProcessCache, ok := pathEnd.channelProcessing[eventType] if !ok { msgProcessCache = make(channelKeySendCache) @@ -740,7 +756,10 @@ func (pathEnd *pathEndRuntime) trackProcessingMessage(tracker messageToTrack) ui } case connectionMessageToTrack: eventType := t.msg.eventType - connectionKey := connectionInfoConnectionKey(t.msg.info).Counterparty() + connectionKey := ConnectionInfoConnectionKey(t.msg.info) + if eventType != conntypes.EventTypeConnectionOpenInit { + connectionKey = connectionKey.Counterparty() + } msgProcessCache, ok := pathEnd.connProcessing[eventType] if !ok { msgProcessCache = make(connectionKeySendCache) diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 15a4e896e..1271227be 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -14,6 +14,11 @@ import ( "golang.org/x/sync/errgroup" ) +// preInitKey is used to declare intent to initialize a connection or channel handshake +// i.e. a MsgConnectionOpenInit or a MsgChannelOpenInit should be broadcasted to start +// the handshake if this key exists in the relevant cache. +const preInitKey = "pre_init" + // getMessagesToSend returns only the lowest sequence message (if it should be sent) for ordered channels, // otherwise returns all which should be sent. func (pp *PathProcessor) getMessagesToSend( @@ -58,93 +63,129 @@ func (pp *PathProcessor) getMessagesToSend( return srcMsgs, dstMsgs } -func (pp *PathProcessor) getUnrelayedPacketsAndAcksAndToDelete(ctx context.Context, pathEndPacketFlowMessages pathEndPacketFlowMessages) pathEndPacketFlowResponse { - res := pathEndPacketFlowResponse{ - ToDeleteSrc: make(map[string][]uint64), - ToDeleteDst: make(map[string][]uint64), - ToDeleteDstChannel: make(map[string][]ChannelKey), - } - - var msgs []packetIBCMessage - -MsgTransferLoop: - for transferSeq, msgTransfer := range pathEndPacketFlowMessages.SrcMsgTransfer { - for ackSeq := range pathEndPacketFlowMessages.SrcMsgAcknowledgement { - if transferSeq == ackSeq { - // we have an ack for this packet, so packet flow is complete - // remove all retention of this sequence number - res.ToDeleteSrc[chantypes.EventTypeSendPacket] = append(res.ToDeleteSrc[chantypes.EventTypeSendPacket], transferSeq) - res.ToDeleteDst[chantypes.EventTypeRecvPacket] = append(res.ToDeleteDst[chantypes.EventTypeRecvPacket], transferSeq) - res.ToDeleteDst[chantypes.EventTypeWriteAck] = append(res.ToDeleteDst[chantypes.EventTypeWriteAck], transferSeq) - res.ToDeleteSrc[chantypes.EventTypeAcknowledgePacket] = append(res.ToDeleteSrc[chantypes.EventTypeAcknowledgePacket], transferSeq) - continue MsgTransferLoop - } - } +func (pp *PathProcessor) unrelayedPacketFlowMessages( + ctx context.Context, + pathEndPacketFlowMessages pathEndPacketFlowMessages, +) pathEndPacketFlowResponse { + var ( + res pathEndPacketFlowResponse + msgs []packetIBCMessage + toDeleteSrc = make(map[string][]uint64) + toDeleteDst = make(map[string][]uint64) + toDeleteDstChannel = make(map[string][]ChannelKey) + ) - for timeoutSeq, msgTimeout := range pathEndPacketFlowMessages.SrcMsgTimeout { - if transferSeq == timeoutSeq { - if msgTimeout.ChannelOrder == chantypes.ORDERED.String() { - // For ordered channel packets, flow is not done until channel-close-confirm is observed. - if pathEndPacketFlowMessages.DstMsgChannelCloseConfirm == nil { - // have not observed a channel-close-confirm yet for this channel, send it if ready. - // will come back through here next block if not yet ready. - closeChan := channelIBCMessage{ - eventType: chantypes.EventTypeChannelCloseConfirm, - info: provider.ChannelInfo{ - Height: msgTimeout.Height, - PortID: msgTimeout.SourcePort, - ChannelID: msgTimeout.SourceChannel, - CounterpartyPortID: msgTimeout.DestPort, - CounterpartyChannelID: msgTimeout.DestChannel, - Order: orderFromString(msgTimeout.ChannelOrder), - }, - } - - if pathEndPacketFlowMessages.Dst.shouldSendChannelMessage(closeChan, pathEndPacketFlowMessages.Src) { - res.DstChannelMessage = append(res.DstChannelMessage, closeChan) - } - } else { - // ordered channel, and we have a channel close confirm, so packet-flow and channel-close-flow is complete. - // remove all retention of this sequence number and this channel-close-confirm. - res.ToDeleteDstChannel[chantypes.EventTypeChannelCloseConfirm] = append(res.ToDeleteDstChannel[chantypes.EventTypeChannelCloseConfirm], pathEndPacketFlowMessages.ChannelKey.Counterparty()) - res.ToDeleteSrc[chantypes.EventTypeSendPacket] = append(res.ToDeleteSrc[chantypes.EventTypeSendPacket], transferSeq) - res.ToDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(res.ToDeleteSrc[chantypes.EventTypeTimeoutPacket], transferSeq) - } - } else { - // unordered channel, and we have a timeout for this packet, so packet flow is complete - // remove all retention of this sequence number - res.ToDeleteSrc[chantypes.EventTypeSendPacket] = append(res.ToDeleteSrc[chantypes.EventTypeSendPacket], transferSeq) - res.ToDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(res.ToDeleteSrc[chantypes.EventTypeTimeoutPacket], transferSeq) - } - continue MsgTransferLoop - } + k := pathEndPacketFlowMessages.ChannelKey + + deletePreInitIfMatches := func(info provider.PacketInfo) { + cachedInfo, ok := pathEndPacketFlowMessages.SrcPreTransfer[0] + if !ok { + return } - for timeoutOnCloseSeq := range pathEndPacketFlowMessages.SrcMsgTimeoutOnClose { - if transferSeq == timeoutOnCloseSeq { - // we have a timeout for this packet, so packet flow is complete - // remove all retention of this sequence number - res.ToDeleteSrc[chantypes.EventTypeSendPacket] = append(res.ToDeleteSrc[chantypes.EventTypeSendPacket], transferSeq) - res.ToDeleteSrc[chantypes.EventTypeTimeoutPacketOnClose] = append(res.ToDeleteSrc[chantypes.EventTypeTimeoutPacketOnClose], transferSeq) - continue MsgTransferLoop - } + if !bytes.Equal(cachedInfo.Data, info.Data) { + return } - for msgRecvSeq, msgAcknowledgement := range pathEndPacketFlowMessages.DstMsgRecvPacket { - if transferSeq == msgRecvSeq { - if len(msgAcknowledgement.Ack) == 0 { - // have recv_packet but not write_acknowledgement yet. skip for now. - continue MsgTransferLoop + toDeleteSrc[preInitKey] = []uint64{0} + } + + processRemovals := func() { + pathEndPacketFlowMessages.Src.messageCache.PacketFlow[k].DeleteMessages(toDeleteSrc) + pathEndPacketFlowMessages.Dst.messageCache.PacketFlow[k.Counterparty()].DeleteMessages(toDeleteDst) + pathEndPacketFlowMessages.Dst.messageCache.ChannelHandshake.DeleteMessages(toDeleteDstChannel) + pathEndPacketFlowMessages.Src.packetProcessing[k].deleteMessages(toDeleteSrc) + pathEndPacketFlowMessages.Dst.packetProcessing[k.Counterparty()].deleteMessages(toDeleteDst) + pathEndPacketFlowMessages.Dst.channelProcessing.deleteMessages(toDeleteDstChannel) + toDeleteSrc = make(map[string][]uint64) + toDeleteDst = make(map[string][]uint64) + toDeleteDstChannel = make(map[string][]ChannelKey) + } + + for seq, info := range pathEndPacketFlowMessages.SrcMsgAcknowledgement { + // we have observed an ack on chain for this packet, so packet flow is complete + // remove all retention of this sequence number + deletePreInitIfMatches(info) + toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) + toDeleteDst[chantypes.EventTypeRecvPacket] = append(toDeleteDst[chantypes.EventTypeRecvPacket], seq) + toDeleteDst[chantypes.EventTypeWriteAck] = append(toDeleteDst[chantypes.EventTypeWriteAck], seq) + toDeleteSrc[chantypes.EventTypeAcknowledgePacket] = append(toDeleteSrc[chantypes.EventTypeAcknowledgePacket], seq) + } + + for seq, info := range pathEndPacketFlowMessages.SrcMsgTimeoutOnClose { + // we have observed a timeout-on-close on chain for this packet, so packet flow is complete + // remove all retention of this sequence number + deletePreInitIfMatches(info) + toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) + toDeleteDst[chantypes.EventTypeRecvPacket] = append(toDeleteDst[chantypes.EventTypeRecvPacket], seq) + toDeleteDst[chantypes.EventTypeWriteAck] = append(toDeleteDst[chantypes.EventTypeWriteAck], seq) + toDeleteSrc[chantypes.EventTypeAcknowledgePacket] = append(toDeleteSrc[chantypes.EventTypeAcknowledgePacket], seq) + } + + for seq, info := range pathEndPacketFlowMessages.SrcMsgTimeout { + if info.ChannelOrder == chantypes.ORDERED.String() { + // For ordered channel packets, flow is not done until channel-close-confirm is observed. + if pathEndPacketFlowMessages.DstMsgChannelCloseConfirm == nil { + // have not observed a channel-close-confirm yet for this channel, send it if ready. + // will come back through here next block if not yet ready. + closeChan := channelIBCMessage{ + eventType: chantypes.EventTypeChannelCloseConfirm, + info: provider.ChannelInfo{ + Height: info.Height, + PortID: info.SourcePort, + ChannelID: info.SourceChannel, + CounterpartyPortID: info.DestPort, + CounterpartyChannelID: info.DestChannel, + Order: orderFromString(info.ChannelOrder), + }, } - // msg is received by dst chain, but no ack yet. Need to relay ack from dst to src! - ackMsg := packetIBCMessage{ - eventType: chantypes.EventTypeAcknowledgePacket, - info: msgAcknowledgement, + + if pathEndPacketFlowMessages.Dst.shouldSendChannelMessage(closeChan, pathEndPacketFlowMessages.Src) { + res.DstChannelMessage = append(res.DstChannelMessage, closeChan) } - msgs = append(msgs, ackMsg) - continue MsgTransferLoop + } else { + // ordered channel, and we have a channel close confirm, so packet-flow and channel-close-flow is complete. + // remove all retention of this sequence number and this channel-close-confirm. + toDeleteDstChannel[chantypes.EventTypeChannelCloseConfirm] = append( + toDeleteDstChannel[chantypes.EventTypeChannelCloseConfirm], + k.Counterparty(), + ) + deletePreInitIfMatches(info) + toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) + toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) } + } else { + // unordered channel, and we have a timeout for this packet, so packet flow is complete + // remove all retention of this sequence number + deletePreInitIfMatches(info) + toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) + toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) + } + } + + processRemovals() + + for seq, info := range pathEndPacketFlowMessages.DstMsgRecvPacket { + deletePreInitIfMatches(info) + toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) + + if len(info.Ack) == 0 { + // have recv_packet but not write_acknowledgement yet. skip for now. + continue + } + // msg is received by dst chain, but no ack yet. Need to relay ack from dst to src! + ackMsg := packetIBCMessage{ + eventType: chantypes.EventTypeAcknowledgePacket, + info: info, } + msgs = append(msgs, ackMsg) + } + + processRemovals() + + for _, info := range pathEndPacketFlowMessages.SrcMsgTransfer { + deletePreInitIfMatches(info) + // Packet is not yet relayed! need to relay either MsgRecvPacket from src to dst, or MsgTimeout/MsgTimeoutOnClose from dst to src - if err := pathEndPacketFlowMessages.Dst.chainProvider.ValidatePacket(msgTransfer, pathEndPacketFlowMessages.Dst.latestBlock); err != nil { + if err := pathEndPacketFlowMessages.Dst.chainProvider.ValidatePacket(info, pathEndPacketFlowMessages.Dst.latestBlock); err != nil { var timeoutHeightErr *provider.TimeoutHeightError var timeoutTimestampErr *provider.TimeoutTimestampError var timeoutOnCloseErr *provider.TimeoutOnCloseError @@ -153,13 +194,13 @@ MsgTransferLoop: case errors.As(err, &timeoutHeightErr) || errors.As(err, &timeoutTimestampErr): timeoutMsg := packetIBCMessage{ eventType: chantypes.EventTypeTimeoutPacket, - info: msgTransfer, + info: info, } msgs = append(msgs, timeoutMsg) case errors.As(err, &timeoutOnCloseErr): timeoutOnCloseMsg := packetIBCMessage{ eventType: chantypes.EventTypeTimeoutPacketOnClose, - info: msgTransfer, + info: info, } msgs = append(msgs, timeoutOnCloseMsg) default: @@ -168,209 +209,284 @@ MsgTransferLoop: zap.Error(err), ) } - continue MsgTransferLoop + continue } recvPacketMsg := packetIBCMessage{ eventType: chantypes.EventTypeRecvPacket, - info: msgTransfer, + info: info, } msgs = append(msgs, recvPacketMsg) } - res.SrcMessages, res.DstMessages = pp.getMessagesToSend(msgs, pathEndPacketFlowMessages.Src, pathEndPacketFlowMessages.Dst) + processRemovals() - // now iterate through packet-flow-complete messages and remove any leftover messages if the MsgTransfer or MsgRecvPacket was in a previous block that we did not query - for ackSeq := range pathEndPacketFlowMessages.SrcMsgAcknowledgement { - res.ToDeleteSrc[chantypes.EventTypeSendPacket] = append(res.ToDeleteSrc[chantypes.EventTypeSendPacket], ackSeq) - res.ToDeleteDst[chantypes.EventTypeRecvPacket] = append(res.ToDeleteDst[chantypes.EventTypeRecvPacket], ackSeq) - res.ToDeleteDst[chantypes.EventTypeWriteAck] = append(res.ToDeleteDst[chantypes.EventTypeWriteAck], ackSeq) - res.ToDeleteSrc[chantypes.EventTypeAcknowledgePacket] = append(res.ToDeleteSrc[chantypes.EventTypeAcknowledgePacket], ackSeq) - } - for timeoutSeq, msgTimeout := range pathEndPacketFlowMessages.SrcMsgTimeout { - if msgTimeout.ChannelOrder != chantypes.ORDERED.String() { - res.ToDeleteSrc[chantypes.EventTypeSendPacket] = append(res.ToDeleteSrc[chantypes.EventTypeSendPacket], timeoutSeq) - res.ToDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(res.ToDeleteSrc[chantypes.EventTypeTimeoutPacket], timeoutSeq) + for _, info := range pathEndPacketFlowMessages.SrcPreTransfer { + msgTransfer := packetIBCMessage{ + eventType: chantypes.EventTypeSendPacket, + info: info, } - } - for timeoutOnCloseSeq := range pathEndPacketFlowMessages.SrcMsgTimeoutOnClose { - res.ToDeleteSrc[chantypes.EventTypeSendPacket] = append(res.ToDeleteSrc[chantypes.EventTypeSendPacket], timeoutOnCloseSeq) - res.ToDeleteSrc[chantypes.EventTypeTimeoutPacketOnClose] = append(res.ToDeleteSrc[chantypes.EventTypeTimeoutPacketOnClose], timeoutOnCloseSeq) + msgs = append(msgs, msgTransfer) } + res.SrcMessages, res.DstMessages = pp.getMessagesToSend(msgs, pathEndPacketFlowMessages.Src, pathEndPacketFlowMessages.Dst) + return res } -func (pp *PathProcessor) getUnrelayedConnectionHandshakeMessagesAndToDelete(pathEndConnectionHandshakeMessages pathEndConnectionHandshakeMessages) pathEndConnectionHandshakeResponse { - res := pathEndConnectionHandshakeResponse{ - ToDeleteSrc: make(map[string][]ConnectionKey), - ToDeleteDst: make(map[string][]ConnectionKey), - } - -ConnectionHandshakeLoop: - for openInitKey, openInitMsg := range pathEndConnectionHandshakeMessages.SrcMsgConnectionOpenInit { - var foundOpenTry *provider.ConnectionInfo - for openTryKey, openTryMsg := range pathEndConnectionHandshakeMessages.DstMsgConnectionOpenTry { - // MsgConnectionOpenInit does not have counterparty connection ID, so check if everything - // else matches for counterparty. If so, add counterparty connection ID for - // the checks later on in this function. - if openInitKey == openTryKey.Counterparty().MsgInitKey() { - openInitKey.CounterpartyConnID = openTryKey.ConnectionID - foundOpenTry = &openTryMsg - break - } +func (pp *PathProcessor) unrelayedConnectionHandshakeMessages( + pathEndConnectionHandshakeMessages pathEndConnectionHandshakeMessages, +) pathEndConnectionHandshakeResponse { + var ( + res pathEndConnectionHandshakeResponse + toDeleteSrc = make(map[string][]ConnectionKey) + toDeleteDst = make(map[string][]ConnectionKey) + ) + + processRemovals := func() { + pathEndConnectionHandshakeMessages.Src.messageCache.ConnectionHandshake.DeleteMessages(toDeleteSrc) + pathEndConnectionHandshakeMessages.Dst.messageCache.ConnectionHandshake.DeleteMessages(toDeleteDst) + pathEndConnectionHandshakeMessages.Src.connProcessing.deleteMessages(toDeleteSrc) + pathEndConnectionHandshakeMessages.Dst.connProcessing.deleteMessages(toDeleteDst) + toDeleteSrc = make(map[string][]ConnectionKey) + toDeleteDst = make(map[string][]ConnectionKey) + } + + for connKey := range pathEndConnectionHandshakeMessages.DstMsgConnectionOpenConfirm { + // found open confirm, channel handshake complete. remove all retention + + counterpartyKey := connKey.Counterparty() + toDeleteDst[conntypes.EventTypeConnectionOpenConfirm] = append( + toDeleteDst[conntypes.EventTypeConnectionOpenConfirm], + connKey, + ) + toDeleteSrc[conntypes.EventTypeConnectionOpenAck] = append( + toDeleteSrc[conntypes.EventTypeConnectionOpenAck], + counterpartyKey, + ) + toDeleteDst[conntypes.EventTypeConnectionOpenTry] = append( + toDeleteDst[conntypes.EventTypeConnectionOpenTry], + connKey, + ) + + // MsgConnectionOpenInit does not have CounterpartyConnectionID + toDeleteSrc[conntypes.EventTypeConnectionOpenInit] = append( + toDeleteSrc[conntypes.EventTypeConnectionOpenInit], + counterpartyKey.MsgInitKey(), + ) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], counterpartyKey.PreInitKey()) + } + + processRemovals() + + for connKey, info := range pathEndConnectionHandshakeMessages.SrcMsgConnectionOpenAck { + // need to send an open confirm to dst + msgOpenConfirm := connectionIBCMessage{ + eventType: conntypes.EventTypeConnectionOpenConfirm, + info: info, } - if foundOpenTry == nil { - // need to send an open try to dst - msgOpenTry := connectionIBCMessage{ - eventType: conntypes.EventTypeConnectionOpenTry, - info: openInitMsg, - } - if pathEndConnectionHandshakeMessages.Dst.shouldSendConnectionMessage(msgOpenTry, pathEndConnectionHandshakeMessages.Src) { - res.DstMessages = append(res.DstMessages, msgOpenTry) - } - continue ConnectionHandshakeLoop + + if pathEndConnectionHandshakeMessages.Dst.shouldSendConnectionMessage( + msgOpenConfirm, + pathEndConnectionHandshakeMessages.Src, + ) { + res.DstMessages = append(res.DstMessages, msgOpenConfirm) } - var foundOpenAck *provider.ConnectionInfo - for openAckKey, openAckMsg := range pathEndConnectionHandshakeMessages.SrcMsgConnectionOpenAck { - if openInitKey == openAckKey { - foundOpenAck = &openAckMsg - break - } + + toDeleteDst[conntypes.EventTypeConnectionOpenTry] = append( + toDeleteDst[conntypes.EventTypeConnectionOpenTry], connKey.Counterparty(), + ) + + // MsgConnectionOpenInit does not have CounterpartyConnectionID + toDeleteSrc[conntypes.EventTypeConnectionOpenInit] = append( + toDeleteSrc[conntypes.EventTypeConnectionOpenInit], connKey.MsgInitKey(), + ) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], connKey.PreInitKey()) + } + + processRemovals() + + for connKey, info := range pathEndConnectionHandshakeMessages.DstMsgConnectionOpenTry { + // need to send an open ack to src + msgOpenAck := connectionIBCMessage{ + eventType: conntypes.EventTypeConnectionOpenAck, + info: info, } - if foundOpenAck == nil { - // need to send an open ack to src - msgOpenAck := connectionIBCMessage{ - eventType: conntypes.EventTypeConnectionOpenAck, - info: *foundOpenTry, - } - if pathEndConnectionHandshakeMessages.Src.shouldSendConnectionMessage(msgOpenAck, pathEndConnectionHandshakeMessages.Dst) { - res.SrcMessages = append(res.SrcMessages, msgOpenAck) - } - continue ConnectionHandshakeLoop + if pathEndConnectionHandshakeMessages.Src.shouldSendConnectionMessage( + msgOpenAck, pathEndConnectionHandshakeMessages.Dst, + ) { + res.SrcMessages = append(res.SrcMessages, msgOpenAck) } - var foundOpenConfirm *provider.ConnectionInfo - for openConfirmKey, openConfirmMsg := range pathEndConnectionHandshakeMessages.DstMsgConnectionOpenConfirm { - if openInitKey == openConfirmKey.Counterparty() { - foundOpenConfirm = &openConfirmMsg - break - } + + counterpartyKey := connKey.Counterparty() + + // MsgConnectionOpenInit does not have CounterpartyConnectionID + toDeleteSrc[conntypes.EventTypeConnectionOpenInit] = append( + toDeleteSrc[conntypes.EventTypeConnectionOpenInit], counterpartyKey.MsgInitKey(), + ) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], counterpartyKey.PreInitKey()) + } + + processRemovals() + + for connKey, info := range pathEndConnectionHandshakeMessages.SrcMsgConnectionOpenInit { + // need to send an open try to dst + msgOpenTry := connectionIBCMessage{ + eventType: conntypes.EventTypeConnectionOpenTry, + info: info, } - if foundOpenConfirm == nil { - // need to send an open confirm to dst - msgOpenConfirm := connectionIBCMessage{ - eventType: conntypes.EventTypeConnectionOpenConfirm, - info: *foundOpenAck, - } - if pathEndConnectionHandshakeMessages.Dst.shouldSendConnectionMessage(msgOpenConfirm, pathEndConnectionHandshakeMessages.Src) { - res.DstMessages = append(res.DstMessages, msgOpenConfirm) - } - continue ConnectionHandshakeLoop + if pathEndConnectionHandshakeMessages.Dst.shouldSendConnectionMessage( + msgOpenTry, pathEndConnectionHandshakeMessages.Src, + ) { + res.DstMessages = append(res.DstMessages, msgOpenTry) } - // handshake is complete for this connection, remove all retention. - res.ToDeleteDst[conntypes.EventTypeConnectionOpenTry] = append(res.ToDeleteDst[conntypes.EventTypeConnectionOpenTry], openInitKey) - res.ToDeleteSrc[conntypes.EventTypeConnectionOpenAck] = append(res.ToDeleteSrc[conntypes.EventTypeConnectionOpenAck], openInitKey) - res.ToDeleteDst[conntypes.EventTypeConnectionOpenConfirm] = append(res.ToDeleteDst[conntypes.EventTypeConnectionOpenConfirm], openInitKey) // MsgConnectionOpenInit does not have CounterpartyConnectionID - openInitKey.CounterpartyConnID = "" - res.ToDeleteSrc[conntypes.EventTypeConnectionOpenInit] = append(res.ToDeleteSrc[conntypes.EventTypeConnectionOpenInit], openInitKey) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], connKey.PreInitKey()) } - // now iterate through connection-handshake-complete messages and remove any leftover messages - for openConfirmKey := range pathEndConnectionHandshakeMessages.DstMsgConnectionOpenConfirm { - res.ToDeleteDst[conntypes.EventTypeConnectionOpenTry] = append(res.ToDeleteDst[conntypes.EventTypeConnectionOpenTry], openConfirmKey) - res.ToDeleteSrc[conntypes.EventTypeConnectionOpenAck] = append(res.ToDeleteSrc[conntypes.EventTypeConnectionOpenAck], openConfirmKey) - res.ToDeleteDst[conntypes.EventTypeConnectionOpenConfirm] = append(res.ToDeleteDst[conntypes.EventTypeConnectionOpenConfirm], openConfirmKey) + processRemovals() - // MsgConnectionOpenInit does not have CounterpartyConnectionID - openConfirmKey.CounterpartyConnID = "" - res.ToDeleteSrc[conntypes.EventTypeConnectionOpenInit] = append(res.ToDeleteSrc[conntypes.EventTypeConnectionOpenInit], openConfirmKey) + for _, info := range pathEndConnectionHandshakeMessages.SrcMsgConnectionPreInit { + // need to send an open init to src + msgOpenInit := connectionIBCMessage{ + eventType: conntypes.EventTypeConnectionOpenInit, + info: info, + } + if pathEndConnectionHandshakeMessages.Src.shouldSendConnectionMessage( + msgOpenInit, pathEndConnectionHandshakeMessages.Dst, + ) { + res.SrcMessages = append(res.SrcMessages, msgOpenInit) + } } + return res } -func (pp *PathProcessor) getUnrelayedChannelHandshakeMessagesAndToDelete(pathEndChannelHandshakeMessages pathEndChannelHandshakeMessages) pathEndChannelHandshakeResponse { - res := pathEndChannelHandshakeResponse{ - ToDeleteSrc: make(map[string][]ChannelKey), - ToDeleteDst: make(map[string][]ChannelKey), - } - -ChannelHandshakeLoop: - for openInitKey, openInitMsg := range pathEndChannelHandshakeMessages.SrcMsgChannelOpenInit { - var foundOpenTry *provider.ChannelInfo - for openTryKey, openTryMsg := range pathEndChannelHandshakeMessages.DstMsgChannelOpenTry { - // MsgChannelOpenInit does not have counterparty channel ID, so check if everything - // else matches for counterparty. If so, add counterparty channel ID for - // the checks later on in this function. - if openInitKey == openTryKey.Counterparty().MsgInitKey() { - openInitKey.CounterpartyChannelID = openTryMsg.ChannelID - foundOpenTry = &openTryMsg - break - } +func (pp *PathProcessor) unrelayedChannelHandshakeMessages( + pathEndChannelHandshakeMessages pathEndChannelHandshakeMessages, +) pathEndChannelHandshakeResponse { + var ( + res pathEndChannelHandshakeResponse + toDeleteSrc = make(map[string][]ChannelKey) + toDeleteDst = make(map[string][]ChannelKey) + ) + processRemovals := func() { + pathEndChannelHandshakeMessages.Src.messageCache.ChannelHandshake.DeleteMessages(toDeleteSrc) + pathEndChannelHandshakeMessages.Dst.messageCache.ChannelHandshake.DeleteMessages(toDeleteDst) + pathEndChannelHandshakeMessages.Src.channelProcessing.deleteMessages(toDeleteSrc) + pathEndChannelHandshakeMessages.Dst.channelProcessing.deleteMessages(toDeleteDst) + toDeleteSrc = make(map[string][]ChannelKey) + toDeleteDst = make(map[string][]ChannelKey) + } + + for chanKey := range pathEndChannelHandshakeMessages.DstMsgChannelOpenConfirm { + // found open confirm, channel handshake complete. remove all retention + + counterpartyKey := chanKey.Counterparty() + toDeleteDst[chantypes.EventTypeChannelOpenConfirm] = append( + toDeleteDst[chantypes.EventTypeChannelOpenConfirm], + chanKey, + ) + toDeleteSrc[chantypes.EventTypeChannelOpenAck] = append( + toDeleteSrc[chantypes.EventTypeChannelOpenAck], + counterpartyKey, + ) + toDeleteDst[chantypes.EventTypeChannelOpenTry] = append( + toDeleteDst[chantypes.EventTypeChannelOpenTry], + chanKey, + ) + + // MsgChannelOpenInit does not have CounterpartyChannelID + toDeleteSrc[chantypes.EventTypeChannelOpenInit] = append( + toDeleteSrc[chantypes.EventTypeChannelOpenInit], + counterpartyKey.MsgInitKey(), + ) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], counterpartyKey.PreInitKey()) + } + + processRemovals() + + for chanKey, info := range pathEndChannelHandshakeMessages.SrcMsgChannelOpenAck { + // need to send an open confirm to dst + msgOpenConfirm := channelIBCMessage{ + eventType: chantypes.EventTypeChannelOpenConfirm, + info: info, } - if foundOpenTry == nil { - // need to send an open try to dst - msgOpenTry := channelIBCMessage{ - eventType: chantypes.EventTypeChannelOpenTry, - info: openInitMsg, - } - if pathEndChannelHandshakeMessages.Dst.shouldSendChannelMessage(msgOpenTry, pathEndChannelHandshakeMessages.Src) { - res.DstMessages = append(res.DstMessages, msgOpenTry) - } - continue ChannelHandshakeLoop + + if pathEndChannelHandshakeMessages.Dst.shouldSendChannelMessage( + msgOpenConfirm, + pathEndChannelHandshakeMessages.Src, + ) { + res.DstMessages = append(res.DstMessages, msgOpenConfirm) } - var foundOpenAck *provider.ChannelInfo - for openAckKey, openAckMsg := range pathEndChannelHandshakeMessages.SrcMsgChannelOpenAck { - if openInitKey == openAckKey { - foundOpenAck = &openAckMsg - break - } + + toDeleteDst[chantypes.EventTypeChannelOpenTry] = append( + toDeleteDst[chantypes.EventTypeChannelOpenTry], chanKey.Counterparty(), + ) + + // MsgChannelOpenInit does not have CounterpartyChannelID + toDeleteSrc[chantypes.EventTypeChannelOpenInit] = append( + toDeleteSrc[chantypes.EventTypeChannelOpenInit], chanKey.MsgInitKey(), + ) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], chanKey.PreInitKey()) + } + + processRemovals() + + for chanKey, info := range pathEndChannelHandshakeMessages.DstMsgChannelOpenTry { + // need to send an open ack to src + msgOpenAck := channelIBCMessage{ + eventType: chantypes.EventTypeChannelOpenAck, + info: info, } - if foundOpenAck == nil { - // need to send an open ack to src - msgOpenAck := channelIBCMessage{ - eventType: chantypes.EventTypeChannelOpenAck, - info: *foundOpenTry, - } - if pathEndChannelHandshakeMessages.Src.shouldSendChannelMessage(msgOpenAck, pathEndChannelHandshakeMessages.Dst) { - res.SrcMessages = append(res.SrcMessages, msgOpenAck) - } - continue ChannelHandshakeLoop + if pathEndChannelHandshakeMessages.Src.shouldSendChannelMessage( + msgOpenAck, pathEndChannelHandshakeMessages.Dst, + ) { + res.SrcMessages = append(res.SrcMessages, msgOpenAck) } - var foundOpenConfirm *provider.ChannelInfo - for openConfirmKey, openConfirmMsg := range pathEndChannelHandshakeMessages.DstMsgChannelOpenConfirm { - if openInitKey == openConfirmKey.Counterparty() { - foundOpenConfirm = &openConfirmMsg - break - } + + counterpartyKey := chanKey.Counterparty() + + // MsgChannelOpenInit does not have CounterpartyChannelID + toDeleteSrc[chantypes.EventTypeChannelOpenInit] = append( + toDeleteSrc[chantypes.EventTypeChannelOpenInit], counterpartyKey.MsgInitKey(), + ) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], counterpartyKey.PreInitKey()) + } + + processRemovals() + + for chanKey, info := range pathEndChannelHandshakeMessages.SrcMsgChannelOpenInit { + // need to send an open try to dst + msgOpenTry := channelIBCMessage{ + eventType: chantypes.EventTypeChannelOpenTry, + info: info, } - if foundOpenConfirm == nil { - // need to send an open confirm to dst - msgOpenConfirm := channelIBCMessage{ - eventType: chantypes.EventTypeChannelOpenConfirm, - info: *foundOpenAck, - } - if pathEndChannelHandshakeMessages.Dst.shouldSendChannelMessage(msgOpenConfirm, pathEndChannelHandshakeMessages.Src) { - res.DstMessages = append(res.DstMessages, msgOpenConfirm) - } - continue ChannelHandshakeLoop + if pathEndChannelHandshakeMessages.Dst.shouldSendChannelMessage( + msgOpenTry, pathEndChannelHandshakeMessages.Src, + ) { + res.DstMessages = append(res.DstMessages, msgOpenTry) } - // handshake is complete for this channel, remove all retention. - res.ToDeleteDst[chantypes.EventTypeChannelOpenTry] = append(res.ToDeleteDst[chantypes.EventTypeChannelOpenTry], openInitKey) - res.ToDeleteSrc[chantypes.EventTypeChannelOpenAck] = append(res.ToDeleteSrc[chantypes.EventTypeChannelOpenAck], openInitKey) - res.ToDeleteDst[chantypes.EventTypeChannelOpenConfirm] = append(res.ToDeleteDst[chantypes.EventTypeChannelOpenConfirm], openInitKey) + // MsgChannelOpenInit does not have CounterpartyChannelID - res.ToDeleteSrc[chantypes.EventTypeChannelOpenInit] = append(res.ToDeleteSrc[chantypes.EventTypeChannelOpenInit], openInitKey.MsgInitKey()) + toDeleteSrc[preInitKey] = append(toDeleteSrc[preInitKey], chanKey.PreInitKey()) } - // now iterate through channel-handshake-complete messages and remove any leftover messages - for openConfirmKey := range pathEndChannelHandshakeMessages.DstMsgChannelOpenConfirm { - res.ToDeleteDst[chantypes.EventTypeChannelOpenTry] = append(res.ToDeleteDst[chantypes.EventTypeChannelOpenTry], openConfirmKey) - res.ToDeleteSrc[chantypes.EventTypeChannelOpenAck] = append(res.ToDeleteSrc[chantypes.EventTypeChannelOpenAck], openConfirmKey) - res.ToDeleteDst[chantypes.EventTypeChannelOpenConfirm] = append(res.ToDeleteDst[chantypes.EventTypeChannelOpenConfirm], openConfirmKey) - // MsgChannelOpenInit does not have CounterpartyChannelID - res.ToDeleteSrc[chantypes.EventTypeChannelOpenInit] = append(res.ToDeleteSrc[chantypes.EventTypeChannelOpenInit], openConfirmKey.MsgInitKey()) + processRemovals() + + for _, info := range pathEndChannelHandshakeMessages.SrcMsgChannelPreInit { + // need to send an open init to src + msgOpenInit := channelIBCMessage{ + eventType: chantypes.EventTypeChannelOpenInit, + info: info, + } + if pathEndChannelHandshakeMessages.Src.shouldSendChannelMessage( + msgOpenInit, pathEndChannelHandshakeMessages.Dst, + ) { + res.SrcMessages = append(res.SrcMessages, msgOpenInit) + } } + return res } @@ -434,13 +550,30 @@ func (pp *PathProcessor) updateClientTrustedState(src *pathEndRuntime, dst *path } } -func (pp *PathProcessor) appendInitialMessageIfNecessary(pathEnd1Messages, pathEnd2Messages *pathEndMessages) { +var observedEventTypeForDesiredMessage = map[string]string{ + conntypes.EventTypeConnectionOpenConfirm: conntypes.EventTypeConnectionOpenAck, + conntypes.EventTypeConnectionOpenAck: conntypes.EventTypeConnectionOpenTry, + conntypes.EventTypeConnectionOpenTry: conntypes.EventTypeConnectionOpenInit, + conntypes.EventTypeConnectionOpenInit: preInitKey, + + chantypes.EventTypeChannelOpenConfirm: chantypes.EventTypeChannelOpenAck, + chantypes.EventTypeChannelOpenAck: chantypes.EventTypeChannelOpenTry, + chantypes.EventTypeChannelOpenTry: chantypes.EventTypeChannelOpenInit, + chantypes.EventTypeChannelOpenInit: preInitKey, + + chantypes.EventTypeAcknowledgePacket: chantypes.EventTypeRecvPacket, + chantypes.EventTypeRecvPacket: chantypes.EventTypeSendPacket, + chantypes.EventTypeSendPacket: preInitKey, +} + +func (pp *PathProcessor) queuePreInitMessages() { if pp.messageLifecycle == nil || pp.sentInitialMsg { return } - pp.sentInitialMsg = true + switch m := pp.messageLifecycle.(type) { case *PacketMessageLifecycle: + pp.sentInitialMsg = true if m.Initial == nil { return } @@ -456,52 +589,87 @@ func (pp *PathProcessor) appendInitialMessageIfNecessary(pathEnd1Messages, pathE if !pp.IsRelayedChannel(m.Initial.ChainID, channelKey) { return } + eventType, ok := observedEventTypeForDesiredMessage[m.Initial.EventType] + if !ok { + pp.log.Error( + "Failed to queue initial connection message, event type not handled", + zap.String("event_type", m.Initial.EventType), + ) + return + } if m.Initial.ChainID == pp.pathEnd1.info.ChainID { - pathEnd1Messages.packetMessages = append(pathEnd1Messages.packetMessages, packetIBCMessage{ - eventType: m.Initial.EventType, - info: m.Initial.Info, - }) + _, ok = pp.pathEnd1.messageCache.PacketFlow[channelKey][eventType] + if !ok { + pp.pathEnd1.messageCache.PacketFlow[channelKey][eventType] = make(PacketSequenceCache) + } + pp.pathEnd1.messageCache.PacketFlow[channelKey][eventType][0] = m.Initial.Info } else if m.Initial.ChainID == pp.pathEnd2.info.ChainID { - pathEnd2Messages.packetMessages = append(pathEnd2Messages.packetMessages, packetIBCMessage{ - eventType: m.Initial.EventType, - info: m.Initial.Info, - }) + _, ok = pp.pathEnd2.messageCache.PacketFlow[channelKey][eventType] + if !ok { + pp.pathEnd2.messageCache.PacketFlow[channelKey][eventType] = make(PacketSequenceCache) + } + pp.pathEnd2.messageCache.PacketFlow[channelKey][eventType][0] = m.Initial.Info } case *ConnectionMessageLifecycle: + pp.sentInitialMsg = true if m.Initial == nil { return } if !pp.IsRelevantClient(m.Initial.ChainID, m.Initial.Info.ClientID) { return } + eventType, ok := observedEventTypeForDesiredMessage[m.Initial.EventType] + if !ok { + pp.log.Error( + "Failed to queue initial connection message, event type not handled", + zap.String("event_type", m.Initial.EventType), + ) + return + } + connKey := ConnectionInfoConnectionKey(m.Initial.Info) if m.Initial.ChainID == pp.pathEnd1.info.ChainID { - pathEnd1Messages.connectionMessages = append(pathEnd1Messages.connectionMessages, connectionIBCMessage{ - eventType: m.Initial.EventType, - info: m.Initial.Info, - }) + _, ok = pp.pathEnd1.messageCache.ConnectionHandshake[eventType] + if !ok { + pp.pathEnd1.messageCache.ConnectionHandshake[eventType] = make(ConnectionMessageCache) + } + pp.pathEnd1.messageCache.ConnectionHandshake[eventType][connKey] = m.Initial.Info } else if m.Initial.ChainID == pp.pathEnd2.info.ChainID { - pathEnd2Messages.connectionMessages = append(pathEnd2Messages.connectionMessages, connectionIBCMessage{ - eventType: m.Initial.EventType, - info: m.Initial.Info, - }) + _, ok = pp.pathEnd2.messageCache.ConnectionHandshake[eventType] + if !ok { + pp.pathEnd2.messageCache.ConnectionHandshake[eventType] = make(ConnectionMessageCache) + } + pp.pathEnd2.messageCache.ConnectionHandshake[eventType][connKey] = m.Initial.Info } case *ChannelMessageLifecycle: + pp.sentInitialMsg = true if m.Initial == nil { return } if !pp.IsRelevantConnection(m.Initial.ChainID, m.Initial.Info.ConnID) { return } + eventType, ok := observedEventTypeForDesiredMessage[m.Initial.EventType] + if !ok { + pp.log.Error( + "Failed to queue initial channel message, event type not handled", + zap.String("event_type", m.Initial.EventType), + ) + return + } + chanKey := ChannelInfoChannelKey(m.Initial.Info) if m.Initial.ChainID == pp.pathEnd1.info.ChainID { - pathEnd1Messages.channelMessages = append(pathEnd1Messages.channelMessages, channelIBCMessage{ - eventType: m.Initial.EventType, - info: m.Initial.Info, - }) + _, ok = pp.pathEnd1.messageCache.ChannelHandshake[eventType] + if !ok { + pp.pathEnd1.messageCache.ChannelHandshake[eventType] = make(ChannelMessageCache) + } + + pp.pathEnd1.messageCache.ChannelHandshake[eventType][chanKey] = m.Initial.Info } else if m.Initial.ChainID == pp.pathEnd2.info.ChainID { - pathEnd2Messages.channelMessages = append(pathEnd2Messages.channelMessages, channelIBCMessage{ - eventType: m.Initial.EventType, - info: m.Initial.Info, - }) + _, ok = pp.pathEnd2.messageCache.ChannelHandshake[eventType] + if !ok { + pp.pathEnd2.messageCache.ChannelHandshake[eventType] = make(ChannelMessageCache) + } + pp.pathEnd2.messageCache.ChannelHandshake[eventType][chanKey] = m.Initial.Info } } } @@ -514,9 +682,12 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { channelPairs := pp.channelPairs() + pp.queuePreInitMessages() + pathEnd1ConnectionHandshakeMessages := pathEndConnectionHandshakeMessages{ Src: pp.pathEnd1, Dst: pp.pathEnd2, + SrcMsgConnectionPreInit: pp.pathEnd1.messageCache.ConnectionHandshake[preInitKey], SrcMsgConnectionOpenInit: pp.pathEnd1.messageCache.ConnectionHandshake[conntypes.EventTypeConnectionOpenInit], DstMsgConnectionOpenTry: pp.pathEnd2.messageCache.ConnectionHandshake[conntypes.EventTypeConnectionOpenTry], SrcMsgConnectionOpenAck: pp.pathEnd1.messageCache.ConnectionHandshake[conntypes.EventTypeConnectionOpenAck], @@ -525,17 +696,19 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { pathEnd2ConnectionHandshakeMessages := pathEndConnectionHandshakeMessages{ Src: pp.pathEnd2, Dst: pp.pathEnd1, + SrcMsgConnectionPreInit: pp.pathEnd2.messageCache.ConnectionHandshake[preInitKey], SrcMsgConnectionOpenInit: pp.pathEnd2.messageCache.ConnectionHandshake[conntypes.EventTypeConnectionOpenInit], DstMsgConnectionOpenTry: pp.pathEnd1.messageCache.ConnectionHandshake[conntypes.EventTypeConnectionOpenTry], SrcMsgConnectionOpenAck: pp.pathEnd2.messageCache.ConnectionHandshake[conntypes.EventTypeConnectionOpenAck], DstMsgConnectionOpenConfirm: pp.pathEnd1.messageCache.ConnectionHandshake[conntypes.EventTypeConnectionOpenConfirm], } - pathEnd1ConnectionHandshakeRes := pp.getUnrelayedConnectionHandshakeMessagesAndToDelete(pathEnd1ConnectionHandshakeMessages) - pathEnd2ConnectionHandshakeRes := pp.getUnrelayedConnectionHandshakeMessagesAndToDelete(pathEnd2ConnectionHandshakeMessages) + pathEnd1ConnectionHandshakeRes := pp.unrelayedConnectionHandshakeMessages(pathEnd1ConnectionHandshakeMessages) + pathEnd2ConnectionHandshakeRes := pp.unrelayedConnectionHandshakeMessages(pathEnd2ConnectionHandshakeMessages) pathEnd1ChannelHandshakeMessages := pathEndChannelHandshakeMessages{ Src: pp.pathEnd1, Dst: pp.pathEnd2, + SrcMsgChannelPreInit: pp.pathEnd1.messageCache.ChannelHandshake[preInitKey], SrcMsgChannelOpenInit: pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelOpenInit], DstMsgChannelOpenTry: pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelOpenTry], SrcMsgChannelOpenAck: pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelOpenAck], @@ -544,13 +717,14 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { pathEnd2ChannelHandshakeMessages := pathEndChannelHandshakeMessages{ Src: pp.pathEnd2, Dst: pp.pathEnd1, + SrcMsgChannelPreInit: pp.pathEnd2.messageCache.ChannelHandshake[preInitKey], SrcMsgChannelOpenInit: pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelOpenInit], DstMsgChannelOpenTry: pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelOpenTry], SrcMsgChannelOpenAck: pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelOpenAck], DstMsgChannelOpenConfirm: pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelOpenConfirm], } - pathEnd1ChannelHandshakeRes := pp.getUnrelayedChannelHandshakeMessagesAndToDelete(pathEnd1ChannelHandshakeMessages) - pathEnd2ChannelHandshakeRes := pp.getUnrelayedChannelHandshakeMessagesAndToDelete(pathEnd2ChannelHandshakeMessages) + pathEnd1ChannelHandshakeRes := pp.unrelayedChannelHandshakeMessages(pathEnd1ChannelHandshakeMessages) + pathEnd2ChannelHandshakeRes := pp.unrelayedChannelHandshakeMessages(pathEnd2ChannelHandshakeMessages) // process the packet flows for both path ends to determine what needs to be relayed pathEnd1ProcessRes := make([]pathEndPacketFlowResponse, len(channelPairs)) @@ -592,6 +766,7 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { Src: pp.pathEnd1, Dst: pp.pathEnd2, ChannelKey: pair.pathEnd1ChannelKey, + SrcPreTransfer: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][preInitKey], SrcMsgTransfer: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeSendPacket], DstMsgRecvPacket: pathEnd1DstMsgRecvPacket, SrcMsgAcknowledgement: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeAcknowledgePacket], @@ -603,6 +778,7 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { Src: pp.pathEnd2, Dst: pp.pathEnd1, ChannelKey: pair.pathEnd2ChannelKey, + SrcPreTransfer: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd1ChannelKey][preInitKey], SrcMsgTransfer: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeSendPacket], DstMsgRecvPacket: pathEnd2DstMsgRecvPacket, SrcMsgAcknowledgement: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeAcknowledgePacket], @@ -611,8 +787,8 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { DstMsgChannelCloseConfirm: pathEnd1ChannelCloseConfirm, } - pathEnd1ProcessRes[i] = pp.getUnrelayedPacketsAndAcksAndToDelete(ctx, pathEnd1PacketFlowMessages) - pathEnd2ProcessRes[i] = pp.getUnrelayedPacketsAndAcksAndToDelete(ctx, pathEnd2PacketFlowMessages) + pathEnd1ProcessRes[i] = pp.unrelayedPacketFlowMessages(ctx, pathEnd1PacketFlowMessages) + pathEnd2ProcessRes[i] = pp.unrelayedPacketFlowMessages(ctx, pathEnd2PacketFlowMessages) } // concatenate applicable messages for pathend @@ -648,8 +824,6 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { clientICQMessages: pathEnd2ClientICQMessages, } - pp.appendInitialMessageIfNecessary(&pathEnd1Messages, &pathEnd2Messages) - // now assemble and send messages in parallel // if sending messages fails to one pathEnd, we don't need to halt sending to the other pathEnd. var eg errgroup.Group @@ -680,11 +854,6 @@ func (pp *PathProcessor) channelMessagesToSend(pathEnd1ChannelHandshakeRes, path pathEnd2ChannelMessages = append(pathEnd2ChannelMessages, pathEnd1ChannelHandshakeRes.DstMessages...) pathEnd2ChannelMessages = append(pathEnd2ChannelMessages, pathEnd2ChannelHandshakeRes.SrcMessages...) - pp.pathEnd1.messageCache.ChannelHandshake.DeleteMessages(pathEnd1ChannelHandshakeRes.ToDeleteSrc, pathEnd2ChannelHandshakeRes.ToDeleteDst) - pp.pathEnd2.messageCache.ChannelHandshake.DeleteMessages(pathEnd2ChannelHandshakeRes.ToDeleteSrc, pathEnd1ChannelHandshakeRes.ToDeleteDst) - pp.pathEnd1.channelProcessing.deleteMessages(pathEnd1ChannelHandshakeRes.ToDeleteSrc, pathEnd2ChannelHandshakeRes.ToDeleteDst) - pp.pathEnd2.channelProcessing.deleteMessages(pathEnd2ChannelHandshakeRes.ToDeleteSrc, pathEnd1ChannelHandshakeRes.ToDeleteDst) - return pathEnd1ChannelMessages, pathEnd2ChannelMessages } @@ -704,11 +873,6 @@ func (pp *PathProcessor) connectionMessagesToSend(pathEnd1ConnectionHandshakeRes pathEnd2ConnectionMessages = append(pathEnd2ConnectionMessages, pathEnd1ConnectionHandshakeRes.DstMessages...) pathEnd2ConnectionMessages = append(pathEnd2ConnectionMessages, pathEnd2ConnectionHandshakeRes.SrcMessages...) - pp.pathEnd1.messageCache.ConnectionHandshake.DeleteMessages(pathEnd1ConnectionHandshakeRes.ToDeleteSrc, pathEnd2ConnectionHandshakeRes.ToDeleteDst) - pp.pathEnd2.messageCache.ConnectionHandshake.DeleteMessages(pathEnd2ConnectionHandshakeRes.ToDeleteSrc, pathEnd1ConnectionHandshakeRes.ToDeleteDst) - pp.pathEnd1.connProcessing.deleteMessages(pathEnd1ConnectionHandshakeRes.ToDeleteSrc, pathEnd2ConnectionHandshakeRes.ToDeleteDst) - pp.pathEnd2.connProcessing.deleteMessages(pathEnd2ConnectionHandshakeRes.ToDeleteSrc, pathEnd1ConnectionHandshakeRes.ToDeleteDst) - return pathEnd1ConnectionMessages, pathEnd2ConnectionMessages } @@ -735,7 +899,7 @@ func (pp *PathProcessor) packetMessagesToSend( pathEnd1ChannelMessage := make([]channelIBCMessage, 0, pathEnd1ChannelLen) pathEnd2ChannelMessage := make([]channelIBCMessage, 0, pathEnd2ChannelLen) - for i, channelPair := range channelPairs { + for i := range channelPairs { pathEnd1PacketMessages = append(pathEnd1PacketMessages, pathEnd2ProcessRes[i].DstMessages...) pathEnd1PacketMessages = append(pathEnd1PacketMessages, pathEnd1ProcessRes[i].SrcMessages...) @@ -744,18 +908,6 @@ func (pp *PathProcessor) packetMessagesToSend( pathEnd1ChannelMessage = append(pathEnd1ChannelMessage, pathEnd2ProcessRes[i].DstChannelMessage...) pathEnd2ChannelMessage = append(pathEnd2ChannelMessage, pathEnd1ProcessRes[i].DstChannelMessage...) - - pp.pathEnd1.messageCache.ChannelHandshake.DeleteMessages(pathEnd2ProcessRes[i].ToDeleteDstChannel) - pp.pathEnd1.channelProcessing.deleteMessages(pathEnd2ProcessRes[i].ToDeleteDstChannel) - - pp.pathEnd2.messageCache.ChannelHandshake.DeleteMessages(pathEnd1ProcessRes[i].ToDeleteDstChannel) - pp.pathEnd2.channelProcessing.deleteMessages(pathEnd1ProcessRes[i].ToDeleteDstChannel) - - pp.pathEnd1.messageCache.PacketFlow[channelPair.pathEnd1ChannelKey].DeleteMessages(pathEnd1ProcessRes[i].ToDeleteSrc, pathEnd2ProcessRes[i].ToDeleteDst) - pp.pathEnd2.messageCache.PacketFlow[channelPair.pathEnd2ChannelKey].DeleteMessages(pathEnd2ProcessRes[i].ToDeleteSrc, pathEnd1ProcessRes[i].ToDeleteDst) - - pp.pathEnd1.packetProcessing[channelPair.pathEnd1ChannelKey].deleteMessages(pathEnd1ProcessRes[i].ToDeleteSrc, pathEnd2ProcessRes[i].ToDeleteDst) - pp.pathEnd2.packetProcessing[channelPair.pathEnd2ChannelKey].deleteMessages(pathEnd2ProcessRes[i].ToDeleteSrc, pathEnd1ProcessRes[i].ToDeleteDst) } return pathEnd1PacketMessages, pathEnd2PacketMessages, pathEnd1ChannelMessage, pathEnd2ChannelMessage @@ -766,7 +918,7 @@ func queryPacketCommitments( pathEnd *pathEndRuntime, k ChannelKey, commitments map[ChannelKey][]uint64, - mu *sync.Mutex, + mu sync.Locker, ) func() error { return func() error { pathEnd.log.Debug("Flushing", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) @@ -795,8 +947,8 @@ func queuePendingRecvAndAcks( seqs []uint64, srcCache ChannelPacketMessagesCache, dstCache ChannelPacketMessagesCache, - srcMu *sync.Mutex, - dstMu *sync.Mutex, + srcMu sync.Locker, + dstMu sync.Locker, ) func() error { return func() error { if len(seqs) == 0 { diff --git a/relayer/processor/types.go b/relayer/processor/types.go index ac2dced07..347974800 100644 --- a/relayer/processor/types.go +++ b/relayer/processor/types.go @@ -168,6 +168,18 @@ func (k ChannelKey) MsgInitKey() ChannelKey { } } +// PreInitKey is used for comparing pre-init keys with other connection +// handshake messages. Before the channel handshake, +// do not have ChannelID or CounterpartyChannelID. +func (k ChannelKey) PreInitKey() ChannelKey { + return ChannelKey{ + ChannelID: "", + PortID: k.PortID, + CounterpartyChannelID: "", + CounterpartyPortID: k.CounterpartyPortID, + } +} + func (k ChannelKey) MarshalLogObject(enc zapcore.ObjectEncoder) error { enc.AddString("channel_id", k.ChannelID) enc.AddString("port_id", k.PortID) @@ -205,6 +217,18 @@ func (connectionKey ConnectionKey) MsgInitKey() ConnectionKey { } } +// PreInitKey is used for comparing pre-init keys with other connection +// handshake messages. Before starting a connection handshake, +// do not have ConnectionID or CounterpartyConnectionID. +func (connectionKey ConnectionKey) PreInitKey() ConnectionKey { + return ConnectionKey{ + ClientID: connectionKey.ClientID, + ConnectionID: "", + CounterpartyClientID: connectionKey.CounterpartyClientID, + CounterpartyConnID: "", + } +} + func (k ConnectionKey) MarshalLogObject(enc zapcore.ObjectEncoder) error { enc.AddString("connection_id", k.ConnectionID) enc.AddString("client_id", k.ClientID) diff --git a/relayer/processor/types_internal.go b/relayer/processor/types_internal.go index 188e3d670..66c56edac 100644 --- a/relayer/processor/types_internal.go +++ b/relayer/processor/types_internal.go @@ -379,6 +379,7 @@ type pathEndPacketFlowMessages struct { Src *pathEndRuntime Dst *pathEndRuntime ChannelKey ChannelKey + SrcPreTransfer PacketSequenceCache SrcMsgTransfer PacketSequenceCache DstMsgRecvPacket PacketSequenceCache SrcMsgAcknowledgement PacketSequenceCache @@ -390,6 +391,7 @@ type pathEndPacketFlowMessages struct { type pathEndConnectionHandshakeMessages struct { Src *pathEndRuntime Dst *pathEndRuntime + SrcMsgConnectionPreInit ConnectionMessageCache SrcMsgConnectionOpenInit ConnectionMessageCache DstMsgConnectionOpenTry ConnectionMessageCache SrcMsgConnectionOpenAck ConnectionMessageCache @@ -399,6 +401,7 @@ type pathEndConnectionHandshakeMessages struct { type pathEndChannelHandshakeMessages struct { Src *pathEndRuntime Dst *pathEndRuntime + SrcMsgChannelPreInit ChannelMessageCache SrcMsgChannelOpenInit ChannelMessageCache DstMsgChannelOpenTry ChannelMessageCache SrcMsgChannelOpenAck ChannelMessageCache @@ -410,26 +413,16 @@ type pathEndPacketFlowResponse struct { DstMessages []packetIBCMessage DstChannelMessage []channelIBCMessage - - ToDeleteSrc map[string][]uint64 - ToDeleteDst map[string][]uint64 - ToDeleteDstChannel map[string][]ChannelKey } type pathEndChannelHandshakeResponse struct { SrcMessages []channelIBCMessage DstMessages []channelIBCMessage - - ToDeleteSrc map[string][]ChannelKey - ToDeleteDst map[string][]ChannelKey } type pathEndConnectionHandshakeResponse struct { SrcMessages []connectionIBCMessage DstMessages []connectionIBCMessage - - ToDeleteSrc map[string][]ConnectionKey - ToDeleteDst map[string][]ConnectionKey } func packetInfoChannelKey(p provider.PacketInfo) ChannelKey { @@ -441,24 +434,6 @@ func packetInfoChannelKey(p provider.PacketInfo) ChannelKey { } } -func connectionInfoConnectionKey(c provider.ConnectionInfo) ConnectionKey { - return ConnectionKey{ - ClientID: c.ClientID, - ConnectionID: c.ConnID, - CounterpartyClientID: c.CounterpartyClientID, - CounterpartyConnID: c.CounterpartyConnID, - } -} - -func channelInfoChannelKey(c provider.ChannelInfo) ChannelKey { - return ChannelKey{ - ChannelID: c.ChannelID, - PortID: c.PortID, - CounterpartyChannelID: c.CounterpartyChannelID, - CounterpartyPortID: c.CounterpartyPortID, - } -} - type messageToTrack interface { // assembledMsg returns the assembled message ready to send. assembledMsg() provider.RelayerMessage From f0f977d7d01a7683464f14af1ac8db7e2df37b32 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Wed, 22 Mar 2023 12:43:07 -0600 Subject: [PATCH 03/46] fix default coin type (#1134) * fix slip44 default * Add test case --- cmd/keys.go | 8 ++-- cmd/keys_test.go | 73 ++++++++++++++++++++++++++++++- cregistry/chain_info.go | 2 +- relayer/chains/cosmos/provider.go | 2 +- 4 files changed, 77 insertions(+), 8 deletions(-) diff --git a/cmd/keys.go b/cmd/keys.go index 36072d405..bcf1c5647 100644 --- a/cmd/keys.go +++ b/cmd/keys.go @@ -81,8 +81,8 @@ $ %s k a cosmoshub testkey`, appName, appName, appName)), } if coinType < 0 { - if ccp, ok := chain.ChainProvider.(*cosmos.CosmosProvider); ok { - coinType = int32(ccp.PCfg.Slip44) + if ccp, ok := chain.ChainProvider.(*cosmos.CosmosProvider); ok && ccp.PCfg.Slip44 != nil { + coinType = int32(*ccp.PCfg.Slip44) } else { coinType = int32(defaultCoinType) } @@ -135,8 +135,8 @@ $ %s k r cosmoshub faucet-key "[mnemonic-words]"`, appName, appName)), } if coinType < 0 { - if ccp, ok := chain.ChainProvider.(*cosmos.CosmosProvider); ok { - coinType = int32(ccp.PCfg.Slip44) + if ccp, ok := chain.ChainProvider.(*cosmos.CosmosProvider); ok && ccp.PCfg.Slip44 != nil { + coinType = int32(*ccp.PCfg.Slip44) } else { coinType = int32(defaultCoinType) } diff --git a/cmd/keys_test.go b/cmd/keys_test.go index 6a302fd1c..df51f8924 100644 --- a/cmd/keys_test.go +++ b/cmd/keys_test.go @@ -42,6 +42,8 @@ func TestKeysRestore_Delete(t *testing.T) { _ = sys.MustRun(t, "config", "init") + slip44 := 118 + sys.MustAddChain(t, "testChain", cmd.ProviderConfigWrapper{ Type: "cosmos", Value: cosmos.CosmosProviderConfig{ @@ -49,7 +51,7 @@ func TestKeysRestore_Delete(t *testing.T) { ChainID: "testcosmos", KeyringBackend: "test", Timeout: "10s", - Slip44: 118, + Slip44: &slip44, }, }) @@ -82,6 +84,8 @@ func TestKeysExport(t *testing.T) { _ = sys.MustRun(t, "config", "init") + slip44 := 118 + sys.MustAddChain(t, "testChain", cmd.ProviderConfigWrapper{ Type: "cosmos", Value: cosmos.CosmosProviderConfig{ @@ -89,7 +93,7 @@ func TestKeysExport(t *testing.T) { ChainID: "testcosmos", KeyringBackend: "test", Timeout: "10s", - Slip44: 118, + Slip44: &slip44, }, }) @@ -113,3 +117,68 @@ func TestKeysExport(t *testing.T) { // TODO: confirm the imported address matches? } + +func TestKeysDefaultCoinType(t *testing.T) { + t.Parallel() + + sys := relayertest.NewSystem(t) + + _ = sys.MustRun(t, "config", "init") + + slip44 := 118 + + sys.MustAddChain(t, "testChain", cmd.ProviderConfigWrapper{ + Type: "cosmos", + Value: cosmos.CosmosProviderConfig{ + AccountPrefix: "cosmos", + ChainID: "testcosmos-1", + KeyringBackend: "test", + Timeout: "10s", + Slip44: &slip44, + }, + }) + + sys.MustAddChain(t, "testChain2", cmd.ProviderConfigWrapper{ + Type: "cosmos", + Value: cosmos.CosmosProviderConfig{ + AccountPrefix: "cosmos", + ChainID: "testcosmos-2", + KeyringBackend: "test", + Timeout: "10s", + }, + }) + + // Restore a key with mnemonic to the chain. + res := sys.MustRun(t, "keys", "restore", "testChain", "default", relayertest.ZeroMnemonic) + require.Equal(t, res.Stdout.String(), relayertest.ZeroCosmosAddr+"\n") + require.Empty(t, res.Stderr.String()) + + // Restore a key with mnemonic to the chain. + res = sys.MustRun(t, "keys", "restore", "testChain2", "default", relayertest.ZeroMnemonic) + require.Equal(t, res.Stdout.String(), relayertest.ZeroCosmosAddr+"\n") + require.Empty(t, res.Stderr.String()) + + // Export the key. + res = sys.MustRun(t, "keys", "export", "testChain", "default") + armorOut := res.Stdout.String() + require.Contains(t, armorOut, "BEGIN TENDERMINT PRIVATE KEY") + require.Empty(t, res.Stderr.String()) + + // Export the key. + res = sys.MustRun(t, "keys", "export", "testChain2", "default") + armorOut2 := res.Stdout.String() + require.Contains(t, armorOut, "BEGIN TENDERMINT PRIVATE KEY") + require.Empty(t, res.Stderr.String()) + + // Import the key to a temporary keyring. + registry := codectypes.NewInterfaceRegistry() + cryptocodec.RegisterInterfaces(registry) + cdc := codec.NewProtoCodec(registry) + kr := keyring.NewInMemory(cdc) + require.NoError(t, kr.ImportPrivKey("temp", armorOut, keys.DefaultKeyPass)) + + // This should fail due to same key + err := kr.ImportPrivKey("temp", armorOut2, keys.DefaultKeyPass) + require.Error(t, err, "same key was able to be imported twice") + require.Contains(t, err.Error(), "cannot overwrite key") +} diff --git a/cregistry/chain_info.go b/cregistry/chain_info.go index 7cea1cb5a..978142f70 100644 --- a/cregistry/chain_info.go +++ b/cregistry/chain_info.go @@ -55,7 +55,7 @@ type ChainInfo struct { Genesis struct { GenesisURL string `json:"genesis_url"` } `json:"genesis"` - Slip44 int `json:"slip44"` + Slip44 *int `json:"slip44"` Codebase struct { GitRepo string `json:"git_repo"` RecommendedVersion string `json:"recommended_version"` diff --git a/relayer/chains/cosmos/provider.go b/relayer/chains/cosmos/provider.go index b56bcdc61..f34ec5700 100644 --- a/relayer/chains/cosmos/provider.go +++ b/relayer/chains/cosmos/provider.go @@ -52,7 +52,7 @@ type CosmosProviderConfig struct { SignModeStr string `json:"sign-mode" yaml:"sign-mode"` ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` Modules []module.AppModuleBasic `json:"-" yaml:"-"` - Slip44 int `json:"coin-type" yaml:"coin-type"` + Slip44 *int `json:"coin-type" yaml:"coin-type"` Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` } From 1cd441ecd68b175d46544a35ff678b2cdcb9c1c9 Mon Sep 17 00:00:00 2001 From: Justin Tieri <37750742+jtieri@users.noreply.github.com> Date: Thu, 23 Mar 2023 15:00:24 -0500 Subject: [PATCH 04/46] build: bump to Go 1.20 + bump deps (#1132) * build: bump to Go 1.20 + bump deps This bumps the Go version to 1.20 and also bumps the SDK version to 0.47.0 and ibc-go to v7.0.0 * chore: update GH workflows to use Go 1.20 + update interchaintest deps * chore: update missing deps in go.sum + use 1.20 in dockerfiles * chore: bump to `setup-go/v4` and remove caching step * chore: bump to `checkout/v3` and remove caching step * chore: bump 1.20.2 --- .github/workflows/build.yml | 17 +++----- .github/workflows/interchaintest.yml | 16 ++++---- .github/workflows/release.yml | 2 +- Dockerfile | 2 +- go.mod | 32 +++++++-------- go.sum | 60 ++++++++++++++-------------- interchaintest/go.mod | 32 +++++++-------- interchaintest/go.sum | 58 ++++++++++++++------------- local.Dockerfile | 2 +- 9 files changed, 108 insertions(+), 113 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 82d1f9f0d..24fd93e17 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,10 +12,10 @@ jobs: runs-on: ubuntu-latest steps: # Install and setup go - - name: Set up Go 1.19 - uses: actions/setup-go@v2 + - name: Set up Go 1.20 + uses: actions/setup-go@v4 with: - go-version: 1.19 + go-version: 1.20.2 # setup gopath - name: Set PATH @@ -25,19 +25,12 @@ jobs: # checkout relayer - name: checkout relayer - uses: actions/checkout@v2 - - # setup cache - - uses: actions/cache@v1 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- + uses: actions/checkout@v3 # unit tests - name: run unit tests run: make test + # build binary - name: build binary and move to upload location run: make build diff --git a/.github/workflows/interchaintest.yml b/.github/workflows/interchaintest.yml index ed599544a..402e55bda 100644 --- a/.github/workflows/interchaintest.yml +++ b/.github/workflows/interchaintest.yml @@ -10,10 +10,10 @@ jobs: events: runs-on: self-hosted steps: - - name: Set up Go 1.19 + - name: Set up Go 1.20 uses: actions/setup-go@v1 with: - go-version: 1.19 + go-version: 1.20 id: go - name: checkout relayer @@ -32,10 +32,10 @@ jobs: legacy: runs-on: self-hosted steps: - - name: Set up Go 1.19 + - name: Set up Go 1.20 uses: actions/setup-go@v1 with: - go-version: 1.19 + go-version: 1.20 id: go - name: checkout relayer @@ -54,10 +54,10 @@ jobs: multiple-paths: runs-on: ubuntu-latest steps: - - name: Set up Go 1.19 + - name: Set up Go 1.20 uses: actions/setup-go@v1 with: - go-version: 1.19 + go-version: 1.20 id: go - name: checkout relayer @@ -76,10 +76,10 @@ jobs: scenarios: runs-on: ubuntu-latest steps: - - name: Set up Go 1.19 + - name: Set up Go 1.20 uses: actions/setup-go@v1 with: - go-version: 1.19 + go-version: 1.20 id: go - name: checkout relayer diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 620472251..5e9673730 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.19 + go-version: 1.20 - run: echo https://github.com/cosmos/relayer/blob/${GITHUB_REF#refs/tags/}/CHANGELOG.md#${GITHUB_REF#refs/tags/} > ../release_notes.md diff --git a/Dockerfile b/Dockerfile index ad850f566..caa600cbb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.19-alpine3.16 AS build-env +FROM --platform=$BUILDPLATFORM golang:1.20-alpine3.16 AS build-env RUN apk add --update --no-cache curl make git libc-dev bash gcc linux-headers eudev-dev diff --git a/go.mod b/go.mod index d6b2f0eb1..59265cdac 100644 --- a/go.mod +++ b/go.mod @@ -1,20 +1,20 @@ module github.com/cosmos/relayer/v2 -go 1.19 +go 1.20 require ( cosmossdk.io/api v0.3.1 cosmossdk.io/errors v1.0.0-beta.7 - cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4 + cosmossdk.io/math v1.0.0-rc.0 github.com/avast/retry-go/v4 v4.3.2 github.com/btcsuite/btcd v0.22.2 github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce github.com/cometbft/cometbft v0.37.0 github.com/cosmos/cosmos-proto v1.0.0-beta.2 - github.com/cosmos/cosmos-sdk v0.47.0-rc3 + github.com/cosmos/cosmos-sdk v0.47.0 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.4.6 - github.com/cosmos/ibc-go/v7 v7.0.0-rc1 + github.com/cosmos/ibc-go/v7 v7.0.0 github.com/ethereum/go-ethereum v1.10.26 github.com/gofrs/flock v0.8.1 github.com/gogo/protobuf v1.3.2 @@ -31,8 +31,8 @@ require ( go.uber.org/zap v1.24.0 golang.org/x/mod v0.8.0 golang.org/x/sync v0.1.0 - golang.org/x/term v0.5.0 - golang.org/x/text v0.7.0 + golang.org/x/term v0.6.0 + golang.org/x/text v0.8.0 google.golang.org/grpc v1.53.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 @@ -68,7 +68,7 @@ require ( github.com/confio/ics23/go v0.9.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v0.20.0-alpha4 // indirect + github.com/cosmos/iavl v0.20.0 // indirect github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab // indirect github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect @@ -90,10 +90,10 @@ require ( github.com/go-stack/stack v1.8.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect - github.com/golang/glog v1.0.0 // indirect + github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-querystring v1.1.0 // indirect @@ -123,7 +123,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.15.15 // indirect + github.com/klauspost/compress v1.16.3 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -163,19 +163,19 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect github.com/zondax/hid v0.9.1 // indirect github.com/zondax/ledger-go v0.14.1 // indirect - go.etcd.io/bbolt v1.3.6 // indirect + go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.10.0 // indirect - golang.org/x/crypto v0.6.0 // indirect - golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb // indirect - golang.org/x/net v0.7.0 // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.5.0 // indirect + golang.org/x/sys v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect - google.golang.org/protobuf v1.28.2-0.20230208135220-49eaa78c6c9c // indirect + google.golang.org/protobuf v1.29.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v0.5.5 // indirect diff --git a/go.sum b/go.sum index 44a1947fa..b7f11ac09 100644 --- a/go.sum +++ b/go.sum @@ -196,8 +196,8 @@ cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4 h1:/jnzJ9zFsL7qkV8LCQ1JH3dYHh2EsKZ3k8Mr6AqqiOA= -cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4/go.mod h1:gUVtWwIzfSXqcOT+lBVz2jyjfua8DoBdzRsIyaUAT/8= +cosmossdk.io/math v1.0.0-rc.0 h1:ml46ukocrAAoBpYKMidF0R2tQJ1Uxfns0yH8wqgMAFc= +cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -336,8 +336,8 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.0-rc3 h1:MMun/+mMpzise9d85csTp+kGkhLCkjJLwLK0urp0Bcs= -github.com/cosmos/cosmos-sdk v0.47.0-rc3/go.mod h1:GlXjIIIsIZAD5CPqm7FHtr3v5/anE9eXWDjSWdNmznw= +github.com/cosmos/cosmos-sdk v0.47.0 h1:GKYtBpvjwuDEVix1vdnQpq7PuEOnItuEK0vdAL2cZ5g= +github.com/cosmos/cosmos-sdk v0.47.0/go.mod h1:FTtZbqiHCZ2vun9WrPq6qLQafNKkAuIhLAxzLjr2TiI= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -346,10 +346,10 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.6 h1:Ee7z15dWJaGlgM2rWrK8N2IX7PQcuccu8oG68jp5RL4= github.com/cosmos/gogoproto v1.4.6/go.mod h1:VS/ASYmPgv6zkPKLjR9EB91lwbLHOzaGCirmKKhncfI= -github.com/cosmos/iavl v0.20.0-alpha4 h1:49SZoxNwah5nqbVE1da8BAhenC7HMSVOTZ0XKVhZpOE= -github.com/cosmos/iavl v0.20.0-alpha4/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= -github.com/cosmos/ibc-go/v7 v7.0.0-rc1 h1:+HokO9GDqWNmjKSLGSC1WjcqjOdDIeSmNGuXQFSHMQE= -github.com/cosmos/ibc-go/v7 v7.0.0-rc1/go.mod h1:wpKGb+lqAnxwThgS3LoCPgDEFNAPVX+1YIQCAJcePcM= +github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= +github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +github.com/cosmos/ibc-go/v7 v7.0.0 h1:j4kyywlG0hhDmT9FmSaR5iCIka7Pz7kJTxGWY1nlV9Q= +github.com/cosmos/ibc-go/v7 v7.0.0/go.mod h1:BFh8nKWjr5zeR2OZfhkzdgDzj1+KjRn3aJLpwapStj8= github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab h1:I9ialKTQo7248V827Bba4OuKPmk+FPzmTVHsLXaIJWw= github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab/go.mod h1:2CwqasX5dSD7Hbp/9b6lhK6BwoBDCBldx7gPKRukR60= github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= @@ -480,8 +480,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -515,8 +515,9 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -714,8 +715,8 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= -github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= +github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -998,8 +999,8 @@ github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWp github.com/zondax/ledger-go v0.14.1 h1:Pip65OOl4iJ84WTpA4BKChvOufMhhbxED3BaihoZN4c= github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= +go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1045,8 +1046,8 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1058,8 +1059,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb h1:PaBZQdo+iSDyHT053FjUCgZQ/9uqVwPOcl7KSWhKn6w= -golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 h1:LGJsf5LRplCck6jUCH3dBL2dmycNruWNF5xugkSlfXw= +golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1148,8 +1149,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1241,7 +1242,6 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1289,13 +1289,13 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1306,8 +1306,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1614,8 +1614,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.2-0.20230208135220-49eaa78c6c9c h1:gDe3xeLH/W6iv5d9xQBo6IwJbCdVcZRiV8xuix6FJW8= -google.golang.org/protobuf v1.28.2-0.20230208135220-49eaa78c6c9c/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/interchaintest/go.mod b/interchaintest/go.mod index 0f529bd46..b459a9b17 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -1,12 +1,12 @@ module github.com/cosmos/relayer/v2/interchaintest -go 1.19 +go 1.20 require ( cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462 github.com/cometbft/cometbft v0.37.0 - github.com/cosmos/cosmos-sdk v0.47.0-rc3 - github.com/cosmos/ibc-go/v7 v7.0.0-rc1 + github.com/cosmos/cosmos-sdk v0.47.0 + github.com/cosmos/ibc-go/v7 v7.0.0 github.com/cosmos/relayer/v2 v2.0.0 github.com/docker/docker v20.10.19+incompatible github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 @@ -27,7 +27,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.3 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4 // indirect + cosmossdk.io/math v1.0.0-rc.0 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -65,7 +65,7 @@ require ( github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/gogoproto v1.4.6 // indirect - github.com/cosmos/iavl v0.20.0-alpha4 // indirect + github.com/cosmos/iavl v0.20.0 // indirect github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab // indirect github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect @@ -98,10 +98,10 @@ require ( github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang/glog v1.0.0 // indirect + github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.5.9 // indirect @@ -137,7 +137,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/jsternberg/zap-logfmt v1.3.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect - github.com/klauspost/compress v1.15.15 // indirect + github.com/klauspost/compress v1.16.3 // indirect github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect @@ -205,25 +205,25 @@ require ( github.com/vedhavyas/go-subkey v1.0.3 // indirect github.com/zondax/hid v0.9.1 // indirect github.com/zondax/ledger-go v0.14.1 // indirect - go.etcd.io/bbolt v1.3.6 // indirect + go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect - golang.org/x/crypto v0.6.0 // indirect - golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.7.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect golang.org/x/tools v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect google.golang.org/grpc v1.53.0 // indirect - google.golang.org/protobuf v1.28.2-0.20230208135220-49eaa78c6c9c // indirect + google.golang.org/protobuf v1.29.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/interchaintest/go.sum b/interchaintest/go.sum index 53804d403..32d49c18c 100644 --- a/interchaintest/go.sum +++ b/interchaintest/go.sum @@ -197,8 +197,8 @@ cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4 h1:/jnzJ9zFsL7qkV8LCQ1JH3dYHh2EsKZ3k8Mr6AqqiOA= -cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4/go.mod h1:gUVtWwIzfSXqcOT+lBVz2jyjfua8DoBdzRsIyaUAT/8= +cosmossdk.io/math v1.0.0-rc.0 h1:ml46ukocrAAoBpYKMidF0R2tQJ1Uxfns0yH8wqgMAFc= +cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462 h1:g8muUHnXL8vhld2Sjilyhb1UQObc+x9GVuDK43TYZns= cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462/go.mod h1:4Dd3NLoLYoN90kZ0uyHoTHzVVk9+J0v4HhZRBNTAq2c= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -510,8 +510,8 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.0-rc3 h1:MMun/+mMpzise9d85csTp+kGkhLCkjJLwLK0urp0Bcs= -github.com/cosmos/cosmos-sdk v0.47.0-rc3/go.mod h1:GlXjIIIsIZAD5CPqm7FHtr3v5/anE9eXWDjSWdNmznw= +github.com/cosmos/cosmos-sdk v0.47.0 h1:GKYtBpvjwuDEVix1vdnQpq7PuEOnItuEK0vdAL2cZ5g= +github.com/cosmos/cosmos-sdk v0.47.0/go.mod h1:FTtZbqiHCZ2vun9WrPq6qLQafNKkAuIhLAxzLjr2TiI= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -520,10 +520,10 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.6 h1:Ee7z15dWJaGlgM2rWrK8N2IX7PQcuccu8oG68jp5RL4= github.com/cosmos/gogoproto v1.4.6/go.mod h1:VS/ASYmPgv6zkPKLjR9EB91lwbLHOzaGCirmKKhncfI= -github.com/cosmos/iavl v0.20.0-alpha4 h1:49SZoxNwah5nqbVE1da8BAhenC7HMSVOTZ0XKVhZpOE= -github.com/cosmos/iavl v0.20.0-alpha4/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= -github.com/cosmos/ibc-go/v7 v7.0.0-rc1 h1:+HokO9GDqWNmjKSLGSC1WjcqjOdDIeSmNGuXQFSHMQE= -github.com/cosmos/ibc-go/v7 v7.0.0-rc1/go.mod h1:wpKGb+lqAnxwThgS3LoCPgDEFNAPVX+1YIQCAJcePcM= +github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= +github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +github.com/cosmos/ibc-go/v7 v7.0.0 h1:j4kyywlG0hhDmT9FmSaR5iCIka7Pz7kJTxGWY1nlV9Q= +github.com/cosmos/ibc-go/v7 v7.0.0/go.mod h1:BFh8nKWjr5zeR2OZfhkzdgDzj1+KjRn3aJLpwapStj8= github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab h1:I9ialKTQo7248V827Bba4OuKPmk+FPzmTVHsLXaIJWw= github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab/go.mod h1:2CwqasX5dSD7Hbp/9b6lhK6BwoBDCBldx7gPKRukR60= github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= @@ -722,8 +722,8 @@ github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2 github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -758,8 +758,9 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -986,8 +987,8 @@ github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= -github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= +github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -1461,8 +1462,9 @@ github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2f go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= +go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= @@ -1516,8 +1518,8 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1529,8 +1531,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb h1:PaBZQdo+iSDyHT053FjUCgZQ/9uqVwPOcl7KSWhKn6w= -golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 h1:LGJsf5LRplCck6jUCH3dBL2dmycNruWNF5xugkSlfXw= +golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1626,8 +1628,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1799,14 +1801,14 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1817,8 +1819,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2144,8 +2146,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.2-0.20230208135220-49eaa78c6c9c h1:gDe3xeLH/W6iv5d9xQBo6IwJbCdVcZRiV8xuix6FJW8= -google.golang.org/protobuf v1.28.2-0.20230208135220-49eaa78c6c9c/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/local.Dockerfile b/local.Dockerfile index 9a66c5a6e..42e30e564 100644 --- a/local.Dockerfile +++ b/local.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.19-alpine3.16 AS build-env +FROM golang:1.20-alpine3.16 AS build-env RUN apk add --update --no-cache curl make git libc-dev bash gcc linux-headers eudev-dev From 0af487ebb7333cb01f26507251307ee75807cd93 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Thu, 23 Mar 2023 14:26:51 -0600 Subject: [PATCH 05/46] Fix flushing acks (#1139) --- relayer/processor/path_processor_internal.go | 29 ++++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 1271227be..e7ebca499 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -997,7 +997,7 @@ func queuePendingRecvAndAcks( } if len(unacked) > 0 { - src.log.Debug("Will flush MsgAcknowledgement", zap.String("channel", k.ChannelID), zap.String("port", k.PortID), zap.Uint64s("sequences", unrecv)) + src.log.Debug("Will flush MsgAcknowledgement", zap.Object("channel", k), zap.Uint64s("sequences", unacked)) } else { src.log.Debug("No MsgAcknowledgement to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) } @@ -1007,28 +1007,21 @@ func queuePendingRecvAndAcks( if err != nil { return err } - srcMu.Lock() - if _, ok := srcCache[k]; !ok { - srcCache[k] = make(PacketMessagesCache) - } - if _, ok := srcCache[k][chantypes.EventTypeSendPacket]; !ok { - srcCache[k][chantypes.EventTypeSendPacket] = make(PacketSequenceCache) - } - srcCache[k][chantypes.EventTypeSendPacket][seq] = recvPacket - srcMu.Unlock() dstMu.Lock() - if _, ok := dstCache[k]; !ok { - dstCache[k] = make(PacketMessagesCache) + + ck := k.Counterparty() + if _, ok := dstCache[ck]; !ok { + dstCache[ck] = make(PacketMessagesCache) } - if _, ok := dstCache[k][chantypes.EventTypeRecvPacket]; !ok { - dstCache[k][chantypes.EventTypeRecvPacket] = make(PacketSequenceCache) + if _, ok := dstCache[ck][chantypes.EventTypeRecvPacket]; !ok { + dstCache[ck][chantypes.EventTypeRecvPacket] = make(PacketSequenceCache) } - if _, ok := dstCache[k][chantypes.EventTypeWriteAck]; !ok { - dstCache[k][chantypes.EventTypeWriteAck] = make(PacketSequenceCache) + if _, ok := dstCache[ck][chantypes.EventTypeWriteAck]; !ok { + dstCache[ck][chantypes.EventTypeWriteAck] = make(PacketSequenceCache) } - dstCache[k][chantypes.EventTypeRecvPacket][seq] = recvPacket - dstCache[k][chantypes.EventTypeWriteAck][seq] = recvPacket + dstCache[ck][chantypes.EventTypeRecvPacket][seq] = recvPacket + dstCache[ck][chantypes.EventTypeWriteAck][seq] = recvPacket dstMu.Unlock() } return nil From 14b03e5479f2e09446979b285d5e7134099a80bd Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Fri, 24 Mar 2023 10:22:17 -0600 Subject: [PATCH 06/46] Fix ordered channel closure (#1142) * Fix ordered channel closure * Increase timeout for scenarios test * Fix tracking of init messages when IDs aren't the same * bump interchaintest to include explicit port bindings --- Makefile | 2 +- interchaintest/go.mod | 32 +- interchaintest/go.sum | 88 +++-- interchaintest/interchain_accounts_test.go | 318 +++++++++++++++++++ relayer/processor/path_end_runtime.go | 10 +- relayer/processor/path_processor_internal.go | 6 +- 6 files changed, 384 insertions(+), 72 deletions(-) create mode 100644 interchaintest/interchain_accounts_test.go diff --git a/Makefile b/Makefile index 6afd617c8..8565b1e13 100644 --- a/Makefile +++ b/Makefile @@ -83,7 +83,7 @@ interchaintest-multiple: cd interchaintest && go test -race -v -run TestRelayerMultiplePathsSingleProcess . interchaintest-scenario: ## Scenario tests are suitable for simple networks of 1 validator and no full nodes. They test specific functionality. - cd interchaintest && go test -timeout 15m -race -v -run TestScenario ./... + cd interchaintest && go test -timeout 30m -race -v -run TestScenario ./... coverage: @echo "viewing test coverage..." diff --git a/interchaintest/go.mod b/interchaintest/go.mod index b459a9b17..c01d00df6 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -11,7 +11,7 @@ require ( github.com/docker/docker v20.10.19+incompatible github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 github.com/moby/moby v20.10.22+incompatible - github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230309210425-6f04be9aab19 + github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324004113-98fdaea81ffa github.com/stretchr/testify v1.8.2 go.uber.org/zap v1.24.0 golang.org/x/sync v0.1.0 @@ -39,7 +39,7 @@ require ( github.com/Microsoft/hcsshim v0.9.6 // indirect github.com/StirlingMarketingGroup/go-namecase v1.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect - github.com/avast/retry-go/v4 v4.3.2 // indirect + github.com/avast/retry-go/v4 v4.3.3 // indirect github.com/aws/aws-sdk-go v1.44.203 // indirect github.com/benbjohnson/clock v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -138,7 +138,7 @@ require ( github.com/jsternberg/zap-logfmt v1.3.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/klauspost/compress v1.16.3 // indirect - github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/klauspost/cpuid/v2 v2.2.3 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-libp2p-core v0.15.1 // indirect @@ -182,7 +182,7 @@ require ( github.com/prometheus/procfs v0.9.0 // indirect github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rs/cors v1.8.3 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect @@ -211,13 +211,13 @@ require ( go.uber.org/multierr v1.8.0 // indirect golang.org/x/crypto v0.7.0 // indirect golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 // indirect - golang.org/x/mod v0.8.0 // indirect + golang.org/x/mod v0.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/term v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect - golang.org/x/tools v0.6.0 // indirect + golang.org/x/tools v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect @@ -229,16 +229,16 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/blake3 v1.1.6 // indirect - lukechampine.com/uint128 v1.1.1 // indirect - modernc.org/cc/v3 v3.36.0 // indirect - modernc.org/ccgo/v3 v3.16.6 // indirect - modernc.org/libc v1.16.7 // indirect - modernc.org/mathutil v1.4.1 // indirect - modernc.org/memory v1.1.1 // indirect - modernc.org/opt v0.1.1 // indirect - modernc.org/sqlite v1.17.3 // indirect - modernc.org/strutil v1.1.1 // indirect - modernc.org/token v1.0.0 // indirect + lukechampine.com/uint128 v1.2.0 // indirect + modernc.org/cc/v3 v3.40.0 // indirect + modernc.org/ccgo/v3 v3.16.13 // indirect + modernc.org/libc v1.22.3 // indirect + modernc.org/mathutil v1.5.0 // indirect + modernc.org/memory v1.5.0 // indirect + modernc.org/opt v0.1.3 // indirect + modernc.org/sqlite v1.21.0 // indirect + modernc.org/strutil v1.1.3 // indirect + modernc.org/token v1.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v0.5.5 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/interchaintest/go.sum b/interchaintest/go.sum index 32d49c18c..948829910 100644 --- a/interchaintest/go.sum +++ b/interchaintest/go.sum @@ -293,8 +293,8 @@ github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/avast/retry-go/v4 v4.3.2 h1:x4sTEu3jSwr7zNjya8NTdIN+U88u/jtO/q3OupBoDtM= -github.com/avast/retry-go/v4 v4.3.2/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= +github.com/avast/retry-go/v4 v4.3.3 h1:G56Bp6mU0b5HE1SkaoVjscZjlQb0oy4mezwY/cGH19w= +github.com/avast/retry-go/v4 v4.3.3/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= @@ -818,6 +818,7 @@ github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -990,8 +991,9 @@ github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrD github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= +github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -1038,11 +1040,10 @@ github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPn github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= +github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0= -github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -1298,9 +1299,10 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqn github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1372,8 +1374,8 @@ github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jH github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/strangelove-ventures/go-subkey v1.0.7 h1:cOP/Lajg3uxV/tvspu0m6+0Cu+DJgygkEAbx/s+f35I= github.com/strangelove-ventures/go-subkey v1.0.7/go.mod h1:E34izOIEm+sZ1YmYawYRquqBQWeZBjVB4pF7bMuhc1c= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230309210425-6f04be9aab19 h1:myDhIC75y5Kycqke0Go3PeRnsXvGW6fynHDGds2dKFk= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230309210425-6f04be9aab19/go.mod h1:DTYkHkPDFjGE0jGLSG3elpgngb9fhaCHdmM0ERRd/T4= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324004113-98fdaea81ffa h1:/redHTAgMvCFZP+mlSBwjWfparIpEoPA0ZJIypL1TuY= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324004113-98fdaea81ffa/go.mod h1:a6/7YH8Mo+a3BG1NQZ8am/FcwHhphyCc2tpHCEvTeJM= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1559,8 +1561,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1775,7 +1777,6 @@ golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1794,6 +1795,7 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1883,7 +1885,6 @@ golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1897,8 +1898,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2235,41 +2236,30 @@ k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= lukechampine.com/blake3 v1.1.6 h1:H3cROdztr7RCfoaTpGZFQsrqvweFLrqS73j7L7cmR5c= lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= -lukechampine.com/uint128 v1.1.1 h1:pnxCASz787iMf+02ssImqk6OLt+Z5QHMoZyUXR4z6JU= -lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.36.0 h1:0kmRkTmqNidmu3c7BNDSdVHCxXCkWLmWmCIVX4LUboo= -modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= -modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= -modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.6 h1:3l18poV+iUemQ98O3X5OMr97LOqlzis+ytivU4NqGhA= -modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw= +modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= +modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw= +modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= -modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= -modernc.org/libc v1.16.7 h1:qzQtHhsZNpVPpeCu+aMIQldXeV1P0vRhSqCL0nOIJOA= -modernc.org/libc v1.16.7/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= -modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.4.1 h1:ij3fYGe8zBF4Vu+g0oT7mB06r8sqGWKuJu1yXeR4by8= -modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.1.1 h1:bDOL0DIDLQv7bWhP3gMvIrnoFw+Eo6F7a2QK9HPDiFU= -modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/opt v0.1.1 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A= -modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.17.3 h1:iE+coC5g17LtByDYDWKpR6m2Z9022YrSh3bumwOnIrI= -modernc.org/sqlite v1.17.3/go.mod h1:10hPVYar9C0kfXuTWGz8s0XtB8uAGymUy51ZzStYe3k= -modernc.org/strutil v1.1.1 h1:xv+J1BXY3Opl2ALrBwyfEikFAj8pmqcpnfmuwUwcozs= -modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= -modernc.org/tcl v1.13.1 h1:npxzTwFTZYM8ghWicVIX1cRWzj7Nd8i6AqqX2p+IYao= -modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= -modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= -modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.5.1 h1:RTNHdsrOpeoSeOF4FbzTo8gBYByaJ5xT7NgZ9ZqRiJM= -modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= +modernc.org/libc v1.22.3 h1:D/g6O5ftAfavceqlLOFwaZuA5KYafKwmr30A6iSqoyY= +modernc.org/libc v1.22.3/go.mod h1:MQrloYP209xa2zHome2a8HLiLm6k0UT8CoHpV74tOFw= +modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= +modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.21.0 h1:4aP4MdUf15i3R3M2mx6Q90WHKz3nZLoz96zlB6tNdow= +modernc.org/sqlite v1.21.0/go.mod h1:XwQ0wZPIh1iKb5mkvCJ3szzbhk+tykC8ZWqTRTgYRwI= +modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.15.1 h1:mOQwiEK4p7HruMZcwKTZPw/aqtGM4aY00uzWhlKKYws= +modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg= +modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.7.0 h1:xkDw/KepgEjeizO2sNco+hqYkU12taxQFqPEmgm1GWE= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= diff --git a/interchaintest/interchain_accounts_test.go b/interchaintest/interchain_accounts_test.go new file mode 100644 index 000000000..37be21e5d --- /dev/null +++ b/interchaintest/interchain_accounts_test.go @@ -0,0 +1,318 @@ +package interchaintest_test + +import ( + "context" + "encoding/json" + "strconv" + "strings" + "testing" + "time" + + "github.com/cosmos/cosmos-sdk/crypto/keyring" + relayerinterchaintest "github.com/cosmos/relayer/v2/interchaintest" + interchaintest "github.com/strangelove-ventures/interchaintest/v7" + "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v7/ibc" + "github.com/strangelove-ventures/interchaintest/v7/testreporter" + "github.com/strangelove-ventures/interchaintest/v7/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +// TestScenarioInterchainAccounts is a test case that performs simulations and assertions around some basic +// features and packet flows surrounding interchain accounts. See: https://github.com/cosmos/interchain-accounts-demo +func TestScenarioInterchainAccounts(t *testing.T) { + if testing.Short() { + t.Skip("skipping in short mode") + } + + t.Parallel() + + client, network := interchaintest.DockerSetup(t) + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + ctx := context.Background() + + // Get both chains + nf := 0 + nv := 1 + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + Name: "icad", + NumValidators: &nv, + NumFullNodes: &nf, + ChainConfig: ibc.ChainConfig{ + Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.3.5"}}, + }, + }, + { + Name: "icad", + NumValidators: &nv, + NumFullNodes: &nf, + ChainConfig: ibc.ChainConfig{ + Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.3.5"}}, + }, + }, + }) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + chain1, chain2 := chains[0], chains[1] + + // Get a relayer instance + r := relayerinterchaintest. + NewRelayerFactory(relayerinterchaintest.RelayerConfig{}). + Build(t, client, network) + + // Build the network; spin up the chains and configure the relayer + const pathName = "test-path" + const relayerName = "relayer" + + ic := interchaintest.NewInterchain(). + AddChain(chain1). + AddChain(chain2). + AddRelayer(r, relayerName). + AddLink(interchaintest.InterchainLink{ + Chain1: chain1, + Chain2: chain2, + Relayer: r, + Path: pathName, + }) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + SkipPathCreation: true, + })) + + // Fund a user account on chain1 and chain2 + const userFunds = int64(10_000_000_000) + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, chain1, chain2) + chain1User := users[0] + chain2User := users[1] + + // Generate a new IBC path + err = r.GeneratePath(ctx, eRep, chain1.Config().ChainID, chain2.Config().ChainID, pathName) + require.NoError(t, err) + + // Create new clients + err = r.CreateClients(ctx, eRep, pathName, ibc.CreateClientOptions{TrustingPeriod: "330h"}) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + require.NoError(t, err) + + // Create a new connection + err = r.CreateConnections(ctx, eRep, pathName) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + require.NoError(t, err) + + // Query for the newly created connection + connections, err := r.GetConnections(ctx, eRep, chain1.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 1, len(connections)) + + // Register a new interchain account on chain2, on behalf of the user acc on chain1 + chain1Addr := chain1User.(*cosmos.CosmosWallet).FormattedAddressWithPrefix(chain1.Config().Bech32Prefix) + + registerICA := []string{ + chain1.Config().Bin, "tx", "intertx", "register", + "--from", chain1Addr, + "--connection-id", connections[0].ID, + "--chain-id", chain1.Config().ChainID, + "--home", chain1.HomeDir(), + "--node", chain1.GetRPCAddress(), + "--keyring-backend", keyring.BackendTest, + "-y", + } + _, _, err = chain1.Exec(ctx, registerICA, nil) + require.NoError(t, err) + + // Start the relayer and set the cleanup function. + err = r.StartRelayer(ctx, eRep, pathName) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) + + // Wait for relayer to start up and finish channel handshake + err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + require.NoError(t, err) + + // Query for the newly registered interchain account + queryICA := []string{ + chain1.Config().Bin, "query", "intertx", "interchainaccounts", connections[0].ID, chain1Addr, + "--chain-id", chain1.Config().ChainID, + "--home", chain1.HomeDir(), + "--node", chain1.GetRPCAddress(), + } + stdout, _, err := chain1.Exec(ctx, queryICA, nil) + require.NoError(t, err) + + icaAddr := parseInterchainAccountField(stdout) + require.NotEmpty(t, icaAddr) + + // Get initial account balances + chain2Addr := chain2User.(*cosmos.CosmosWallet).FormattedAddressWithPrefix(chain2.Config().Bech32Prefix) + + chain2OrigBal, err := chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + + icaOrigBal, err := chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + + // Send funds to ICA from user account on chain2 + const transferAmount = 10000 + transfer := ibc.WalletAmount{ + Address: icaAddr, + Denom: chain2.Config().Denom, + Amount: transferAmount, + } + err = chain2.SendFunds(ctx, chain2User.KeyName(), transfer) + require.NoError(t, err) + + // Wait for transfer to be complete and assert balances + err = testutil.WaitForBlocks(ctx, 5, chain2) + require.NoError(t, err) + + chain2Bal, err := chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, chain2OrigBal-transferAmount, chain2Bal) + + icaBal, err := chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, icaOrigBal+transferAmount, icaBal) + + // Build bank transfer msg + rawMsg, err := json.Marshal(map[string]any{ + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": icaAddr, + "to_address": chain2Addr, + "amount": []map[string]any{ + { + "denom": chain2.Config().Denom, + "amount": strconv.Itoa(transferAmount), + }, + }, + }) + require.NoError(t, err) + + // Send bank transfer msg to ICA on chain2 from the user account on chain1 + sendICATransfer := []string{ + chain1.Config().Bin, "tx", "intertx", "submit", string(rawMsg), + "--connection-id", connections[0].ID, + "--from", chain1Addr, + "--chain-id", chain1.Config().ChainID, + "--home", chain1.HomeDir(), + "--node", chain1.GetRPCAddress(), + "--keyring-backend", keyring.BackendTest, + "-y", + } + _, _, err = chain1.Exec(ctx, sendICATransfer, nil) + require.NoError(t, err) + + // Wait for tx to be relayed + err = testutil.WaitForBlocks(ctx, 10, chain2) + require.NoError(t, err) + + // Assert that the funds have been received by the user account on chain2 + chain2Bal, err = chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, chain2OrigBal, chain2Bal) + + // Assert that the funds have been removed from the ICA on chain2 + icaBal, err = chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, icaOrigBal, icaBal) + + // Stop the relayer and wait for the process to terminate + err = r.StopRelayer(ctx, eRep) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + require.NoError(t, err) + + // Send another bank transfer msg to ICA on chain2 from the user account on chain1. + // This message should timeout and the channel will be closed when we re-start the relayer. + _, _, err = chain1.Exec(ctx, sendICATransfer, nil) + require.NoError(t, err) + + // Wait for approximately one minute to allow packet timeout threshold to be hit + time.Sleep(70 * time.Second) + + // Restart the relayer and wait for NextSeqRecv proof to be delivered and packet timed out + err = r.StartRelayer(ctx, eRep, pathName) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + require.NoError(t, err) + + // Assert that the packet timed out and that the acc balances are correct + chain2Bal, err = chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, chain2OrigBal, chain2Bal) + + icaBal, err = chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, icaOrigBal, icaBal) + + // Assert that the channel ends are both closed + chain1Chans, err := r.GetChannels(ctx, eRep, chain1.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 1, len(chain1Chans)) + require.Subset(t, []string{"STATE_CLOSED", "Closed"}, []string{chain1Chans[0].State}) + + chain2Chans, err := r.GetChannels(ctx, eRep, chain2.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 1, len(chain2Chans)) + require.Subset(t, []string{"STATE_CLOSED", "Closed"}, []string{chain2Chans[0].State}) + + // Attempt to open another channel for the same ICA + _, _, err = chain1.Exec(ctx, registerICA, nil) + require.NoError(t, err) + + // Wait for channel handshake to finish + err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + require.NoError(t, err) + + // Assert that a new channel has been opened and the same ICA is in use + stdout, _, err = chain1.Exec(ctx, queryICA, nil) + require.NoError(t, err) + + newICA := parseInterchainAccountField(stdout) + require.NotEmpty(t, newICA) + require.Equal(t, icaAddr, newICA) + + chain1Chans, err = r.GetChannels(ctx, eRep, chain1.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 2, len(chain1Chans)) + require.Subset(t, []string{"STATE_OPEN", "Open"}, []string{chain1Chans[1].State}) + + chain2Chans, err = r.GetChannels(ctx, eRep, chain2.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 2, len(chain2Chans)) + require.Subset(t, []string{"STATE_OPEN", "Open"}, []string{chain2Chans[1].State}) +} + +// parseInterchainAccountField takes a slice of bytes which should be returned when querying for an ICA via +// the 'intertx interchainaccounts' cmd and splices out the actual address portion. +func parseInterchainAccountField(stdout []byte) string { + // After querying an ICA the stdout should look like the following, + // interchain_account_address: cosmos1p76n3mnanllea4d3av0v0e42tjj03cae06xq8fwn9at587rqp23qvxsv0j + // So we split the string at the : and then grab the address and return. + parts := strings.SplitN(string(stdout), ":", 2) + icaAddr := strings.TrimSpace(parts[1]) + return icaAddr +} diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index a16e36838..a9d26d6aa 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -483,7 +483,10 @@ func (pathEnd *pathEndRuntime) removePacketRetention( // It will also determine if the message needs to be given up on entirely and remove retention if so. func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBCMessage, counterparty *pathEndRuntime) bool { eventType := message.eventType - k := ConnectionInfoConnectionKey(message.info).Counterparty() + k := ConnectionInfoConnectionKey(message.info) + if eventType != chantypes.EventTypeChannelOpenInit { + k = k.Counterparty() + } if message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay connection message until counterparty height has incremented", zap.Inline(k), @@ -555,7 +558,10 @@ func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBC // It will also determine if the message needs to be given up on entirely and remove retention if so. func (pathEnd *pathEndRuntime) shouldSendChannelMessage(message channelIBCMessage, counterparty *pathEndRuntime) bool { eventType := message.eventType - channelKey := ChannelInfoChannelKey(message.info).Counterparty() + channelKey := ChannelInfoChannelKey(message.info) + if eventType != chantypes.EventTypeChannelOpenInit { + channelKey = channelKey.Counterparty() + } if message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay channel message until counterparty height has incremented", zap.Inline(channelKey), diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index e7ebca499..eda9ccf55 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -121,6 +121,8 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( } for seq, info := range pathEndPacketFlowMessages.SrcMsgTimeout { + deletePreInitIfMatches(info) + toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) if info.ChannelOrder == chantypes.ORDERED.String() { // For ordered channel packets, flow is not done until channel-close-confirm is observed. if pathEndPacketFlowMessages.DstMsgChannelCloseConfirm == nil { @@ -148,15 +150,11 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( toDeleteDstChannel[chantypes.EventTypeChannelCloseConfirm], k.Counterparty(), ) - deletePreInitIfMatches(info) - toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) } } else { // unordered channel, and we have a timeout for this packet, so packet flow is complete // remove all retention of this sequence number - deletePreInitIfMatches(info) - toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) } } From 1206b444d9bc81b0fa5a71536f77e3db97c20105 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Fri, 24 Mar 2023 10:52:16 -0600 Subject: [PATCH 07/46] Fix flush termination condition (#1141) --- relayer/processor/path_processor_internal.go | 44 ++++++++++++++------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index eda9ccf55..9fc835257 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -1041,10 +1041,16 @@ func (pp *PathProcessor) flush(ctx context.Context) { // Query remaining packet commitments on both chains var eg errgroup.Group - for k := range pp.pathEnd1.channelStateCache { + for k, open := range pp.pathEnd1.channelStateCache { + if !open { + continue + } eg.Go(queryPacketCommitments(ctx, pp.pathEnd1, k, commitments1, &commitments1Mu)) } - for k := range pp.pathEnd2.channelStateCache { + for k, open := range pp.pathEnd2.channelStateCache { + if !open { + continue + } eg.Go(queryPacketCommitments(ctx, pp.pathEnd2, k, commitments2, &commitments2Mu)) } @@ -1080,7 +1086,10 @@ func (pp *PathProcessor) shouldTerminateForFlushComplete( if _, ok := pp.messageLifecycle.(*FlushLifecycle); !ok { return false } - for _, packetMessagesCache := range pp.pathEnd1.messageCache.PacketFlow { + for k, packetMessagesCache := range pp.pathEnd1.messageCache.PacketFlow { + if open, ok := pp.pathEnd1.channelStateCache[k]; !ok || !open { + continue + } for _, c := range packetMessagesCache { if len(c) > 0 { return false @@ -1088,16 +1097,23 @@ func (pp *PathProcessor) shouldTerminateForFlushComplete( } } for _, c := range pp.pathEnd1.messageCache.ChannelHandshake { - if len(c) > 0 { - return false + for k := range pp.pathEnd1.channelStateCache { + if _, ok := c[k]; ok { + return false + } } } for _, c := range pp.pathEnd1.messageCache.ConnectionHandshake { - if len(c) > 0 { - return false + for k := range pp.pathEnd1.connectionStateCache { + if _, ok := c[k]; ok { + return false + } } } - for _, packetMessagesCache := range pp.pathEnd2.messageCache.PacketFlow { + for k, packetMessagesCache := range pp.pathEnd2.messageCache.PacketFlow { + if open, ok := pp.pathEnd1.channelStateCache[k]; !ok || !open { + continue + } for _, c := range packetMessagesCache { if len(c) > 0 { return false @@ -1105,13 +1121,17 @@ func (pp *PathProcessor) shouldTerminateForFlushComplete( } } for _, c := range pp.pathEnd2.messageCache.ChannelHandshake { - if len(c) > 0 { - return false + for k := range pp.pathEnd1.channelStateCache { + if _, ok := c[k]; ok { + return false + } } } for _, c := range pp.pathEnd2.messageCache.ConnectionHandshake { - if len(c) > 0 { - return false + for k := range pp.pathEnd1.connectionStateCache { + if _, ok := c[k]; ok { + return false + } } } pp.log.Info("Found termination condition for flush, all caches cleared") From 88acf216a65159d514610749162c85b226519686 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Fri, 24 Mar 2023 12:18:17 -0600 Subject: [PATCH 08/46] bump to main sha (#1143) --- interchaintest/go.mod | 23 +++++++++--------- interchaintest/go.sum | 55 +++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 42 deletions(-) diff --git a/interchaintest/go.mod b/interchaintest/go.mod index c01d00df6..01f2c00f0 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -11,7 +11,7 @@ require ( github.com/docker/docker v20.10.19+incompatible github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 github.com/moby/moby v20.10.22+incompatible - github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324004113-98fdaea81ffa + github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324180345-a06599d2eb8c github.com/stretchr/testify v1.8.2 go.uber.org/zap v1.24.0 golang.org/x/sync v0.1.0 @@ -131,7 +131,7 @@ require ( github.com/huandu/skiplist v1.2.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/ipfs/go-cid v0.0.7 // indirect + github.com/ipfs/go-cid v0.2.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -141,14 +141,15 @@ require ( github.com/klauspost/cpuid/v2 v2.2.3 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/libp2p/go-libp2p-core v0.15.1 // indirect - github.com/libp2p/go-openssl v0.0.7 // indirect + github.com/libp2p/go-libp2p v0.22.0 // indirect + github.com/libp2p/go-libp2p-core v0.20.1 // indirect + github.com/libp2p/go-openssl v0.1.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-pointer v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b // indirect - github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/minio/sha256-simd v1.0.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -160,12 +161,12 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/mtibben/percent v0.2.1 // indirect - github.com/multiformats/go-base32 v0.0.3 // indirect + github.com/multiformats/go-base32 v0.0.4 // indirect github.com/multiformats/go-base36 v0.1.0 // indirect - github.com/multiformats/go-multiaddr v0.4.1 // indirect - github.com/multiformats/go-multibase v0.0.3 // indirect - github.com/multiformats/go-multicodec v0.4.1 // indirect - github.com/multiformats/go-multihash v0.1.0 // indirect + github.com/multiformats/go-multiaddr v0.6.0 // indirect + github.com/multiformats/go-multibase v0.1.1 // indirect + github.com/multiformats/go-multicodec v0.5.0 // indirect + github.com/multiformats/go-multihash v0.2.1 // indirect github.com/multiformats/go-varint v0.0.6 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc2 // indirect @@ -228,7 +229,7 @@ require ( gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - lukechampine.com/blake3 v1.1.6 // indirect + lukechampine.com/blake3 v1.1.7 // indirect lukechampine.com/uint128 v1.2.0 // indirect modernc.org/cc/v3 v3.40.0 // indirect modernc.org/ccgo/v3 v3.16.13 // indirect diff --git a/interchaintest/go.sum b/interchaintest/go.sum index 948829910..8b3f4c189 100644 --- a/interchaintest/go.sum +++ b/interchaintest/go.sum @@ -945,8 +945,8 @@ github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY= -github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= +github.com/ipfs/go-cid v0.2.0 h1:01JTiihFq9en9Vz0lc0VDWvZe/uBonGpzo4THP0vcQ0= +github.com/ipfs/go-cid v0.2.0/go.mod h1:P+HXFDF4CVhaVayiEb4wkAy7zBHxBwsJyt0Y5U6MLro= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= @@ -1014,10 +1014,12 @@ github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= -github.com/libp2p/go-libp2p-core v0.15.1 h1:0RY+Mi/ARK9DgG1g9xVQLb8dDaaU8tCePMtGALEfBnM= -github.com/libp2p/go-libp2p-core v0.15.1/go.mod h1:agSaboYM4hzB1cWekgVReqV5M4g5M+2eNNejV+1EEhs= -github.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGNsw= -github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= +github.com/libp2p/go-libp2p v0.22.0 h1:2Tce0kHOp5zASFKJbNzRElvh0iZwdtG5uZheNW8chIw= +github.com/libp2p/go-libp2p v0.22.0/go.mod h1:UDolmweypBSjQb2f7xutPnwZ/fxioLbMBxSjRksxxU4= +github.com/libp2p/go-libp2p-core v0.20.1 h1:fQz4BJyIFmSZAiTbKV8qoYhEH5Dtv/cVhZbG3Ib/+Cw= +github.com/libp2p/go-libp2p-core v0.20.1/go.mod h1:6zR8H7CvQWgYLsbG4on6oLNSGcyKaYFSEYyDt51+bIY= +github.com/libp2p/go-openssl v0.1.0 h1:LBkKEcUv6vtZIQLVTegAil8jbNpJErQ9AnT+bWV+Ooo= +github.com/libp2p/go-openssl v0.1.0/go.mod h1:OiOxwPpL3n4xlenjx2h7AwSGaFSC/KZvf6gNdOBQMtc= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= @@ -1038,6 +1040,8 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= +github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= @@ -1054,11 +1058,8 @@ github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WT github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b h1:QrHweqAtyJ9EwCaGHBu1fghwxIPiopAHV06JlXrMHjk= github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b/go.mod h1:xxLb2ip6sSUts3g1irPVHyk/DGslwQsNOo9I7smJfNU= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= -github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= @@ -1098,28 +1099,23 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= -github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= -github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= -github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-base32 v0.0.4 h1:+qMh4a2f37b4xTNs6mqitDinryCI+tfO2dRVMN9mjSE= +github.com/multiformats/go-base32 v0.0.4/go.mod h1:jNLFzjPZtp3aIARHbJRZIaPuspdH0J6q39uUM5pnABM= github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= -github.com/multiformats/go-multiaddr v0.4.1 h1:Pq37uLx3hsyNlTDir7FZyU8+cFCTqd5y1KiM2IzOutI= -github.com/multiformats/go-multiaddr v0.4.1/go.mod h1:3afI9HfVW8csiF8UZqtpYRiDyew8pRX7qLIGHu9FLuM= -github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk= -github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= -github.com/multiformats/go-multicodec v0.4.1 h1:BSJbf+zpghcZMZrwTYBGwy0CPcVZGWiC72Cp8bBd4R4= -github.com/multiformats/go-multicodec v0.4.1/go.mod h1:1Hj/eHRaVWSXiSNNfcEPcwZleTmdNP81xlxDLnWU9GQ= -github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.1.0 h1:CgAgwqk3//SVEw3T+6DqI4mWMyRuDwZtOWcJT0q9+EA= -github.com/multiformats/go-multihash v0.1.0/go.mod h1:RJlXsxt6vHGaia+S8We0ErjhojtKzPP2AH4+kYM7k84= -github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/multiformats/go-multiaddr v0.6.0 h1:qMnoOPj2s8xxPU5kZ57Cqdr0hHhARz7mFsPMIiYNqzg= +github.com/multiformats/go-multiaddr v0.6.0/go.mod h1:F4IpaKZuPP360tOMn2Tpyu0At8w23aRyVqeK0DbFeGM= +github.com/multiformats/go-multibase v0.1.1 h1:3ASCDsuLX8+j4kx58qnJ4YFq/JWTJpCyDW27ztsVTOI= +github.com/multiformats/go-multibase v0.1.1/go.mod h1:ZEjHE+IsUrgp5mhlEAYjMtZwK1k4haNkcaPg9aoe1a8= +github.com/multiformats/go-multicodec v0.5.0 h1:EgU6cBe/D7WRwQb1KmnBvU7lrcFGMggZVTPtOW9dDHs= +github.com/multiformats/go-multicodec v0.5.0/go.mod h1:DiY2HFaEp5EhEXb/iYzVAunmyX/aSFMxq2KMKfWEues= +github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108= +github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc= github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= @@ -1374,8 +1370,8 @@ github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jH github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/strangelove-ventures/go-subkey v1.0.7 h1:cOP/Lajg3uxV/tvspu0m6+0Cu+DJgygkEAbx/s+f35I= github.com/strangelove-ventures/go-subkey v1.0.7/go.mod h1:E34izOIEm+sZ1YmYawYRquqBQWeZBjVB4pF7bMuhc1c= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324004113-98fdaea81ffa h1:/redHTAgMvCFZP+mlSBwjWfparIpEoPA0ZJIypL1TuY= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324004113-98fdaea81ffa/go.mod h1:a6/7YH8Mo+a3BG1NQZ8am/FcwHhphyCc2tpHCEvTeJM= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324180345-a06599d2eb8c h1:vGl7skxBHHW5qE88Dc9q+ZOxwJJIYDNjqmQTPHiPUF0= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324180345-a06599d2eb8c/go.mod h1:/pjBA7gAa1AuMphaLp8joBjVOAHqewe8UenyQ45sh9M= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1515,7 +1511,6 @@ golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -1757,7 +1752,6 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1805,7 +1799,6 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -2234,8 +2227,8 @@ k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -lukechampine.com/blake3 v1.1.6 h1:H3cROdztr7RCfoaTpGZFQsrqvweFLrqS73j7L7cmR5c= -lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= +lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= +lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw= From 048dfa49932eca0d40cce8aa75fbebc3aae7fd3f Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Mon, 27 Mar 2023 10:22:14 -0600 Subject: [PATCH 09/46] Pre-filter flush channels (#1146) --- relayer/processor/path_processor_internal.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 9fc835257..9ee4c2a72 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -1045,12 +1045,26 @@ func (pp *PathProcessor) flush(ctx context.Context) { if !open { continue } + if !pp.pathEnd1.info.ShouldRelayChannel(ChainChannelKey{ + ChainID: pp.pathEnd1.info.ChainID, + CounterpartyChainID: pp.pathEnd2.info.ChainID, + ChannelKey: k, + }) { + continue + } eg.Go(queryPacketCommitments(ctx, pp.pathEnd1, k, commitments1, &commitments1Mu)) } for k, open := range pp.pathEnd2.channelStateCache { if !open { continue } + if !pp.pathEnd2.info.ShouldRelayChannel(ChainChannelKey{ + ChainID: pp.pathEnd2.info.ChainID, + CounterpartyChainID: pp.pathEnd1.info.ChainID, + ChannelKey: k, + }) { + continue + } eg.Go(queryPacketCommitments(ctx, pp.pathEnd2, k, commitments2, &commitments2Mu)) } From f29a2c7b20a1d9afba4906c592f26dc4add1cb71 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Mon, 27 Mar 2023 11:10:37 -0600 Subject: [PATCH 10/46] Add channel close correlation (#1145) * Add channel close correlation * Switch to pre-close key * make tx channel-close cli command work, add test coverage * more sweet code removals * update comment --- interchaintest/ica_channel_close_test.go | 315 +++++++++++++++++++ interchaintest/interchain_accounts_test.go | 6 +- relayer/channel.go | 61 +++- relayer/processor/path_end_runtime.go | 44 ++- relayer/processor/path_processor.go | 6 +- relayer/processor/path_processor_internal.go | 295 ++++++++++++----- relayer/processor/types.go | 12 + relayer/processor/types_internal.go | 27 +- 8 files changed, 652 insertions(+), 114 deletions(-) create mode 100644 interchaintest/ica_channel_close_test.go diff --git a/interchaintest/ica_channel_close_test.go b/interchaintest/ica_channel_close_test.go new file mode 100644 index 000000000..30e4dcee0 --- /dev/null +++ b/interchaintest/ica_channel_close_test.go @@ -0,0 +1,315 @@ +package interchaintest_test + +import ( + "context" + "encoding/json" + "strconv" + "testing" + "time" + + "github.com/cosmos/cosmos-sdk/crypto/keyring" + relayerinterchaintest "github.com/cosmos/relayer/v2/interchaintest" + interchaintest "github.com/strangelove-ventures/interchaintest/v7" + "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v7/ibc" + "github.com/strangelove-ventures/interchaintest/v7/testreporter" + "github.com/strangelove-ventures/interchaintest/v7/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +// TestScenarioICAChannelClose is very similar to the TestScenarioInterchainAccounts, +// but instead it tests manually closing the channel using the relayer CLI. +func TestScenarioICAChannelClose(t *testing.T) { + if testing.Short() { + t.Skip("skipping in short mode") + } + + t.Parallel() + + client, network := interchaintest.DockerSetup(t) + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + ctx := context.Background() + + // Get both chains + nf := 0 + nv := 1 + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + Name: "icad", + NumValidators: &nv, + NumFullNodes: &nf, + ChainConfig: ibc.ChainConfig{ + Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.5.0"}}, + UsingNewGenesisCommand: true, + }, + }, + { + Name: "icad", + NumValidators: &nv, + NumFullNodes: &nf, + ChainConfig: ibc.ChainConfig{ + Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.5.0"}}, + UsingNewGenesisCommand: true, + }, + }, + }) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + chain1, chain2 := chains[0], chains[1] + + // Get a relayer instance + r := relayerinterchaintest. + NewRelayerFactory(relayerinterchaintest.RelayerConfig{}). + Build(t, client, network) + + // Build the network; spin up the chains and configure the relayer + const pathName = "test-path" + const relayerName = "relayer" + + ic := interchaintest.NewInterchain(). + AddChain(chain1). + AddChain(chain2). + AddRelayer(r, relayerName). + AddLink(interchaintest.InterchainLink{ + Chain1: chain1, + Chain2: chain2, + Relayer: r, + Path: pathName, + }) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + SkipPathCreation: true, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + })) + + // Fund a user account on chain1 and chain2 + const userFunds = int64(10_000_000_000) + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, chain1, chain2) + chain1User := users[0] + chain2User := users[1] + + // Generate a new IBC path + err = r.GeneratePath(ctx, eRep, chain1.Config().ChainID, chain2.Config().ChainID, pathName) + require.NoError(t, err) + + // Create new clients + err = r.CreateClients(ctx, eRep, pathName, ibc.CreateClientOptions{TrustingPeriod: "330h"}) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + require.NoError(t, err) + + // Create a new connection + err = r.CreateConnections(ctx, eRep, pathName) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + require.NoError(t, err) + + // Query for the newly created connection + connections, err := r.GetConnections(ctx, eRep, chain1.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 1, len(connections)) + + // Register a new interchain account on chain2, on behalf of the user acc on chain1 + chain1Addr := chain1User.(*cosmos.CosmosWallet).FormattedAddressWithPrefix(chain1.Config().Bech32Prefix) + + registerICA := []string{ + chain1.Config().Bin, "tx", "intertx", "register", + "--from", chain1Addr, + "--connection-id", connections[0].ID, + "--chain-id", chain1.Config().ChainID, + "--home", chain1.HomeDir(), + "--node", chain1.GetRPCAddress(), + "--keyring-backend", keyring.BackendTest, + "-y", + } + _, _, err = chain1.Exec(ctx, registerICA, nil) + require.NoError(t, err) + + // Start the relayer and set the cleanup function. + err = r.StartRelayer(ctx, eRep, pathName) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) + + // Wait for relayer to start up and finish channel handshake + err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + require.NoError(t, err) + + // Query for the newly registered interchain account + queryICA := []string{ + chain1.Config().Bin, "query", "intertx", "interchainaccounts", connections[0].ID, chain1Addr, + "--chain-id", chain1.Config().ChainID, + "--home", chain1.HomeDir(), + "--node", chain1.GetRPCAddress(), + } + stdout, _, err := chain1.Exec(ctx, queryICA, nil) + require.NoError(t, err) + + icaAddr := parseInterchainAccountField(stdout) + require.NotEmpty(t, icaAddr) + + // Get initial account balances + chain2Addr := chain2User.(*cosmos.CosmosWallet).FormattedAddressWithPrefix(chain2.Config().Bech32Prefix) + + chain2OrigBal, err := chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + + icaOrigBal, err := chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + + // Send funds to ICA from user account on chain2 + const transferAmount = 10000 + transfer := ibc.WalletAmount{ + Address: icaAddr, + Denom: chain2.Config().Denom, + Amount: transferAmount, + } + err = chain2.SendFunds(ctx, chain2User.KeyName(), transfer) + require.NoError(t, err) + + // Wait for transfer to be complete and assert balances + err = testutil.WaitForBlocks(ctx, 5, chain2) + require.NoError(t, err) + + chain2Bal, err := chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, chain2OrigBal-transferAmount, chain2Bal) + + icaBal, err := chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, icaOrigBal+transferAmount, icaBal) + + // Build bank transfer msg + rawMsg, err := json.Marshal(map[string]any{ + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": icaAddr, + "to_address": chain2Addr, + "amount": []map[string]any{ + { + "denom": chain2.Config().Denom, + "amount": strconv.Itoa(transferAmount), + }, + }, + }) + require.NoError(t, err) + + // Send bank transfer msg to ICA on chain2 from the user account on chain1 + sendICATransfer := []string{ + chain1.Config().Bin, "tx", "intertx", "submit", string(rawMsg), + "--connection-id", connections[0].ID, + "--from", chain1Addr, + "--chain-id", chain1.Config().ChainID, + "--home", chain1.HomeDir(), + "--node", chain1.GetRPCAddress(), + "--keyring-backend", keyring.BackendTest, + "-y", + } + _, _, err = chain1.Exec(ctx, sendICATransfer, nil) + require.NoError(t, err) + + // Wait for tx to be relayed + err = testutil.WaitForBlocks(ctx, 10, chain2) + require.NoError(t, err) + + // Assert that the funds have been received by the user account on chain2 + chain2Bal, err = chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, chain2OrigBal, chain2Bal) + + // Assert that the funds have been removed from the ICA on chain2 + icaBal, err = chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, icaOrigBal, icaBal) + + // Stop the relayer and wait for the process to terminate + err = r.StopRelayer(ctx, eRep) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + require.NoError(t, err) + + // Send another bank transfer msg to ICA on chain2 from the user account on chain1. + // This message should timeout and the channel will be closed when we re-start the relayer. + _, _, err = chain1.Exec(ctx, sendICATransfer, nil) + require.NoError(t, err) + + // Wait for approximately one minute to allow packet timeout threshold to be hit + time.Sleep(70 * time.Second) + + chain1Chans, err := r.GetChannels(ctx, eRep, chain1.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 1, len(chain1Chans)) + + // Close the channel using the channel close CLI method + res := r.Exec(ctx, eRep, []string{"tx", "channel-close", pathName, chain1Chans[0].ChannelID, chain1Chans[0].PortID}, nil) + require.NoError(t, res.Err) + require.Zero(t, res.ExitCode) + + // Assert that the packet timed out and that the acc balances are correct + chain2Bal, err = chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, chain2OrigBal, chain2Bal) + + icaBal, err = chain2.GetBalance(ctx, icaAddr, chain2.Config().Denom) + require.NoError(t, err) + require.Equal(t, icaOrigBal, icaBal) + + // Assert that the channel ends are both closed + chain1Chans, err = r.GetChannels(ctx, eRep, chain1.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 1, len(chain1Chans)) + require.Subset(t, []string{"STATE_CLOSED", "Closed"}, []string{chain1Chans[0].State}) + + chain2Chans, err := r.GetChannels(ctx, eRep, chain2.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 1, len(chain2Chans)) + require.Subset(t, []string{"STATE_CLOSED", "Closed"}, []string{chain2Chans[0].State}) + + // Restart the relayer for the next channel handshake + err = r.StartRelayer(ctx, eRep, pathName) + require.NoError(t, err) + + // Attempt to open another channel for the same ICA + _, _, err = chain1.Exec(ctx, registerICA, nil) + require.NoError(t, err) + + // Wait for channel handshake to finish + err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + require.NoError(t, err) + + // Assert that a new channel has been opened and the same ICA is in use + stdout, _, err = chain1.Exec(ctx, queryICA, nil) + require.NoError(t, err) + + newICA := parseInterchainAccountField(stdout) + require.NotEmpty(t, newICA) + require.Equal(t, icaAddr, newICA) + + chain1Chans, err = r.GetChannels(ctx, eRep, chain1.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 2, len(chain1Chans)) + require.Subset(t, []string{"STATE_OPEN", "Open"}, []string{chain1Chans[1].State}) + + chain2Chans, err = r.GetChannels(ctx, eRep, chain2.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 2, len(chain2Chans)) + require.Subset(t, []string{"STATE_OPEN", "Open"}, []string{chain2Chans[1].State}) +} diff --git a/interchaintest/interchain_accounts_test.go b/interchaintest/interchain_accounts_test.go index 37be21e5d..3da235746 100644 --- a/interchaintest/interchain_accounts_test.go +++ b/interchaintest/interchain_accounts_test.go @@ -44,7 +44,8 @@ func TestScenarioInterchainAccounts(t *testing.T) { NumValidators: &nv, NumFullNodes: &nf, ChainConfig: ibc.ChainConfig{ - Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.3.5"}}, + Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.5.0"}}, + UsingNewGenesisCommand: true, }, }, { @@ -52,7 +53,8 @@ func TestScenarioInterchainAccounts(t *testing.T) { NumValidators: &nv, NumFullNodes: &nf, ChainConfig: ibc.ChainConfig{ - Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.3.5"}}, + Images: []ibc.DockerImage{{Repository: "ghcr.io/cosmos/ibc-go-icad", Version: "v0.5.0"}}, + UsingNewGenesisCommand: true, }, }, }) diff --git a/relayer/channel.go b/relayer/channel.go index f5aa9dc0e..5274d405d 100644 --- a/relayer/channel.go +++ b/relayer/channel.go @@ -114,9 +114,47 @@ func (c *Chain) CloseChannel( // Timeout is per message. Two close channel handshake messages, allowing maxRetries for each. processorTimeout := timeout * 2 * time.Duration(maxRetries) + // Perform a flush first so that any timeouts are cleared. + flushCtx, flushCancel := context.WithTimeout(ctx, processorTimeout) + defer flushCancel() + + flushProcessor := processor.NewEventProcessor(). + WithChainProcessors( + c.chainProcessor(c.log, nil), + dst.chainProcessor(c.log, nil), + ). + WithPathProcessors(processor.NewPathProcessor( + c.log, + processor.NewPathEnd(pathName, c.PathEnd.ChainID, c.PathEnd.ClientID, "", []processor.ChainChannelKey{}), + processor.NewPathEnd(pathName, dst.PathEnd.ChainID, dst.PathEnd.ClientID, "", []processor.ChainChannelKey{}), + nil, + memo, + DefaultClientUpdateThreshold, + DefaultFlushInterval, + )). + WithInitialBlockHistory(0). + WithMessageLifecycle(&processor.FlushLifecycle{}). + Build() + + c.log.Info("Starting event processor for flush before channel close", + zap.String("src_chain_id", c.PathEnd.ChainID), + zap.String("src_port_id", srcPortID), + zap.String("dst_chain_id", dst.PathEnd.ChainID), + ) + + if err := flushProcessor.Run(flushCtx); err != nil { + return err + } + ctx, cancel := context.WithTimeout(ctx, processorTimeout) defer cancel() + c.log.Info("Starting event processor for channel close", + zap.String("src_chain_id", c.PathEnd.ChainID), + zap.String("src_port_id", srcPortID), + zap.String("dst_chain_id", dst.PathEnd.ChainID), + ) + return processor.NewEventProcessor(). WithChainProcessors( c.chainProcessor(c.log, nil), @@ -132,23 +170,12 @@ func (c *Chain) CloseChannel( DefaultFlushInterval, )). WithInitialBlockHistory(0). - WithMessageLifecycle(&processor.ChannelMessageLifecycle{ - Initial: &processor.ChannelMessage{ - ChainID: c.PathEnd.ChainID, - EventType: chantypes.EventTypeChannelCloseInit, - Info: provider.ChannelInfo{ - PortID: srcPortID, - ChannelID: srcChanID, - }, - }, - Termination: &processor.ChannelMessage{ - ChainID: dst.PathEnd.ChainID, - EventType: chantypes.EventTypeChannelCloseConfirm, - Info: provider.ChannelInfo{ - CounterpartyPortID: srcPortID, - CounterpartyChannelID: srcChanID, - }, - }, + WithMessageLifecycle(&processor.ChannelCloseLifecycle{ + SrcChainID: c.PathEnd.ChainID, + SrcChannelID: srcChanID, + SrcPortID: srcPortID, + SrcConnID: c.PathEnd.ConnectionID, + DstConnID: dst.PathEnd.ConnectionID, }). Build(). Run(ctx) diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index a9d26d6aa..9796ade1c 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -232,6 +232,12 @@ func (pathEnd *pathEndRuntime) shouldTerminate(ibcMessagesCache IBCMessagesCache foundCounterpartyChannelID := m.Termination.Info.CounterpartyChannelID == "" foundCounterpartyPortID := m.Termination.Info.CounterpartyPortID == "" for _, ci := range cache { + pathEnd.log.Info("Channel handshake termination candidate", + zap.String("termination_port_id", m.Termination.Info.PortID), + zap.String("observed_port_id", ci.PortID), + zap.String("termination_counterparty_port_id", m.Termination.Info.CounterpartyPortID), + zap.String("observed_counterparty_port_id", ci.CounterpartyPortID), + ) if ci.ChannelID == m.Termination.Info.ChannelID { foundChannelID = true } @@ -249,6 +255,41 @@ func (pathEnd *pathEndRuntime) shouldTerminate(ibcMessagesCache IBCMessagesCache pathEnd.log.Info("Found termination condition for channel handshake") return true } + case *ChannelCloseLifecycle: + cache, ok := ibcMessagesCache.ChannelHandshake[chantypes.EventTypeChannelCloseConfirm] + if !ok { + return false + } + // check against m.Termination.Info + foundChannelID := m.SrcChannelID == "" + foundPortID := m.SrcPortID == "" + for _, ci := range cache { + pathEnd.log.Info("Channel close termination candidate", + zap.String("termination_port_id", m.SrcPortID), + zap.String("observed_port_id", ci.PortID), + zap.String("termination_channel_id", m.SrcChannelID), + zap.String("observed_channel_id", ci.ChannelID), + ) + if pathEnd.info.ChainID == m.SrcChainID { + if ci.ChannelID == m.SrcChannelID { + foundChannelID = true + } + if ci.PortID == m.SrcPortID { + foundPortID = true + } + } else { + if ci.CounterpartyChannelID == m.SrcChannelID { + foundChannelID = true + } + if ci.CounterpartyPortID == m.SrcPortID { + foundPortID = true + } + } + } + if foundChannelID && foundPortID { + pathEnd.log.Info("Found termination condition for channel close") + return true + } case *ConnectionMessageLifecycle: if m.Termination == nil || m.Termination.ChainID != pathEnd.info.ChainID { return false @@ -620,8 +661,9 @@ func (pathEnd *pathEndRuntime) shouldSendChannelMessage(message channelIBCMessag toDeleteCounterparty[chantypes.EventTypeChannelOpenInit] = []ChannelKey{counterpartyKey.MsgInitKey()} toDeleteCounterparty[preInitKey] = []ChannelKey{counterpartyKey.MsgInitKey()} case chantypes.EventTypeChannelCloseConfirm: - toDeleteCounterparty[chantypes.EventTypeChannelCloseInit] = []ChannelKey{counterpartyKey} toDelete[chantypes.EventTypeChannelCloseConfirm] = []ChannelKey{channelKey} + toDeleteCounterparty[chantypes.EventTypeChannelCloseInit] = []ChannelKey{counterpartyKey} + toDeleteCounterparty[preCloseKey] = []ChannelKey{counterpartyKey} // Gather relevant send packet messages, for this channel key, that should be deleted if we // are operating on an ordered channel. diff --git a/relayer/processor/path_processor.go b/relayer/processor/path_processor.go index 3fb8f6b95..976037ba1 100644 --- a/relayer/processor/path_processor.go +++ b/relayer/processor/path_processor.go @@ -180,7 +180,7 @@ func (pp *PathProcessor) channelPairs() []channelPair { } pairs := make([]channelPair, len(channels)) i := 0 - for k, _ := range channels { + for k := range channels { pairs[i] = channelPair{ pathEnd1ChannelKey: k, pathEnd2ChannelKey: k.Counterparty(), @@ -321,13 +321,13 @@ func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { if pp.shouldFlush() && !pp.initialFlushComplete { pp.flush(ctx) pp.initialFlushComplete = true - } else if pp.shouldTerminateForFlushComplete(ctx, cancel) { + } else if pp.shouldTerminateForFlushComplete() { cancel() return } // process latest message cache state from both pathEnds - if err := pp.processLatestMessages(ctx); err != nil { + if err := pp.processLatestMessages(ctx, cancel); err != nil { // in case of IBC message send errors, schedule retry after durationErrorRetry if retryTimer != nil { retryTimer.Stop() diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 9ee4c2a72..7112d46c8 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -17,7 +17,10 @@ import ( // preInitKey is used to declare intent to initialize a connection or channel handshake // i.e. a MsgConnectionOpenInit or a MsgChannelOpenInit should be broadcasted to start // the handshake if this key exists in the relevant cache. -const preInitKey = "pre_init" +const ( + preInitKey = "pre_init" + preCloseKey = "pre_close" +) // getMessagesToSend returns only the lowest sequence message (if it should be sent) for ordered channels, // otherwise returns all which should be sent. @@ -123,39 +126,21 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( for seq, info := range pathEndPacketFlowMessages.SrcMsgTimeout { deletePreInitIfMatches(info) toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) + toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) if info.ChannelOrder == chantypes.ORDERED.String() { - // For ordered channel packets, flow is not done until channel-close-confirm is observed. - if pathEndPacketFlowMessages.DstMsgChannelCloseConfirm == nil { - // have not observed a channel-close-confirm yet for this channel, send it if ready. - // will come back through here next block if not yet ready. - closeChan := channelIBCMessage{ - eventType: chantypes.EventTypeChannelCloseConfirm, - info: provider.ChannelInfo{ - Height: info.Height, - PortID: info.SourcePort, - ChannelID: info.SourceChannel, - CounterpartyPortID: info.DestPort, - CounterpartyChannelID: info.DestChannel, - Order: orderFromString(info.ChannelOrder), - }, - } - - if pathEndPacketFlowMessages.Dst.shouldSendChannelMessage(closeChan, pathEndPacketFlowMessages.Src) { - res.DstChannelMessage = append(res.DstChannelMessage, closeChan) - } - } else { - // ordered channel, and we have a channel close confirm, so packet-flow and channel-close-flow is complete. - // remove all retention of this sequence number and this channel-close-confirm. - toDeleteDstChannel[chantypes.EventTypeChannelCloseConfirm] = append( - toDeleteDstChannel[chantypes.EventTypeChannelCloseConfirm], - k.Counterparty(), - ) - toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) + // Channel is now closed on src. + // enqueue channel close init observation to be handled by channel close correlation + if _, ok := pathEndPacketFlowMessages.Src.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit]; !ok { + pathEndPacketFlowMessages.Src.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit] = make(ChannelMessageCache) + } + pathEndPacketFlowMessages.Src.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit][k] = provider.ChannelInfo{ + Height: info.Height, + PortID: info.SourcePort, + ChannelID: info.SourceChannel, + CounterpartyPortID: info.DestPort, + CounterpartyChannelID: info.DestChannel, + Order: orderFromString(info.ChannelOrder), } - } else { - // unordered channel, and we have a timeout for this packet, so packet flow is complete - // remove all retention of this sequence number - toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) } } @@ -488,6 +473,76 @@ func (pp *PathProcessor) unrelayedChannelHandshakeMessages( return res } +func (pp *PathProcessor) unrelayedChannelCloseMessages( + pathEndChannelCloseMessages pathEndChannelCloseMessages, +) pathEndChannelHandshakeResponse { + var ( + res pathEndChannelHandshakeResponse + toDeleteSrc = make(map[string][]ChannelKey) + toDeleteDst = make(map[string][]ChannelKey) + ) + processRemovals := func() { + pathEndChannelCloseMessages.Src.messageCache.ChannelHandshake.DeleteMessages(toDeleteSrc) + pathEndChannelCloseMessages.Dst.messageCache.ChannelHandshake.DeleteMessages(toDeleteDst) + pathEndChannelCloseMessages.Src.channelProcessing.deleteMessages(toDeleteSrc) + pathEndChannelCloseMessages.Dst.channelProcessing.deleteMessages(toDeleteDst) + toDeleteSrc = make(map[string][]ChannelKey) + toDeleteDst = make(map[string][]ChannelKey) + } + + for chanKey := range pathEndChannelCloseMessages.DstMsgChannelCloseConfirm { + // found close confirm, channel handshake complete. remove all retention + + counterpartyKey := chanKey.Counterparty() + toDeleteDst[chantypes.EventTypeChannelCloseConfirm] = append( + toDeleteDst[chantypes.EventTypeChannelCloseConfirm], + chanKey, + ) + // MsgChannelCloseInit does not have CounterpartyChannelID // TODO: confirm this + toDeleteSrc[chantypes.EventTypeChannelCloseInit] = append( + toDeleteSrc[chantypes.EventTypeChannelCloseInit], + counterpartyKey.MsgInitKey(), + ) + // TODO: confirm chankey does not need modification + toDeleteSrc[preCloseKey] = append(toDeleteSrc[preCloseKey], counterpartyKey) + } + + processRemovals() + + for chanKey, info := range pathEndChannelCloseMessages.SrcMsgChannelCloseInit { + // need to send a close confirm to dst + msgCloseConfirm := channelIBCMessage{ + eventType: chantypes.EventTypeChannelCloseConfirm, + info: info, + } + if pathEndChannelCloseMessages.Dst.shouldSendChannelMessage( + msgCloseConfirm, pathEndChannelCloseMessages.Src, + ) { + res.DstMessages = append(res.DstMessages, msgCloseConfirm) + } + + // TODO: confirm chankey does not need modification + toDeleteSrc[preCloseKey] = append(toDeleteSrc[preCloseKey], chanKey) + } + + processRemovals() + + for _, info := range pathEndChannelCloseMessages.SrcMsgChannelPreInit { + // need to send a close init to src + msgCloseInit := channelIBCMessage{ + eventType: chantypes.EventTypeChannelCloseInit, + info: info, + } + if pathEndChannelCloseMessages.Src.shouldSendChannelMessage( + msgCloseInit, pathEndChannelCloseMessages.Dst, + ) { + res.SrcMessages = append(res.SrcMessages, msgCloseInit) + } + } + + return res +} + func (pp *PathProcessor) getUnrelayedClientICQMessages(pathEnd *pathEndRuntime, queryMessages, responseMessages ClientICQMessageCache) (res []clientICQMessage) { ClientICQLoop: for queryID, queryMsg := range queryMessages { @@ -564,7 +619,7 @@ var observedEventTypeForDesiredMessage = map[string]string{ chantypes.EventTypeSendPacket: preInitKey, } -func (pp *PathProcessor) queuePreInitMessages() { +func (pp *PathProcessor) queuePreInitMessages(cancel func()) { if pp.messageLifecycle == nil || pp.sentInitialMsg { return } @@ -582,6 +637,7 @@ func (pp *PathProcessor) queuePreInitMessages() { zap.Inline(channelKey), zap.Error(err), ) + cancel() return } if !pp.IsRelayedChannel(m.Initial.ChainID, channelKey) { @@ -593,6 +649,7 @@ func (pp *PathProcessor) queuePreInitMessages() { "Failed to queue initial connection message, event type not handled", zap.String("event_type", m.Initial.EventType), ) + cancel() return } if m.Initial.ChainID == pp.pathEnd1.info.ChainID { @@ -622,6 +679,7 @@ func (pp *PathProcessor) queuePreInitMessages() { "Failed to queue initial connection message, event type not handled", zap.String("event_type", m.Initial.EventType), ) + cancel() return } connKey := ConnectionInfoConnectionKey(m.Initial.Info) @@ -652,6 +710,7 @@ func (pp *PathProcessor) queuePreInitMessages() { "Failed to queue initial channel message, event type not handled", zap.String("event_type", m.Initial.EventType), ) + cancel() return } chanKey := ChannelInfoChannelKey(m.Initial.Info) @@ -660,7 +719,6 @@ func (pp *PathProcessor) queuePreInitMessages() { if !ok { pp.pathEnd1.messageCache.ChannelHandshake[eventType] = make(ChannelMessageCache) } - pp.pathEnd1.messageCache.ChannelHandshake[eventType][chanKey] = m.Initial.Info } else if m.Initial.ChainID == pp.pathEnd2.info.ChainID { _, ok = pp.pathEnd2.messageCache.ChannelHandshake[eventType] @@ -669,18 +727,81 @@ func (pp *PathProcessor) queuePreInitMessages() { } pp.pathEnd2.messageCache.ChannelHandshake[eventType][chanKey] = m.Initial.Info } + case *ChannelCloseLifecycle: + pp.sentInitialMsg = true + + if !pp.IsRelevantConnection(pp.pathEnd1.info.ChainID, m.SrcConnID) { + return + } + + for k, open := range pp.pathEnd1.channelStateCache { + if k.ChannelID == m.SrcChannelID && k.PortID == m.SrcPortID && k.CounterpartyChannelID != "" && k.CounterpartyPortID != "" { + if open { + // channel is still open on pathEnd1 + break + } + if counterpartyOpen, ok := pp.pathEnd2.channelStateCache[k.Counterparty()]; ok && !counterpartyOpen { + pp.log.Info("Channel already closed on both sides") + cancel() + return + } + // queue channel close init on pathEnd1 + if _, ok := pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit]; !ok { + pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit] = make(ChannelMessageCache) + } + pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit][k] = provider.ChannelInfo{ + PortID: k.PortID, + ChannelID: k.ChannelID, + CounterpartyPortID: k.CounterpartyPortID, + CounterpartyChannelID: k.CounterpartyChannelID, + ConnID: m.SrcConnID, + } + return + } + } + + for k, open := range pp.pathEnd2.channelStateCache { + if k.CounterpartyChannelID == m.SrcChannelID && k.CounterpartyPortID == m.SrcPortID && k.ChannelID != "" && k.PortID != "" { + if open { + // channel is still open on pathEnd2 + break + } + if counterpartyChanState, ok := pp.pathEnd1.channelStateCache[k.Counterparty()]; ok && !counterpartyChanState { + pp.log.Info("Channel already closed on both sides") + cancel() + return + } + // queue channel close init on pathEnd2 + if _, ok := pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit]; !ok { + pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit] = make(ChannelMessageCache) + } + pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit][k] = provider.ChannelInfo{ + PortID: k.PortID, + ChannelID: k.ChannelID, + CounterpartyPortID: k.CounterpartyPortID, + CounterpartyChannelID: k.CounterpartyChannelID, + ConnID: m.DstConnID, + } + } + } + + pp.log.Error("This channel is unable to be closed. Channel must already be closed on one chain.", + zap.String("src_channel_id", m.SrcChannelID), + zap.String("src_port_id", m.SrcPortID), + ) + cancel() } } // messages from both pathEnds are needed in order to determine what needs to be relayed for a single pathEnd -func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { +func (pp *PathProcessor) processLatestMessages(ctx context.Context, cancel func()) error { // Update trusted client state for both pathends pp.updateClientTrustedState(pp.pathEnd1, pp.pathEnd2) pp.updateClientTrustedState(pp.pathEnd2, pp.pathEnd1) channelPairs := pp.channelPairs() - pp.queuePreInitMessages() + pp.queuePreInitMessages(cancel) pathEnd1ConnectionHandshakeMessages := pathEndConnectionHandshakeMessages{ Src: pp.pathEnd1, @@ -729,20 +850,6 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { pathEnd2ProcessRes := make([]pathEndPacketFlowResponse, len(channelPairs)) for i, pair := range channelPairs { - var pathEnd1ChannelCloseConfirm, pathEnd2ChannelCloseConfirm *provider.ChannelInfo - - if pathEnd1ChanCloseConfirmMsgs, ok := pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseConfirm]; ok { - if pathEnd1ChannelCloseConfirmMsg, ok := pathEnd1ChanCloseConfirmMsgs[pair.pathEnd1ChannelKey]; ok { - pathEnd1ChannelCloseConfirm = &pathEnd1ChannelCloseConfirmMsg - } - } - - if pathEnd2ChanCloseConfirmMsgs, ok := pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseConfirm]; ok { - if pathEnd2ChannelCloseConfirmMsg, ok := pathEnd2ChanCloseConfirmMsgs[pair.pathEnd2ChannelKey]; ok { - pathEnd2ChannelCloseConfirm = &pathEnd2ChannelCloseConfirmMsg - } - } - // Append acks into recv packet info if present pathEnd1DstMsgRecvPacket := pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeRecvPacket] for seq, ackInfo := range pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeWriteAck] { @@ -761,37 +868,55 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { } pathEnd1PacketFlowMessages := pathEndPacketFlowMessages{ - Src: pp.pathEnd1, - Dst: pp.pathEnd2, - ChannelKey: pair.pathEnd1ChannelKey, - SrcPreTransfer: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][preInitKey], - SrcMsgTransfer: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeSendPacket], - DstMsgRecvPacket: pathEnd1DstMsgRecvPacket, - SrcMsgAcknowledgement: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeAcknowledgePacket], - SrcMsgTimeout: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeTimeoutPacket], - SrcMsgTimeoutOnClose: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeTimeoutPacketOnClose], - DstMsgChannelCloseConfirm: pathEnd2ChannelCloseConfirm, + Src: pp.pathEnd1, + Dst: pp.pathEnd2, + ChannelKey: pair.pathEnd1ChannelKey, + SrcPreTransfer: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][preInitKey], + SrcMsgTransfer: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeSendPacket], + DstMsgRecvPacket: pathEnd1DstMsgRecvPacket, + SrcMsgAcknowledgement: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeAcknowledgePacket], + SrcMsgTimeout: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeTimeoutPacket], + SrcMsgTimeoutOnClose: pp.pathEnd1.messageCache.PacketFlow[pair.pathEnd1ChannelKey][chantypes.EventTypeTimeoutPacketOnClose], } pathEnd2PacketFlowMessages := pathEndPacketFlowMessages{ - Src: pp.pathEnd2, - Dst: pp.pathEnd1, - ChannelKey: pair.pathEnd2ChannelKey, - SrcPreTransfer: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd1ChannelKey][preInitKey], - SrcMsgTransfer: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeSendPacket], - DstMsgRecvPacket: pathEnd2DstMsgRecvPacket, - SrcMsgAcknowledgement: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeAcknowledgePacket], - SrcMsgTimeout: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeTimeoutPacket], - SrcMsgTimeoutOnClose: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeTimeoutPacketOnClose], - DstMsgChannelCloseConfirm: pathEnd1ChannelCloseConfirm, + Src: pp.pathEnd2, + Dst: pp.pathEnd1, + ChannelKey: pair.pathEnd2ChannelKey, + SrcPreTransfer: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd1ChannelKey][preInitKey], + SrcMsgTransfer: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeSendPacket], + DstMsgRecvPacket: pathEnd2DstMsgRecvPacket, + SrcMsgAcknowledgement: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeAcknowledgePacket], + SrcMsgTimeout: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeTimeoutPacket], + SrcMsgTimeoutOnClose: pp.pathEnd2.messageCache.PacketFlow[pair.pathEnd2ChannelKey][chantypes.EventTypeTimeoutPacketOnClose], } pathEnd1ProcessRes[i] = pp.unrelayedPacketFlowMessages(ctx, pathEnd1PacketFlowMessages) pathEnd2ProcessRes[i] = pp.unrelayedPacketFlowMessages(ctx, pathEnd2PacketFlowMessages) } + pathEnd1ChannelCloseMessages := pathEndChannelCloseMessages{ + Src: pp.pathEnd1, + Dst: pp.pathEnd2, + SrcMsgChannelPreInit: pp.pathEnd1.messageCache.ChannelHandshake[preCloseKey], + SrcMsgChannelCloseInit: pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit], + DstMsgChannelCloseConfirm: pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseConfirm], + } + pathEnd2ChannelCloseMessages := pathEndChannelCloseMessages{ + Src: pp.pathEnd2, + Dst: pp.pathEnd1, + SrcMsgChannelPreInit: pp.pathEnd2.messageCache.ChannelHandshake[preCloseKey], + SrcMsgChannelCloseInit: pp.pathEnd2.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseInit], + DstMsgChannelCloseConfirm: pp.pathEnd1.messageCache.ChannelHandshake[chantypes.EventTypeChannelCloseConfirm], + } + pathEnd1ChannelCloseRes := pp.unrelayedChannelCloseMessages(pathEnd1ChannelCloseMessages) + pathEnd2ChannelCloseRes := pp.unrelayedChannelCloseMessages(pathEnd2ChannelCloseMessages) + // concatenate applicable messages for pathend pathEnd1ConnectionMessages, pathEnd2ConnectionMessages := pp.connectionMessagesToSend(pathEnd1ConnectionHandshakeRes, pathEnd2ConnectionHandshakeRes) - pathEnd1ChannelMessages, pathEnd2ChannelMessages := pp.channelMessagesToSend(pathEnd1ChannelHandshakeRes, pathEnd2ChannelHandshakeRes) + pathEnd1ChannelMessages, pathEnd2ChannelMessages := pp.channelMessagesToSend( + pathEnd1ChannelHandshakeRes, pathEnd2ChannelHandshakeRes, + pathEnd1ChannelCloseRes, pathEnd2ChannelCloseRes, + ) pathEnd1PacketMessages, pathEnd2PacketMessages, pathEnd1ChanCloseMessages, pathEnd2ChanCloseMessages := pp.packetMessagesToSend(channelPairs, pathEnd1ProcessRes, pathEnd2ProcessRes) pathEnd1ChannelMessages = append(pathEnd1ChannelMessages, pathEnd1ChanCloseMessages...) @@ -836,21 +961,31 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context) error { return eg.Wait() } -func (pp *PathProcessor) channelMessagesToSend(pathEnd1ChannelHandshakeRes, pathEnd2ChannelHandshakeRes pathEndChannelHandshakeResponse) ([]channelIBCMessage, []channelIBCMessage) { - pathEnd1ChannelSrcLen := len(pathEnd1ChannelHandshakeRes.SrcMessages) - pathEnd1ChannelDstLen := len(pathEnd1ChannelHandshakeRes.DstMessages) - pathEnd2ChannelDstLen := len(pathEnd2ChannelHandshakeRes.DstMessages) - pathEnd2ChannelSrcLen := len(pathEnd2ChannelHandshakeRes.SrcMessages) - pathEnd1ChannelMessages := make([]channelIBCMessage, 0, pathEnd1ChannelSrcLen+pathEnd2ChannelDstLen) - pathEnd2ChannelMessages := make([]channelIBCMessage, 0, pathEnd2ChannelSrcLen+pathEnd1ChannelDstLen) +func (pp *PathProcessor) channelMessagesToSend(pathEnd1ChannelHandshakeRes, pathEnd2ChannelHandshakeRes, pathEnd1ChannelCloseRes, pathEnd2ChannelCloseRes pathEndChannelHandshakeResponse) ([]channelIBCMessage, []channelIBCMessage) { + pathEnd1ChannelOpenSrcLen := len(pathEnd1ChannelHandshakeRes.SrcMessages) + pathEnd1ChannelOpenDstLen := len(pathEnd1ChannelHandshakeRes.DstMessages) + pathEnd2ChannelOpenDstLen := len(pathEnd2ChannelHandshakeRes.DstMessages) + pathEnd2ChannelOpenSrcLen := len(pathEnd2ChannelHandshakeRes.SrcMessages) + + pathEnd1ChannelCloseSrcLen := len(pathEnd1ChannelHandshakeRes.SrcMessages) + pathEnd1ChannelCloseDstLen := len(pathEnd1ChannelHandshakeRes.DstMessages) + pathEnd2ChannelCloseDstLen := len(pathEnd2ChannelHandshakeRes.DstMessages) + pathEnd2ChannelCloseSrcLen := len(pathEnd2ChannelHandshakeRes.SrcMessages) + + pathEnd1ChannelMessages := make([]channelIBCMessage, 0, pathEnd1ChannelOpenSrcLen+pathEnd2ChannelOpenDstLen+pathEnd1ChannelCloseSrcLen+pathEnd2ChannelCloseDstLen) + pathEnd2ChannelMessages := make([]channelIBCMessage, 0, pathEnd2ChannelOpenSrcLen+pathEnd1ChannelOpenDstLen+pathEnd2ChannelCloseSrcLen+pathEnd1ChannelCloseDstLen) // pathEnd1 channel messages come from pathEnd1 src and pathEnd2 dst pathEnd1ChannelMessages = append(pathEnd1ChannelMessages, pathEnd2ChannelHandshakeRes.DstMessages...) + pathEnd1ChannelMessages = append(pathEnd1ChannelMessages, pathEnd2ChannelCloseRes.DstMessages...) pathEnd1ChannelMessages = append(pathEnd1ChannelMessages, pathEnd1ChannelHandshakeRes.SrcMessages...) + pathEnd1ChannelMessages = append(pathEnd1ChannelMessages, pathEnd1ChannelCloseRes.SrcMessages...) // pathEnd2 channel messages come from pathEnd2 src and pathEnd1 dst pathEnd2ChannelMessages = append(pathEnd2ChannelMessages, pathEnd1ChannelHandshakeRes.DstMessages...) + pathEnd2ChannelMessages = append(pathEnd2ChannelMessages, pathEnd1ChannelCloseRes.DstMessages...) pathEnd2ChannelMessages = append(pathEnd2ChannelMessages, pathEnd2ChannelHandshakeRes.SrcMessages...) + pathEnd2ChannelMessages = append(pathEnd2ChannelMessages, pathEnd2ChannelCloseRes.SrcMessages...) return pathEnd1ChannelMessages, pathEnd2ChannelMessages } @@ -1094,9 +1229,7 @@ func (pp *PathProcessor) flush(ctx context.Context) { // shouldTerminateForFlushComplete will determine if the relayer should exit // when FlushLifecycle is used. It will exit when all of the message caches are cleared. -func (pp *PathProcessor) shouldTerminateForFlushComplete( - ctx context.Context, cancel func(), -) bool { +func (pp *PathProcessor) shouldTerminateForFlushComplete() bool { if _, ok := pp.messageLifecycle.(*FlushLifecycle); !ok { return false } diff --git a/relayer/processor/types.go b/relayer/processor/types.go index 347974800..3f4059b7b 100644 --- a/relayer/processor/types.go +++ b/relayer/processor/types.go @@ -72,6 +72,18 @@ type ChannelMessageLifecycle struct { func (t *ChannelMessageLifecycle) messageLifecycler() {} +// ChannelCloseLifecycle is used as a stop condition for the PathProcessor. +// It will attempt to finish closing the channel and terminate once the channel is closed. +type ChannelCloseLifecycle struct { + SrcChainID string + SrcChannelID string + SrcPortID string + SrcConnID string + DstConnID string +} + +func (t *ChannelCloseLifecycle) messageLifecycler() {} + // IBCMessagesCache holds cached messages for packet flows, connection handshakes, // and channel handshakes. The PathProcessors use this for message correlation to determine // when messages should be sent and are pruned when flows/handshakes are complete. diff --git a/relayer/processor/types_internal.go b/relayer/processor/types_internal.go index 66c56edac..d526ed70a 100644 --- a/relayer/processor/types_internal.go +++ b/relayer/processor/types_internal.go @@ -376,16 +376,15 @@ type clientICQProcessingCache map[provider.ClientICQQueryID]processingMessage // contains MsgRecvPacket from counterparty // entire packet flow type pathEndPacketFlowMessages struct { - Src *pathEndRuntime - Dst *pathEndRuntime - ChannelKey ChannelKey - SrcPreTransfer PacketSequenceCache - SrcMsgTransfer PacketSequenceCache - DstMsgRecvPacket PacketSequenceCache - SrcMsgAcknowledgement PacketSequenceCache - SrcMsgTimeout PacketSequenceCache - SrcMsgTimeoutOnClose PacketSequenceCache - DstMsgChannelCloseConfirm *provider.ChannelInfo + Src *pathEndRuntime + Dst *pathEndRuntime + ChannelKey ChannelKey + SrcPreTransfer PacketSequenceCache + SrcMsgTransfer PacketSequenceCache + DstMsgRecvPacket PacketSequenceCache + SrcMsgAcknowledgement PacketSequenceCache + SrcMsgTimeout PacketSequenceCache + SrcMsgTimeoutOnClose PacketSequenceCache } type pathEndConnectionHandshakeMessages struct { @@ -408,6 +407,14 @@ type pathEndChannelHandshakeMessages struct { DstMsgChannelOpenConfirm ChannelMessageCache } +type pathEndChannelCloseMessages struct { + Src *pathEndRuntime + Dst *pathEndRuntime + SrcMsgChannelPreInit ChannelMessageCache + SrcMsgChannelCloseInit ChannelMessageCache + DstMsgChannelCloseConfirm ChannelMessageCache +} + type pathEndPacketFlowResponse struct { SrcMessages []packetIBCMessage DstMessages []packetIBCMessage From dcc606000727c58e53e837cce99afc937c198051 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Mon, 27 Mar 2023 15:46:45 -0600 Subject: [PATCH 11/46] Fix flush on ordered channels (#1150) * Fix flush on ordered channels * Queue all packets at nextseqrecv or above --- relayer/processor/path_processor_internal.go | 42 ++++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 7112d46c8..040808103 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -1089,15 +1089,51 @@ func queuePendingRecvAndAcks( return nil } - unrecv, err := dst.chainProvider.QueryUnreceivedPackets(ctx, dst.latestBlock.Height, k.CounterpartyChannelID, k.CounterpartyPortID, seqs) + dstChan, dstPort := k.CounterpartyChannelID, k.CounterpartyPortID + + unrecv, err := dst.chainProvider.QueryUnreceivedPackets(ctx, dst.latestBlock.Height, dstChan, dstPort, seqs) if err != nil { return err } + dstHeight := int64(dst.latestBlock.Height) + if len(unrecv) > 0 { - src.log.Debug("Will flush MsgRecvPacket", zap.String("channel", k.ChannelID), zap.String("port", k.PortID), zap.Uint64s("sequences", unrecv)) + channel, err := dst.chainProvider.QueryChannel(ctx, dstHeight, dstChan, dstPort) + if err != nil { + return err + } + + if channel.Channel.Ordering == chantypes.ORDERED { + nextSeqRecv, err := dst.chainProvider.QueryNextSeqRecv(ctx, dstHeight, dstChan, dstPort) + if err != nil { + return err + } + + var newUnrecv []uint64 + + for _, seq := range unrecv { + if seq >= nextSeqRecv.NextSequenceReceive { + newUnrecv = append(newUnrecv, seq) + break + } + } + + unrecv = newUnrecv + } + } + + if len(unrecv) > 0 { + src.log.Debug("Will flush MsgRecvPacket", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + zap.Uint64s("sequences", unrecv), + ) } else { - src.log.Debug("No MsgRecvPacket to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) + src.log.Debug("No MsgRecvPacket to flush", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + ) } for _, seq := range unrecv { From 9c7e897777d5d7843dfad2ba169cedff2eff775a Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Wed, 29 Mar 2023 15:33:58 -0600 Subject: [PATCH 12/46] Now that we have periodic flushing, skip blocks if they can't be queried (#1154) --- .../chains/cosmos/cosmos_chain_processor.go | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/relayer/chains/cosmos/cosmos_chain_processor.go b/relayer/chains/cosmos/cosmos_chain_processor.go index bf594165b..300666b63 100644 --- a/relayer/chains/cosmos/cosmos_chain_processor.go +++ b/relayer/chains/cosmos/cosmos_chain_processor.go @@ -77,6 +77,7 @@ const ( defaultMinQueryLoopDuration = 1 * time.Second defaultBalanceUpdateWaitDuration = 60 * time.Second inSyncNumBlocksThreshold = 2 + blockMaxRetries = 5 ) // latestClientState is a map of clientID to the latest clientInfo for that client. @@ -180,11 +181,12 @@ func (ccp *CosmosChainProcessor) clientState(ctx context.Context, clientID strin // queryCyclePersistence hold the variables that should be retained across queryCycles. type queryCyclePersistence struct { - latestHeight int64 - latestQueriedBlock int64 - minQueryLoopDuration time.Duration - lastBalanceUpdate time.Time - balanceUpdateWaitDuration time.Duration + latestHeight int64 + latestQueriedBlock int64 + retriesAtLatestQueriedBlock int + minQueryLoopDuration time.Duration + lastBalanceUpdate time.Time + balanceUpdateWaitDuration time.Duration } // Run starts the query loop for the chain which will gather applicable ibc messages and push events out to the relevant PathProcessors. @@ -374,9 +376,20 @@ func (ccp *CosmosChainProcessor) queryCycle(ctx context.Context, persistence *qu if err := eg.Wait(); err != nil { ccp.log.Warn("Error querying block data", zap.Error(err)) + + persistence.retriesAtLatestQueriedBlock++ + if persistence.retriesAtLatestQueriedBlock >= blockMaxRetries { + ccp.log.Warn("Reached max retries querying for block, skipping", zap.Int64("height", i)) + // skip this block. now depends on flush to pickup anything missed in the block. + persistence.latestQueriedBlock = i + persistence.retriesAtLatestQueriedBlock = 0 + continue + } break } + persistence.retriesAtLatestQueriedBlock = 0 + latestHeader = ibcHeader.(provider.TendermintIBCHeader) heightUint64 := uint64(i) From 8dcf4c198177e5e500ff48ef4062d5ff625c5b9c Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Fri, 31 Mar 2023 10:37:57 -0600 Subject: [PATCH 13/46] Lock config file for all write operations (#1156) * Lock config file for all write operations * Fix linter errs * tidy * more tidy --- cmd/appstate.go | 191 ++++++++++++++------------ cmd/chains.go | 143 ++++++++++---------- cmd/config.go | 227 +++++++++++++------------------ cmd/keys.go | 16 +-- cmd/paths.go | 352 ++++++++++++++++++++++++------------------------ cmd/query.go | 64 ++++----- cmd/root.go | 22 +-- cmd/start.go | 34 ++--- cmd/tx.go | 174 ++++++++++++------------ cmd/version.go | 2 +- 10 files changed, 606 insertions(+), 619 deletions(-) diff --git a/cmd/appstate.go b/cmd/appstate.go index 11861e954..4e0e057e8 100644 --- a/cmd/appstate.go +++ b/cmd/appstate.go @@ -11,7 +11,6 @@ import ( "github.com/cosmos/relayer/v2/relayer" "github.com/gofrs/flock" - "github.com/spf13/cobra" "github.com/spf13/viper" "go.uber.org/zap" "gopkg.in/yaml.v3" @@ -22,18 +21,61 @@ type appState struct { // Log is the root logger of the application. // Consumers are expected to store and use local copies of the logger // after modifying with the .With method. - Log *zap.Logger + log *zap.Logger - Viper *viper.Viper + viper *viper.Viper - HomePath string - Debug bool - Config *Config + homePath string + debug bool + config *Config } -// AddPathFromFile modifies a.config.Paths to include the content stored in the given file. +func (a *appState) configPath() string { + return path.Join(a.homePath, "config", "config.yaml") +} + +// loadConfigFile reads config file into a.Config if file is present. +func (a *appState) loadConfigFile(ctx context.Context) error { + cfgPath := a.configPath() + + if _, err := os.Stat(cfgPath); err != nil { + // don't return error if file doesn't exist + return nil + } + + // read the config file bytes + file, err := os.ReadFile(cfgPath) + if err != nil { + return fmt.Errorf("error reading file: %w", err) + } + + // unmarshall them into the wrapper struct + cfgWrapper := &ConfigInputWrapper{} + err = yaml.Unmarshal(file, cfgWrapper) + if err != nil { + return fmt.Errorf("error unmarshalling config: %w", err) + } + + // retrieve the runtime configuration from the disk configuration. + newCfg, err := cfgWrapper.RuntimeConfig(ctx, a) + if err != nil { + return err + } + + // validate runtime configuration + if err := newCfg.validateConfig(); err != nil { + return fmt.Errorf("error parsing chain config: %w", err) + } + + // save runtime configuration in app state + a.config = newCfg + + return nil +} + +// addPathFromFile modifies a.config.Paths to include the content stored in the given file. // If a non-nil error is returned, a.config.Paths is not modified. -func (a *appState) AddPathFromFile(ctx context.Context, stderr io.Writer, file, name string) error { +func (a *appState) addPathFromFile(ctx context.Context, stderr io.Writer, file, name string) error { if _, err := os.Stat(file); err != nil { return err } @@ -48,17 +90,22 @@ func (a *appState) AddPathFromFile(ctx context.Context, stderr io.Writer, file, return err } - if err = a.Config.ValidatePath(ctx, stderr, p); err != nil { + if err = a.config.ValidatePath(ctx, stderr, p); err != nil { return err } - return a.Config.Paths.Add(name, p) + return a.config.Paths.Add(name, p) } -// AddPathFromUserInput manually prompts the user to specify all the path details. +// addPathFromUserInput manually prompts the user to specify all the path details. // It returns any input or validation errors. // If the path was successfully added, it returns nil. -func (a *appState) AddPathFromUserInput(ctx context.Context, stdin io.Reader, stderr io.Writer, src, dst, name string) error { +func (a *appState) addPathFromUserInput( + ctx context.Context, + stdin io.Reader, + stderr io.Writer, + src, dst, name string, +) error { // TODO: confirm name is available before going through input. var ( @@ -118,65 +165,15 @@ func (a *appState) AddPathFromUserInput(ctx context.Context, stdin io.Reader, st return err } - if err := a.Config.ValidatePath(ctx, stderr, path); err != nil { - return err - } - - return a.Config.Paths.Add(name, path) -} - -// OverwriteConfig overwrites the config files on disk with the serialization of cfg, -// and it replaces a.Config with cfg. -// -// It is possible to use a brand new Config argument, -// but typically the argument is a.Config. -func (a *appState) OverwriteConfig(cfg *Config) error { - cfgPath := path.Join(a.HomePath, "config", "config.yaml") - if _, err := os.Stat(cfgPath); err != nil { - return fmt.Errorf("failed to check existence of config file at %s: %w", cfgPath, err) - } - - a.Viper.SetConfigFile(cfgPath) - if err := a.Viper.ReadInConfig(); err != nil { - // TODO: if we failed to read in the new config, should we restore the old config? - return fmt.Errorf("failed to read config file at %s: %w", cfgPath, err) - } - - // ensure validateConfig runs properly - if err := validateConfig(cfg); err != nil { - return fmt.Errorf("failed to validate config at %s: %w", cfgPath, err) - } - - // marshal the new config - out, err := yaml.Marshal(cfg.Wrapped()) - if err != nil { + if err := a.config.ValidatePath(ctx, stderr, path); err != nil { return err } - // Overwrite the config file. - if err := os.WriteFile(a.Viper.ConfigFileUsed(), out, 0600); err != nil { - return fmt.Errorf("failed to write config file at %s: %w", cfgPath, err) - } - - // Write the config back into the app state. - a.Config = cfg - return nil + return a.config.Paths.Add(name, path) } -// OverwriteConfigOnTheFly overwrites the config file concurrently, -// locking to read, modify, then write the config. -func (a *appState) OverwriteConfigOnTheFly( - cmd *cobra.Command, - pathName string, - clientSrc, clientDst string, - connectionSrc, connectionDst string, -) error { - if pathName == "" { - return errors.New("empty path name not allowed") - } - - // use lock file to guard concurrent access to config.yaml - lockFilePath := path.Join(a.HomePath, "config", "config.lock") +func (a *appState) performConfigLockingOperation(ctx context.Context, operation func() error) error { + lockFilePath := path.Join(a.homePath, "config", "config.lock") fileLock := flock.New(lockFilePath) _, err := fileLock.TryLock() if err != nil { @@ -184,7 +181,7 @@ func (a *appState) OverwriteConfigOnTheFly( } defer func() { if err := fileLock.Unlock(); err != nil { - a.Log.Error("error unlocking config file lock, please manually delete", + a.log.Error("error unlocking config file lock, please manually delete", zap.String("filepath", lockFilePath), ) } @@ -192,34 +189,27 @@ func (a *appState) OverwriteConfigOnTheFly( // load config from file and validate it. don't want to miss // any changes that may have been made while unlocked. - if err := initConfig(cmd, a); err != nil { + if err := a.loadConfigFile(ctx); err != nil { return fmt.Errorf("failed to initialize config from file: %w", err) } - path, ok := a.Config.Paths[pathName] - if !ok { - return fmt.Errorf("config does not exist for that path: %s", pathName) - } - if clientSrc != "" { - path.Src.ClientID = clientSrc - } - if clientDst != "" { - path.Dst.ClientID = clientDst - } - if connectionSrc != "" { - path.Src.ConnectionID = connectionSrc + // perform the operation that requires config flock. + if err := operation(); err != nil { + return err } - if connectionDst != "" { - path.Dst.ConnectionID = connectionDst + + // validate config after changes have been made. + if err := a.config.validateConfig(); err != nil { + return fmt.Errorf("error parsing chain config: %w", err) } // marshal the new config - out, err := yaml.Marshal(a.Config.Wrapped()) + out, err := yaml.Marshal(a.config.Wrapped()) if err != nil { return err } - cfgPath := a.Viper.ConfigFileUsed() + cfgPath := a.configPath() // Overwrite the config file. if err := os.WriteFile(cfgPath, out, 0600); err != nil { @@ -228,3 +218,36 @@ func (a *appState) OverwriteConfigOnTheFly( return nil } + +// updatePathConfig overwrites the config file concurrently, +// locking to read, modify, then write the config. +func (a *appState) updatePathConfig( + ctx context.Context, + pathName string, + clientSrc, clientDst string, + connectionSrc, connectionDst string, +) error { + if pathName == "" { + return errors.New("empty path name not allowed") + } + + return a.performConfigLockingOperation(ctx, func() error { + path, ok := a.config.Paths[pathName] + if !ok { + return fmt.Errorf("config does not exist for that path: %s", pathName) + } + if clientSrc != "" { + path.Src.ClientID = clientSrc + } + if clientDst != "" { + path.Dst.ClientID = clientDst + } + if connectionSrc != "" { + path.Src.ConnectionID = connectionSrc + } + if connectionDst != "" { + path.Dst.ConnectionID = connectionDst + } + return nil + }) +} diff --git a/cmd/chains.go b/cmd/chains.go index 6cf3117e9..53404cabe 100644 --- a/cmd/chains.go +++ b/cmd/chains.go @@ -54,7 +54,7 @@ func chainsAddrCmd(a *appState) *cobra.Command { $ %s chains address ibc-0 $ %s ch addr ibc-0`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -83,7 +83,7 @@ $ %s chains show ibc-0 --yaml $ %s ch s ibc-0 --json $ %s ch s ibc-0 --yaml`, appName, appName, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - c, ok := a.Config.Chains[args[0]] + c, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -117,7 +117,7 @@ $ %s ch s ibc-0 --yaml`, appName, appName, appName, appName)), } }, } - return jsonFlag(a.Viper, cmd) + return jsonFlag(a.viper, cmd) } func chainsDeleteCmd(a *appState) *cobra.Command { @@ -130,12 +130,15 @@ func chainsDeleteCmd(a *appState) *cobra.Command { $ %s chains delete ibc-0 $ %s ch d ibc-0`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - _, ok := a.Config.Chains[args[0]] - if !ok { - return errChainNotFound(args[0]) - } - a.Config.DeleteChain(args[0]) - return a.OverwriteConfig(a.Config) + chain := args[0] + return a.performConfigLockingOperation(cmd.Context(), func() error { + _, ok := a.config.Chains[chain] + if !ok { + return errChainNotFound(chain) + } + a.config.DeleteChain(chain) + return nil + }) }, } return cmd @@ -158,7 +161,7 @@ func chainsRegistryList(a *appState) *cobra.Command { return err } - chains, err := cregistry.DefaultChainRegistry(a.Log).ListChains(cmd.Context()) + chains, err := cregistry.DefaultChainRegistry(a.log).ListChains(cmd.Context()) if err != nil { return err } @@ -188,7 +191,7 @@ func chainsRegistryList(a *appState) *cobra.Command { return nil }, } - return yamlFlag(a.Viper, jsonFlag(a.Viper, cmd)) + return yamlFlag(a.viper, jsonFlag(a.viper, cmd)) } func chainsListCmd(a *appState) *cobra.Command { @@ -211,7 +214,7 @@ $ %s ch l`, appName, appName)), return err } - configs := a.Config.Wrapped().ProviderConfigs + configs := a.config.Wrapped().ProviderConfigs if len(configs) == 0 { fmt.Fprintln(cmd.ErrOrStderr(), "warning: no chains found (do you need to run 'rly chains add'?)") } @@ -235,7 +238,7 @@ $ %s ch l`, appName, appName)), return nil default: i := 0 - for _, c := range a.Config.Chains { + for _, c := range a.config.Chains { var ( key = xIcon p = xIcon @@ -251,7 +254,7 @@ $ %s ch l`, appName, appName)), bal = check } - for _, pth := range a.Config.Paths { + for _, pth := range a.config.Paths { if pth.Src.ChainID == c.ChainProvider.ChainId() || pth.Dst.ChainID == c.ChainID() { p = check } @@ -263,7 +266,7 @@ $ %s ch l`, appName, appName)), } }, } - return yamlFlag(a.Viper, jsonFlag(a.Viper, cmd)) + return yamlFlag(a.viper, jsonFlag(a.viper, cmd)) } func chainsAddCmd(a *appState) *cobra.Command { @@ -283,48 +286,45 @@ func chainsAddCmd(a *appState) *cobra.Command { return err } - if ok := a.Config; ok == nil { + if ok := a.config; ok == nil { return fmt.Errorf("config not initialized, consider running `rly config init`") } - // default behavior fetch from chain registry - // still allow for adding config from url or file - switch { - case file != "": - var chainName string - switch len(args) { - case 0: - chainName = strings.Split(filepath.Base(file), ".")[0] - case 1: - chainName = args[0] + return a.performConfigLockingOperation(cmd.Context(), func() error { + // default behavior fetch from chain registry + // still allow for adding config from url or file + switch { + case file != "": + var chainName string + switch len(args) { + case 0: + chainName = strings.Split(filepath.Base(file), ".")[0] + case 1: + chainName = args[0] + default: + return errors.New("one chain name is required") + } + if err := addChainFromFile(a, chainName, file); err != nil { + return err + } + case url != "": + if len(args) != 1 { + return errors.New("one chain name is required") + } + if err := addChainFromURL(a, args[0], url); err != nil { + return err + } default: - return errors.New("one chain name is required") - } - if err := addChainFromFile(a, chainName, file); err != nil { - return err - } - case url != "": - if len(args) != 1 { - return errors.New("one chain name is required") - } - if err := addChainFromURL(a, args[0], url); err != nil { - return err - } - default: - if err := addChainsFromRegistry(cmd.Context(), a, args); err != nil { - return err + if err := addChainsFromRegistry(cmd.Context(), a, args); err != nil { + return err + } } - } - - if err := validateConfig(a.Config); err != nil { - return err - } - - return a.OverwriteConfig(a.Config) + return nil + }) }, } - return chainsAddFlags(a.Viper, cmd) + return chainsAddFlags(a.viper, cmd) } func chainsAddDirCmd(a *appState) *cobra.Command { @@ -340,10 +340,7 @@ func chainsAddDirCmd(a *appState) *cobra.Command { $ %s chains add-dir configs/demo/chains $ %s ch ad testnet/chains/`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) (err error) { - if err := addChainsFromDirectory(cmd.ErrOrStderr(), a, args[0]); err != nil { - return err - } - return a.OverwriteConfig(a.Config) + return addChainsFromDirectory(cmd.Context(), cmd.ErrOrStderr(), a, args[0]) }, } @@ -369,15 +366,15 @@ func addChainFromFile(a *appState, chainName string, file string) error { } prov, err := pcw.Value.NewProvider( - a.Log.With(zap.String("provider_type", pcw.Type)), - a.HomePath, a.Debug, chainName, + a.log.With(zap.String("provider_type", pcw.Type)), + a.homePath, a.debug, chainName, ) if err != nil { return fmt.Errorf("failed to build ChainProvider for %s: %w", file, err) } - c := relayer.NewChain(a.Log, prov, a.Debug) - if err = a.Config.AddChain(c); err != nil { + c := relayer.NewChain(a.log, prov, a.debug) + if err = a.config.AddChain(c); err != nil { return err } @@ -409,28 +406,28 @@ func addChainFromURL(a *appState, chainName string, rawurl string) error { // build the ChainProvider before initializing the chain prov, err := pcw.Value.NewProvider( - a.Log.With(zap.String("provider_type", pcw.Type)), - a.HomePath, a.Debug, chainName, + a.log.With(zap.String("provider_type", pcw.Type)), + a.homePath, a.debug, chainName, ) if err != nil { return fmt.Errorf("failed to build ChainProvider for %s: %w", rawurl, err) } - c := relayer.NewChain(a.Log, prov, a.Debug) - if err := a.Config.AddChain(c); err != nil { + c := relayer.NewChain(a.log, prov, a.debug) + if err := a.config.AddChain(c); err != nil { return err } return nil } func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) error { - chainRegistry := cregistry.DefaultChainRegistry(a.Log) + chainRegistry := cregistry.DefaultChainRegistry(a.log) var existed, failed, added []string for _, chain := range chains { - if _, ok := a.Config.Chains[chain]; ok { - a.Log.Warn( + if _, ok := a.config.Chains[chain]; ok { + a.log.Warn( "Chain already exists", zap.String("chain", chain), zap.String("source_link", chainRegistry.SourceLink()), @@ -441,7 +438,7 @@ func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) er chainInfo, err := chainRegistry.GetChain(ctx, chain) if err != nil { - a.Log.Warn( + a.log.Warn( "Error retrieving chain", zap.String("chain", chain), zap.Error(err), @@ -452,7 +449,7 @@ func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) er chainConfig, err := chainInfo.GetChainConfig(ctx) if err != nil { - a.Log.Warn( + a.log.Warn( "Error generating chain config", zap.String("chain", chain), zap.Error(err), @@ -465,11 +462,11 @@ func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) er // build the ChainProvider prov, err := chainConfig.NewProvider( - a.Log.With(zap.String("provider_type", "cosmos")), - a.HomePath, a.Debug, chainInfo.ChainName, + a.log.With(zap.String("provider_type", "cosmos")), + a.homePath, a.debug, chainInfo.ChainName, ) if err != nil { - a.Log.Warn( + a.log.Warn( "Failed to build ChainProvider", zap.String("chain_id", chainConfig.ChainID), zap.Error(err), @@ -479,9 +476,9 @@ func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) er } // add to config - c := relayer.NewChain(a.Log, prov, a.Debug) - if err = a.Config.AddChain(c); err != nil { - a.Log.Warn( + c := relayer.NewChain(a.log, prov, a.debug) + if err = a.config.AddChain(c); err != nil { + a.log.Warn( "Failed to add chain to config", zap.String("chain", chain), zap.Error(err), @@ -494,7 +491,7 @@ func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) er // found the correct chain so move on to next chain in chains } - a.Log.Info("Config update status", + a.log.Info("Config update status", zap.Any("added", added), zap.Any("failed", failed), zap.Any("already existed", existed), diff --git a/cmd/config.go b/cmd/config.go index 1faf6b1bb..510944c76 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -87,14 +87,14 @@ $ %s cfg list`, appName, defaultHome, appName)), case yml && jsn: return fmt.Errorf("can't pass both --json and --yaml, must pick one") case jsn: - out, err := json.Marshal(a.Config.Wrapped()) + out, err := json.Marshal(a.config.Wrapped()) if err != nil { return err } fmt.Fprintln(cmd.OutOrStdout(), string(out)) return nil default: - out, err := yaml.Marshal(a.Config.Wrapped()) + out, err := yaml.Marshal(a.config.Wrapped()) if err != nil { return err } @@ -104,7 +104,7 @@ $ %s cfg list`, appName, defaultHome, appName)), }, } - return yamlFlag(a.Viper, jsonFlag(a.Viper, cmd)) + return yamlFlag(a.viper, jsonFlag(a.viper, cmd)) } // Command for initializing an empty config at the --home location @@ -165,7 +165,7 @@ $ %s cfg i`, appName, defaultHome, appName)), return fmt.Errorf("config already exists: %s", cfgPath) }, } - cmd = memoFlag(a.Viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -175,48 +175,51 @@ $ %s cfg i`, appName, defaultHome, appName)), // If any files fail to parse or otherwise are not able to be added to a's chains, // the error is logged. // An error is only returned if the directory cannot be read at all. -func addChainsFromDirectory(stderr io.Writer, a *appState, dir string) error { +func addChainsFromDirectory(ctx context.Context, stderr io.Writer, a *appState, dir string) error { dir = path.Clean(dir) files, err := ioutil.ReadDir(dir) if err != nil { return err } - for _, f := range files { - pth := filepath.Join(dir, f.Name()) - if f.IsDir() { - fmt.Fprintf(stderr, "directory at %s, skipping...\n", pth) - continue - } - byt, err := os.ReadFile(pth) - if err != nil { - fmt.Fprintf(stderr, "failed to read file %s. Err: %v skipping...\n", pth, err) - continue - } + return a.performConfigLockingOperation(ctx, func() error { + for _, f := range files { + pth := filepath.Join(dir, f.Name()) + if f.IsDir() { + fmt.Fprintf(stderr, "directory at %s, skipping...\n", pth) + continue + } - var pcw ProviderConfigWrapper - if err = json.Unmarshal(byt, &pcw); err != nil { - fmt.Fprintf(stderr, "failed to unmarshal file %s. Err: %v skipping...\n", pth, err) - continue - } - chainName := strings.Split(f.Name(), ".")[0] - prov, err := pcw.Value.NewProvider( - a.Log.With(zap.String("provider_type", pcw.Type)), - a.HomePath, a.Debug, chainName, - ) - if err != nil { - fmt.Fprintf(stderr, "failed to build ChainProvider for %s. Err: %v \n", pth, err) - continue - } + byt, err := os.ReadFile(pth) + if err != nil { + fmt.Fprintf(stderr, "failed to read file %s. Err: %v skipping...\n", pth, err) + continue + } + + var pcw ProviderConfigWrapper + if err = json.Unmarshal(byt, &pcw); err != nil { + fmt.Fprintf(stderr, "failed to unmarshal file %s. Err: %v skipping...\n", pth, err) + continue + } + chainName := strings.Split(f.Name(), ".")[0] + prov, err := pcw.Value.NewProvider( + a.log.With(zap.String("provider_type", pcw.Type)), + a.homePath, a.debug, chainName, + ) + if err != nil { + fmt.Fprintf(stderr, "failed to build ChainProvider for %s. Err: %v \n", pth, err) + continue + } - c := relayer.NewChain(a.Log, prov, a.Debug) - if err = a.Config.AddChain(c); err != nil { - fmt.Fprintf(stderr, "failed to add chain %s: %v \n", pth, err) - continue + c := relayer.NewChain(a.log, prov, a.debug) + if err = a.config.AddChain(c); err != nil { + fmt.Fprintf(stderr, "failed to add chain %s: %v \n", pth, err) + continue + } + fmt.Fprintf(stderr, "added chain %s...\n", c.ChainProvider.ChainId()) } - fmt.Fprintf(stderr, "added chain %s...\n", c.ChainProvider.ChainId()) - } - return nil + return nil + }) } // addPathsFromDirectory parses all the files containing JSON-encoded paths in dir, @@ -230,36 +233,38 @@ func addPathsFromDirectory(ctx context.Context, stderr io.Writer, a *appState, d if err != nil { return err } - for _, f := range files { - pth := filepath.Join(dir, f.Name()) - if f.IsDir() { - fmt.Fprintf(stderr, "directory at %s, skipping...\n", pth) - continue - } + return a.performConfigLockingOperation(ctx, func() error { + for _, f := range files { + pth := filepath.Join(dir, f.Name()) + if f.IsDir() { + fmt.Fprintf(stderr, "directory at %s, skipping...\n", pth) + continue + } - byt, err := os.ReadFile(pth) - if err != nil { - return fmt.Errorf("failed to read file %s: %w", pth, err) - } + byt, err := os.ReadFile(pth) + if err != nil { + return fmt.Errorf("failed to read file %s: %w", pth, err) + } - p := &relayer.Path{} - if err = json.Unmarshal(byt, p); err != nil { - return fmt.Errorf("failed to unmarshal file %s: %w", pth, err) - } + p := &relayer.Path{} + if err = json.Unmarshal(byt, p); err != nil { + return fmt.Errorf("failed to unmarshal file %s: %w", pth, err) + } - pthName := strings.Split(f.Name(), ".")[0] - if err := a.Config.ValidatePath(ctx, stderr, p); err != nil { - return fmt.Errorf("failed to validate path %s: %w", pth, err) - } + pthName := strings.Split(f.Name(), ".")[0] + if err := a.config.ValidatePath(ctx, stderr, p); err != nil { + return fmt.Errorf("failed to validate path %s: %w", pth, err) + } - if err := a.Config.AddPath(pthName, p); err != nil { - return fmt.Errorf("failed to add path %s: %w", pth, err) - } + if err := a.config.AddPath(pthName, p); err != nil { + return fmt.Errorf("failed to add path %s: %w", pth, err) + } - fmt.Fprintf(stderr, "added path %s...\n\n", pthName) - } + fmt.Fprintf(stderr, "added path %s...\n\n", pthName) + } - return nil + return nil + }) } // Wrapped converts the Config struct into a ConfigOutputWrapper struct @@ -322,6 +327,34 @@ type ConfigInputWrapper struct { Paths relayer.Paths `yaml:"paths"` } +// RuntimeConfig converts the input disk config into the relayer runtime config. +func (c *ConfigInputWrapper) RuntimeConfig(ctx context.Context, a *appState) (*Config, error) { + // build providers for each chain + chains := make(relayer.Chains) + for chainName, pcfg := range c.ProviderConfigs { + prov, err := pcfg.Value.(provider.ProviderConfig).NewProvider( + a.log.With(zap.String("provider_type", pcfg.Type)), + a.homePath, a.debug, chainName, + ) + if err != nil { + return nil, fmt.Errorf("failed to build ChainProviders: %w", err) + } + + if err := prov.Init(ctx); err != nil { + return nil, fmt.Errorf("failed to initialize provider: %w", err) + } + + chain := relayer.NewChain(a.log, prov, a.debug) + chains[chainName] = chain + } + + return &Config{ + Global: c.Global, + Chains: chains, + Paths: c.Paths, + }, nil +} + type ProviderConfigs map[string]*ProviderConfigWrapper // ProviderConfigWrapper is an intermediary type for parsing arbitrary ProviderConfigs from json files and writing to json/yaml files @@ -531,87 +564,19 @@ func (c *Config) DeleteChain(chain string) { } // validateConfig is used to validate the GlobalConfig values -func validateConfig(c *Config) error { +func (c *Config) validateConfig() error { _, err := time.ParseDuration(c.Global.Timeout) if err != nil { return fmt.Errorf("did you remember to run 'rly config init' error:%w", err) } - return nil -} - -// initConfig reads config file into a.Config if file is present. -func initConfig(cmd *cobra.Command, a *appState) error { - if a.HomePath == "" { - var err error - a.HomePath, err = cmd.PersistentFlags().GetString(flagHome) - if err != nil { - return err - } - } - - cfgPath := path.Join(a.HomePath, "config", "config.yaml") - if _, err := os.Stat(cfgPath); err != nil { - // don't return error if file doesn't exist - return nil - } - a.Viper.SetConfigFile(cfgPath) - if err := a.Viper.ReadInConfig(); err != nil { - return err - } - // read the config file bytes - file, err := os.ReadFile(a.Viper.ConfigFileUsed()) - if err != nil { - fmt.Fprintln(cmd.ErrOrStderr(), "Error reading file:", err) - return err - } - - // unmarshall them into the wrapper struct - cfgWrapper := &ConfigInputWrapper{} - err = yaml.Unmarshal(file, cfgWrapper) - if err != nil { - fmt.Fprintln(cmd.ErrOrStderr(), "Error unmarshalling config:", err) - return err - } - // verify that the channel filter rule is valid for every path in the config - for _, p := range cfgWrapper.Paths { + for _, p := range c.Paths { if err := p.ValidateChannelFilterRule(); err != nil { return fmt.Errorf("error initializing the relayer config for path %s: %w", p.String(), err) } } - // build the config struct - chains := make(relayer.Chains) - for chainName, pcfg := range cfgWrapper.ProviderConfigs { - prov, err := pcfg.Value.(provider.ProviderConfig).NewProvider( - a.Log.With(zap.String("provider_type", pcfg.Type)), - a.HomePath, a.Debug, chainName, - ) - if err != nil { - return fmt.Errorf("failed to build ChainProviders: %w", err) - } - - if err := prov.Init(cmd.Context()); err != nil { - return fmt.Errorf("failed to initialize provider: %w", err) - } - - chain := relayer.NewChain(a.Log, prov, a.Debug) - chains[chainName] = chain - } - - a.Config = &Config{ - Global: cfgWrapper.Global, - Chains: chains, - Paths: cfgWrapper.Paths, - } - - // ensure config has []*relayer.Chain used for all chain operations - if err := validateConfig(a.Config); err != nil { - fmt.Fprintln(cmd.ErrOrStderr(), "Error parsing chain config:", err) - return err - } - return nil } diff --git a/cmd/keys.go b/cmd/keys.go index bcf1c5647..9148946b5 100644 --- a/cmd/keys.go +++ b/cmd/keys.go @@ -65,7 +65,7 @@ $ %s keys add ibc-0 $ %s keys add ibc-1 key2 $ %s k a cosmoshub testkey`, appName, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -120,7 +120,7 @@ $ %s k r cosmoshub faucet-key "[mnemonic-words]"`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { keyName := args[1] - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -168,7 +168,7 @@ $ %s keys delete ibc-0 -y $ %s keys delete ibc-1 key2 -y $ %s k d cosmoshub default`, appName, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -195,7 +195,7 @@ $ %s k d cosmoshub default`, appName, appName, appName)), }, } - return skipConfirm(a.Viper, cmd) + return skipConfirm(a.viper, cmd) } func askForConfirmation(a *appState, stdin io.Reader, stderr io.Writer) bool { @@ -203,7 +203,7 @@ func askForConfirmation(a *appState, stdin io.Reader, stderr io.Writer) bool { _, err := fmt.Fscanln(stdin, &response) if err != nil { - a.Log.Fatal("Failed to read input", zap.Error(err)) + a.log.Fatal("Failed to read input", zap.Error(err)) } switch strings.ToLower(response) { @@ -230,7 +230,7 @@ $ %s k l ibc-1`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { chainName := args[0] - chain, ok := a.Config.Chains[chainName] + chain, ok := a.config.Chains[chainName] if !ok { return errChainNotFound(chainName) } @@ -267,7 +267,7 @@ $ %s keys show ibc-0 $ %s keys show ibc-1 key2 $ %s k s ibc-2 testkey`, appName, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -308,7 +308,7 @@ $ %s keys export ibc-0 testkey $ %s k e cosmoshub testkey`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { keyName := args[1] - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } diff --git a/cmd/paths.go b/cmd/paths.go index 46fc5aec8..0c99c8233 100644 --- a/cmd/paths.go +++ b/cmd/paths.go @@ -49,11 +49,13 @@ func pathsDeleteCmd(a *appState) *cobra.Command { $ %s paths delete demo-path $ %s pth d path-name`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - if _, err := a.Config.Paths.Get(args[0]); err != nil { - return err - } - delete(a.Config.Paths, args[0]) - return a.OverwriteConfig(a.Config) + return a.performConfigLockingOperation(cmd.Context(), func() error { + if _, err := a.config.Paths.Get(args[0]); err != nil { + return err + } + delete(a.config.Paths, args[0]) + return nil + }) }, } return cmd @@ -76,14 +78,14 @@ $ %s pth l`, appName, appName, appName)), case yml && jsn: return fmt.Errorf("can't pass both --json and --yaml, must pick one") case yml: - out, err := yaml.Marshal(a.Config.Paths) + out, err := yaml.Marshal(a.config.Paths) if err != nil { return err } fmt.Fprintln(cmd.OutOrStdout(), string(out)) return nil case jsn: - out, err := json.Marshal(a.Config.Paths) + out, err := json.Marshal(a.config.Paths) if err != nil { return err } @@ -91,8 +93,8 @@ $ %s pth l`, appName, appName, appName)), return nil default: i := 0 - for k, pth := range a.Config.Paths { - chains, err := a.Config.Chains.Gets(pth.Src.ChainID, pth.Dst.ChainID) + for k, pth := range a.config.Paths { + chains, err := a.config.Chains.Gets(pth.Src.ChainID, pth.Dst.ChainID) if err != nil { return err } @@ -107,7 +109,7 @@ $ %s pth l`, appName, appName, appName)), } }, } - return yamlFlag(a.Viper, jsonFlag(a.Viper, cmd)) + return yamlFlag(a.viper, jsonFlag(a.viper, cmd)) } func printPath(stdout io.Writer, i int, k string, pth *relayer.Path, chains, clients, connection string) { @@ -133,11 +135,11 @@ $ %s paths show demo-path --yaml $ %s paths show demo-path --json $ %s pth s path-name`, appName, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - p, err := a.Config.Paths.Get(args[0]) + p, err := a.config.Paths.Get(args[0]) if err != nil { return err } - chains, err := a.Config.Chains.Gets(p.Src.ChainID, p.Dst.ChainID) + chains, err := a.config.Chains.Gets(p.Src.ChainID, p.Dst.ChainID) if err != nil { return err } @@ -168,7 +170,7 @@ $ %s pth s path-name`, appName, appName, appName)), return nil }, } - return yamlFlag(a.Viper, jsonFlag(a.Viper, cmd)) + return yamlFlag(a.viper, jsonFlag(a.viper, cmd)) } func pathsAddCmd(a *appState) *cobra.Command { @@ -183,30 +185,32 @@ $ %s paths add ibc-0 ibc-1 demo-path --file paths/demo.json $ %s pth a ibc-0 ibc-1 demo-path`, appName, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { src, dst := args[0], args[1] - _, err := a.Config.Chains.Gets(src, dst) - if err != nil { - return fmt.Errorf("chains need to be configured before paths to them can be added: %w", err) - } - - file, err := cmd.Flags().GetString(flagFile) - if err != nil { - return err - } - if file != "" { - if err := a.AddPathFromFile(cmd.Context(), cmd.ErrOrStderr(), file, args[2]); err != nil { - return err + return a.performConfigLockingOperation(cmd.Context(), func() error { + _, err := a.config.Chains.Gets(src, dst) + if err != nil { + return fmt.Errorf("chains need to be configured before paths to them can be added: %w", err) } - } else { - if err := a.AddPathFromUserInput(cmd.Context(), cmd.InOrStdin(), cmd.ErrOrStderr(), src, dst, args[2]); err != nil { + + file, err := cmd.Flags().GetString(flagFile) + if err != nil { return err } - } - return a.OverwriteConfig(a.Config) + if file != "" { + if err := a.addPathFromFile(cmd.Context(), cmd.ErrOrStderr(), file, args[2]); err != nil { + return err + } + } else { + if err := a.addPathFromUserInput(cmd.Context(), cmd.InOrStdin(), cmd.ErrOrStderr(), src, dst, args[2]); err != nil { + return err + } + } + return nil + }) }, } - return fileFlag(a.Viper, cmd) + return fileFlag(a.viper, cmd) } func pathsAddDirCmd(a *appState) *cobra.Command { @@ -220,10 +224,7 @@ func pathsAddDirCmd(a *appState) *cobra.Command { Example: strings.TrimSpace(fmt.Sprintf(` $ %s config add-paths examples/demo/configs/paths`, appName)), RunE: func(cmd *cobra.Command, args []string) (err error) { - if err := addPathsFromDirectory(cmd.Context(), cmd.ErrOrStderr(), a, args[0]); err != nil { - return err - } - return a.OverwriteConfig(a.Config) + return addPathsFromDirectory(cmd.Context(), cmd.ErrOrStderr(), a, args[0]) }, } @@ -241,25 +242,27 @@ $ %s paths new ibc-0 ibc-1 demo-path $ %s pth n ibc-0 ibc-1 demo-path`, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { src, dst := args[0], args[1] - _, err := a.Config.Chains.Gets(src, dst) - if err != nil { - return fmt.Errorf("chains need to be configured before paths to them can be added: %w", err) - } - p := &relayer.Path{ - Src: &relayer.PathEnd{ChainID: src}, - Dst: &relayer.PathEnd{ChainID: dst}, - } + return a.performConfigLockingOperation(cmd.Context(), func() error { + _, err := a.config.Chains.Gets(src, dst) + if err != nil { + return fmt.Errorf("chains need to be configured before paths to them can be added: %w", err) + } - name := args[2] - if err = a.Config.Paths.Add(name, p); err != nil { - return err - } + p := &relayer.Path{ + Src: &relayer.PathEnd{ChainID: src}, + Dst: &relayer.PathEnd{ChainID: dst}, + } - return a.OverwriteConfig(a.Config) + name := args[2] + if err = a.config.Paths.Add(name, p); err != nil { + return err + } + return nil + }) }, } - return channelParameterFlags(a.Viper, cmd) + return channelParameterFlags(a.viper, cmd) } func pathsUpdateCmd(a *appState) *cobra.Command { @@ -280,77 +283,79 @@ $ %s paths update demo-path --src-connection-id connection-02 --dst-connection-i flags := cmd.Flags() - p := a.Config.Paths.MustGet(name) + return a.performConfigLockingOperation(cmd.Context(), func() error { + p := a.config.Paths.MustGet(name) - actionTaken := false + actionTaken := false - filterRule, _ := flags.GetString(flagFilterRule) - if filterRule != blankValue { - if filterRule != "" && filterRule != processor.RuleAllowList && filterRule != processor.RuleDenyList { - return fmt.Errorf( - `invalid filter rule : "%s". valid rules: ("", "%s", "%s")`, - filterRule, processor.RuleAllowList, processor.RuleDenyList) + filterRule, _ := flags.GetString(flagFilterRule) + if filterRule != blankValue { + if filterRule != "" && filterRule != processor.RuleAllowList && filterRule != processor.RuleDenyList { + return fmt.Errorf( + `invalid filter rule : "%s". valid rules: ("", "%s", "%s")`, + filterRule, processor.RuleAllowList, processor.RuleDenyList) + } + p.Filter.Rule = filterRule + actionTaken = true } - p.Filter.Rule = filterRule - actionTaken = true - } - filterChannels, _ := flags.GetString(flagFilterChannels) - if filterChannels != blankValue { - var channelList []string + filterChannels, _ := flags.GetString(flagFilterChannels) + if filterChannels != blankValue { + var channelList []string - if filterChannels != "" { - channelList = strings.Split(filterChannels, ",") - } + if filterChannels != "" { + channelList = strings.Split(filterChannels, ",") + } - p.Filter.ChannelList = channelList - actionTaken = true - } + p.Filter.ChannelList = channelList + actionTaken = true + } - srcChainID, _ := flags.GetString(flagSrcChainID) - if srcChainID != "" { - p.Src.ChainID = srcChainID - actionTaken = true - } + srcChainID, _ := flags.GetString(flagSrcChainID) + if srcChainID != "" { + p.Src.ChainID = srcChainID + actionTaken = true + } - dstChainID, _ := flags.GetString(flagDstChainID) - if dstChainID != "" { - p.Dst.ChainID = dstChainID - actionTaken = true - } + dstChainID, _ := flags.GetString(flagDstChainID) + if dstChainID != "" { + p.Dst.ChainID = dstChainID + actionTaken = true + } - srcClientID, _ := flags.GetString(flagSrcClientID) - if srcClientID != "" { - p.Src.ClientID = srcClientID - actionTaken = true - } + srcClientID, _ := flags.GetString(flagSrcClientID) + if srcClientID != "" { + p.Src.ClientID = srcClientID + actionTaken = true + } - dstClientID, _ := flags.GetString(flagDstClientID) - if dstClientID != "" { - p.Dst.ClientID = dstClientID - actionTaken = true - } + dstClientID, _ := flags.GetString(flagDstClientID) + if dstClientID != "" { + p.Dst.ClientID = dstClientID + actionTaken = true + } - srcConnID, _ := flags.GetString(flagSrcConnID) - if srcConnID != "" { - p.Src.ConnectionID = srcConnID - actionTaken = true - } + srcConnID, _ := flags.GetString(flagSrcConnID) + if srcConnID != "" { + p.Src.ConnectionID = srcConnID + actionTaken = true + } - dstConnID, _ := flags.GetString(flagDstConnID) - if dstConnID != "" { - p.Dst.ConnectionID = dstConnID - actionTaken = true - } + dstConnID, _ := flags.GetString(flagDstConnID) + if dstConnID != "" { + p.Dst.ConnectionID = dstConnID + actionTaken = true + } - if !actionTaken { - return fmt.Errorf("at least one flag must be provided") - } + if !actionTaken { + return fmt.Errorf("at least one flag must be provided") + } - return a.OverwriteConfig(a.Config) + return nil + }) }, } - cmd = pathFilterFlags(a.Viper, cmd) + cmd = pathFilterFlags(a.viper, cmd) return cmd } @@ -367,91 +372,88 @@ $ %s pth fch`, appName, defaultHome, appName)), RunE: func(cmd *cobra.Command, args []string) error { overwrite, _ := cmd.Flags().GetBool(flagOverwriteConfig) - chains := []string{} - for chainName := range a.Config.Chains { - chains = append(chains, chainName) - } + return a.performConfigLockingOperation(cmd.Context(), func() error { + chains := []string{} + for chainName := range a.config.Chains { + chains = append(chains, chainName) + } - // find all combinations of paths for configured chains - chainCombinations := make(map[string]bool) - for _, chainA := range chains { - for _, chainB := range chains { - if chainA == chainB { - continue + // find all combinations of paths for configured chains + chainCombinations := make(map[string]bool) + for _, chainA := range chains { + for _, chainB := range chains { + if chainA == chainB { + continue + } + + pair := chainA + "-" + chainB + if chainB < chainA { + pair = chainB + "-" + chainA + } + chainCombinations[pair] = true } + } - pair := chainA + "-" + chainB - if chainB < chainA { - pair = chainB + "-" + chainA + client := github.NewClient(nil) + for pthName := range chainCombinations { + _, exist := a.config.Paths[pthName] + if exist && !overwrite { + fmt.Fprintf(cmd.ErrOrStderr(), "skipping: %s already exists in config, use -o to overwrite (clears filters)\n", pthName) + continue } - chainCombinations[pair] = true - } - } - client := github.NewClient(nil) - for pthName := range chainCombinations { - _, exist := a.Config.Paths[pthName] - if exist && !overwrite { - fmt.Fprintf(cmd.ErrOrStderr(), "skipping: %s already exists in config, use -o to overwrite (clears filters)\n", pthName) - continue - } + // TODO: Don't use github api. Potentially use: https://github.com/eco-stake/cosmos-directory once they integrate IBC data into restAPI. This will avoid rate limits. + fileName := pthName + ".json" + regPath := path.Join("_IBC", fileName) + client, _, err := client.Repositories.DownloadContents(cmd.Context(), "cosmos", "chain-registry", regPath, nil) + if err != nil { + if errors.As(err, new(*github.RateLimitError)) { + fmt.Println("some paths failed: ", err) + break + } + fmt.Fprintf(cmd.ErrOrStderr(), "failure retrieving: %s: consider adding to cosmos/chain-registry: ERR: %v\n", pthName, err) + continue + } + defer client.Close() - // TODO: Don't use github api. Potentially use: https://github.com/eco-stake/cosmos-directory once they integrate IBC data into restAPI. This will avoid rate limits. - fileName := pthName + ".json" - regPath := path.Join("_IBC", fileName) - client, _, err := client.Repositories.DownloadContents(cmd.Context(), "cosmos", "chain-registry", regPath, nil) - if err != nil { - if errors.As(err, new(*github.RateLimitError)) { - fmt.Println("some paths failed: ", err) - break + b, err := io.ReadAll(client) + if err != nil { + return fmt.Errorf("error reading response body: %w", err) } - fmt.Fprintf(cmd.ErrOrStderr(), "failure retrieving: %s: consider adding to cosmos/chain-registry: ERR: %v\n", pthName, err) - continue - } - defer client.Close() - b, err := io.ReadAll(client) - if err != nil { - return fmt.Errorf("error reading response body: %w", err) - } + ibc := &relayer.IBCdata{} + if err = json.Unmarshal(b, &ibc); err != nil { + return fmt.Errorf("failed to unmarshal: %w ", err) + } - ibc := &relayer.IBCdata{} - if err = json.Unmarshal(b, &ibc); err != nil { - return fmt.Errorf("failed to unmarshal: %w ", err) - } + srcChainName := ibc.Chain1.ChainName + dstChainName := ibc.Chain2.ChainName - srcChainName := ibc.Chain1.ChainName - dstChainName := ibc.Chain2.ChainName + srcPathEnd := &relayer.PathEnd{ + ChainID: a.config.Chains[srcChainName].ChainID(), + ClientID: ibc.Chain1.ClientID, + ConnectionID: ibc.Chain1.ConnectionID, + } + dstPathEnd := &relayer.PathEnd{ + ChainID: a.config.Chains[dstChainName].ChainID(), + ClientID: ibc.Chain2.ClientID, + ConnectionID: ibc.Chain2.ConnectionID, + } + newPath := &relayer.Path{ + Src: srcPathEnd, + Dst: dstPathEnd, + } + client.Close() - srcPathEnd := &relayer.PathEnd{ - ChainID: a.Config.Chains[srcChainName].ChainID(), - ClientID: ibc.Chain1.ClientID, - ConnectionID: ibc.Chain1.ConnectionID, - } - dstPathEnd := &relayer.PathEnd{ - ChainID: a.Config.Chains[dstChainName].ChainID(), - ClientID: ibc.Chain2.ClientID, - ConnectionID: ibc.Chain2.ConnectionID, - } - newPath := &relayer.Path{ - Src: srcPathEnd, - Dst: dstPathEnd, - } - client.Close() + if err = a.config.AddPath(pthName, newPath); err != nil { + return fmt.Errorf("failed to add path %s: %w", pthName, err) + } + fmt.Fprintf(cmd.ErrOrStderr(), "added: %s\n", pthName) - if err = a.Config.AddPath(pthName, newPath); err != nil { - return fmt.Errorf("failed to add path %s: %w", pthName, err) } - fmt.Fprintf(cmd.ErrOrStderr(), "added: %s\n", pthName) - - } - - if err := a.OverwriteConfig(a.Config); err != nil { - return err - } - return nil - + return nil + }) }, } - return OverwriteConfigFlag(a.Viper, cmd) + return OverwriteConfigFlag(a.viper, cmd) } diff --git a/cmd/query.go b/cmd/query.go index 9e74aa395..5540fb916 100644 --- a/cmd/query.go +++ b/cmd/query.go @@ -63,7 +63,7 @@ $ %s q ibc-denoms ibc-0`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -99,7 +99,7 @@ $ %s q denom-trace osmosis 9BBA9A1C257E971E38C1422780CE6F0B0686F0A3085E2D61118D9 appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - c, ok := a.Config.Chains[args[0]] + c, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -127,7 +127,7 @@ $ %s q tx ibc-0 A5DF8D272F1C451CFF92BA6C41942C4D29B5CF180279439ED6AB038282F956BE appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -168,7 +168,7 @@ $ %s q txs ibc-0 "message.action=transfer"`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -198,7 +198,7 @@ $ %s q txs ibc-0 "message.action=transfer"`, }, } - return paginationFlags(a.Viper, cmd, "txs") + return paginationFlags(a.viper, cmd, "txs") } func queryBalanceCmd(a *appState) *cobra.Command { @@ -213,7 +213,7 @@ $ %s query balance ibc-0 testkey`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -247,7 +247,7 @@ $ %s query balance ibc-0 testkey`, }, } - return ibcDenomFlags(a.Viper, cmd) + return ibcDenomFlags(a.viper, cmd) } func queryHeaderCmd(a *appState) *cobra.Command { @@ -261,7 +261,7 @@ $ %s query header ibc-0 1400`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -315,7 +315,7 @@ $ %s q node-state ibc-1`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -355,7 +355,7 @@ $ %s query client ibc-0 ibczeroclient --height 1205`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -392,7 +392,7 @@ $ %s query client ibc-0 ibczeroclient --height 1205`, }, } - return heightFlag(a.Viper, cmd) + return heightFlag(a.viper, cmd) } func queryClientsCmd(a *appState) *cobra.Command { @@ -407,7 +407,7 @@ $ %s query clients ibc-2 --offset 2 --limit 30`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -437,7 +437,7 @@ $ %s query clients ibc-2 --offset 2 --limit 30`, }, } - return paginationFlags(a.Viper, cmd, "client states") + return paginationFlags(a.viper, cmd, "client states") } func queryConnections(a *appState) *cobra.Command { @@ -453,7 +453,7 @@ $ %s q conns ibc-1`, appName, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -483,7 +483,7 @@ $ %s q conns ibc-1`, }, } - return paginationFlags(a.Viper, cmd, "connections on a network") + return paginationFlags(a.viper, cmd, "connections on a network") } func queryConnectionsUsingClient(a *appState) *cobra.Command { @@ -499,7 +499,7 @@ $ %s query client-connections ibc-0 ibczeroclient --height 1205`, RunE: func(cmd *cobra.Command, args []string) error { //TODO - Add pagination - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -536,7 +536,7 @@ $ %s query client-connections ibc-0 ibczeroclient --height 1205`, }, } - return heightFlag(a.Viper, cmd) + return heightFlag(a.viper, cmd) } func queryConnection(a *appState) *cobra.Command { @@ -551,7 +551,7 @@ $ %s q conn ibc-1 ibconeconn`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -595,7 +595,7 @@ $ %s query connection-channels ibc-2 ibcconnection2 --offset 2 --limit 30`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -629,7 +629,7 @@ $ %s query connection-channels ibc-2 ibcconnection2 --offset 2 --limit 30`, }, } - return paginationFlags(a.Viper, cmd, "channels associated with a connection") + return paginationFlags(a.viper, cmd, "channels associated with a connection") } func queryChannel(a *appState) *cobra.Command { @@ -643,7 +643,7 @@ $ %s query channel ibc-2 ibctwochannel transfer --height 1205`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -682,7 +682,7 @@ $ %s query channel ibc-2 ibctwochannel transfer --height 1205`, }, } - return heightFlag(a.Viper, cmd) + return heightFlag(a.viper, cmd) } // chanExtendedInfo is an intermediate type for holding additional useful @@ -880,13 +880,13 @@ $ %s query channels ibc-0 ibc-2`, appName, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } if len(args) > 1 { - dstChain, ok := a.Config.Chains[args[1]] + dstChain, ok := a.config.Chains[args[1]] if !ok { return errChainNotFound(args[1]) } @@ -902,7 +902,7 @@ $ %s query channels ibc-0 ibc-2`, }, } - return paginationFlags(a.Viper, cmd, "channels on a network") + return paginationFlags(a.viper, cmd, "channels on a network") } func queryPacketCommitment(a *appState) *cobra.Command { @@ -916,7 +916,7 @@ $ %s q packet-commit ibc-1 ibconechannel transfer 31`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.Config.Chains[args[0]] + chain, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } @@ -961,14 +961,14 @@ $ %s query unrelayed-pkts demo-path channel-0`, appName, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - path, err := a.Config.Paths.Get(args[0]) + path, err := a.config.Paths.Get(args[0]) if err != nil { return err } src, dst := path.Src.ChainID, path.Dst.ChainID - c, err := a.Config.Chains.Gets(src, dst) + c, err := a.config.Chains.Gets(src, dst) if err != nil { return err } @@ -1014,13 +1014,13 @@ $ %s query unrelayed-acks demo-path channel-0`, appName, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - path, err := a.Config.Paths.Get(args[0]) + path, err := a.config.Paths.Get(args[0]) if err != nil { return err } src, dst := path.Src.ChainID, path.Dst.ChainID - c, err := a.Config.Chains.Gets(src, dst) + c, err := a.config.Chains.Gets(src, dst) if err != nil { return err } @@ -1063,12 +1063,12 @@ $ %s query clients-expiration demo-path`, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - path, err := a.Config.Paths.Get(args[0]) + path, err := a.config.Paths.Get(args[0]) if err != nil { return err } src, dst := path.Src.ChainID, path.Dst.ChainID - c, err := a.Config.Chains.Gets(src, dst) + c, err := a.config.Chains.Gets(src, dst) if err != nil { return err } diff --git a/cmd/root.go b/cmd/root.go index a819397d5..d76360e01 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -57,9 +57,9 @@ func NewRootCmd(log *zap.Logger) *cobra.Command { // Use a local app state instance scoped to the new root command, // so that tests don't concurrently access the state. a := &appState{ - Viper: viper.New(), + viper: viper.New(), - Log: log, + log: log, } // RootCmd represents the base command when called without any subcommands @@ -78,37 +78,37 @@ func NewRootCmd(log *zap.Logger) *cobra.Command { rootCmd.PersistentPreRunE = func(cmd *cobra.Command, _ []string) error { // Inside persistent pre-run because this takes effect after flags are parsed. if log == nil { - log, err := newRootLogger(a.Viper.GetString("log-format"), a.Viper.GetBool("debug")) + log, err := newRootLogger(a.viper.GetString("log-format"), a.viper.GetBool("debug")) if err != nil { return err } - a.Log = log + a.log = log } // reads `homeDir/config/config.yaml` into `a.Config` - return initConfig(rootCmd, a) + return a.loadConfigFile(rootCmd.Context()) } rootCmd.PersistentPostRun = func(cmd *cobra.Command, _ []string) { // Force syncing the logs before exit, if anything is buffered. - a.Log.Sync() + _ = a.log.Sync() } // Register --home flag - rootCmd.PersistentFlags().StringVar(&a.HomePath, flagHome, defaultHome, "set home directory") - if err := a.Viper.BindPFlag(flagHome, rootCmd.PersistentFlags().Lookup(flagHome)); err != nil { + rootCmd.PersistentFlags().StringVar(&a.homePath, flagHome, defaultHome, "set home directory") + if err := a.viper.BindPFlag(flagHome, rootCmd.PersistentFlags().Lookup(flagHome)); err != nil { panic(err) } // Register --debug flag - rootCmd.PersistentFlags().BoolVarP(&a.Debug, "debug", "d", false, "debug output") - if err := a.Viper.BindPFlag("debug", rootCmd.PersistentFlags().Lookup("debug")); err != nil { + rootCmd.PersistentFlags().BoolVarP(&a.debug, "debug", "d", false, "debug output") + if err := a.viper.BindPFlag("debug", rootCmd.PersistentFlags().Lookup("debug")); err != nil { panic(err) } rootCmd.PersistentFlags().String("log-format", "auto", "log output format (auto, logfmt, json, or console)") - if err := a.Viper.BindPFlag("log-format", rootCmd.PersistentFlags().Lookup("log-format")); err != nil { + if err := a.viper.BindPFlag("log-format", rootCmd.PersistentFlags().Lookup("log-format")); err != nil { panic(err) } diff --git a/cmd/start.go b/cmd/start.go index bc8143865..fa69d2a80 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -50,7 +50,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), if len(args) > 0 { for i, pathName := range args { - path := a.Config.Paths.MustGet(pathName) + path := a.config.Paths.MustGet(pathName) paths[i] = relayer.NamedPath{ Name: pathName, Path: path, @@ -61,7 +61,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), chains[path.Dst.ChainID] = nil } } else { - for n, path := range a.Config.Paths { + for n, path := range a.config.Paths { paths = append(paths, relayer.NamedPath{ Name: n, Path: path, @@ -79,7 +79,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), } // get chain configurations - chains, err := a.Config.Chains.Gets(chainIDs...) + chains, err := a.config.Chains.Gets(chainIDs...) if err != nil { return err } @@ -95,7 +95,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), var prometheusMetrics *processor.PrometheusMetrics - debugAddr := a.Config.Global.APIListenPort + debugAddr := a.config.Global.APIListenPort debugAddrFlag, err := cmd.Flags().GetString(flagDebugAddr) if err != nil { @@ -107,14 +107,14 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), } if debugAddr == "" { - a.Log.Info("Skipping debug server due to empty debug address flag") + a.log.Info("Skipping debug server due to empty debug address flag") } else { ln, err := net.Listen("tcp", debugAddr) if err != nil { - a.Log.Error("Failed to listen on debug address. If you have another relayer process open, use --" + flagDebugAddr + " to pick a different address.") + a.log.Error("Failed to listen on debug address. If you have another relayer process open, use --" + flagDebugAddr + " to pick a different address.") return fmt.Errorf("failed to listen on debug address %q: %w", debugAddr, err) } - log := a.Log.With(zap.String("sys", "debughttp")) + log := a.log.With(zap.String("sys", "debughttp")) log.Info("Debug server listening", zap.String("addr", debugAddr)) prometheusMetrics = processor.NewPrometheusMetrics() relaydebug.StartDebugServer(cmd.Context(), log, ln, prometheusMetrics.Registry) @@ -146,11 +146,11 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), rlyErrCh := relayer.StartRelayer( cmd.Context(), - a.Log, + a.log, chains, paths, maxTxSize, maxMsgLength, - a.Config.memo(cmd), + a.config.memo(cmd), clientUpdateThresholdTime, flushInterval, nil, @@ -164,7 +164,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), // so we don't want to separately monitor the ctx.Done channel, // because we would risk returning before the relayer cleans up. if err := <-rlyErrCh; err != nil && !errors.Is(err, context.Canceled) { - a.Log.Warn( + a.log.Warn( "Relayer start error", zap.Error(err), ) @@ -173,13 +173,13 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), return nil }, } - cmd = updateTimeFlags(a.Viper, cmd) - cmd = strategyFlag(a.Viper, cmd) - cmd = debugServerFlags(a.Viper, cmd) - cmd = processorFlag(a.Viper, cmd) - cmd = initBlockFlag(a.Viper, cmd) - cmd = flushIntervalFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = updateTimeFlags(a.viper, cmd) + cmd = strategyFlag(a.viper, cmd) + cmd = debugServerFlags(a.viper, cmd) + cmd = processorFlag(a.viper, cmd) + cmd = initBlockFlag(a.viper, cmd) + cmd = flushIntervalFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } diff --git a/cmd/tx.go b/cmd/tx.go index 437edbc05..1913fd34f 100644 --- a/cmd/tx.go +++ b/cmd/tx.go @@ -85,7 +85,7 @@ func createClientsCmd(a *appState) *cobra.Command { path := args[0] - c, src, dst, err := a.Config.ChainsFromPath(path) + c, src, dst, err := a.config.ChainsFromPath(path) if err != nil { return err } @@ -98,12 +98,12 @@ func createClientsCmd(a *appState) *cobra.Command { return fmt.Errorf("key %s not found on dst chain %s", c[dst].ChainProvider.Key(), c[dst].ChainID()) } - clientSrc, clientDst, err := c[src].CreateClients(cmd.Context(), c[dst], allowUpdateAfterExpiry, allowUpdateAfterMisbehaviour, override, customClientTrustingPeriod, a.Config.memo(cmd)) + clientSrc, clientDst, err := c[src].CreateClients(cmd.Context(), c[dst], allowUpdateAfterExpiry, allowUpdateAfterMisbehaviour, override, customClientTrustingPeriod, a.config.memo(cmd)) if err != nil { return err } if clientSrc != "" || clientDst != "" { - if err := a.OverwriteConfigOnTheFly(cmd, path, clientSrc, clientDst, "", ""); err != nil { + if err := a.updatePathConfig(cmd.Context(), path, clientSrc, clientDst, "", ""); err != nil { return err } } @@ -112,9 +112,9 @@ func createClientsCmd(a *appState) *cobra.Command { }, } - cmd = clientParameterFlags(a.Viper, cmd) - cmd = overrideFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = clientParameterFlags(a.viper, cmd) + cmd = overrideFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -147,17 +147,17 @@ func createClientCmd(a *appState) *cobra.Command { return err } - src, ok := a.Config.Chains[args[0]] + src, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } - dst, ok := a.Config.Chains[args[1]] + dst, ok := a.config.Chains[args[1]] if !ok { return errChainNotFound(args[1]) } pathName := args[2] - path, err := a.Config.Paths.Get(pathName) + path, err := a.config.Paths.Get(pathName) if err != nil { return err } @@ -194,7 +194,7 @@ func createClientCmd(a *appState) *cobra.Command { } return nil }, retry.Context(cmd.Context()), relayer.RtyAtt, relayer.RtyDel, relayer.RtyErr, retry.OnRetry(func(n uint, err error) { - a.Log.Info( + a.log.Info( "Failed to get light signed header", zap.String("src_chain_id", src.ChainID()), zap.Int64("src_height", srch), @@ -209,7 +209,7 @@ func createClientCmd(a *appState) *cobra.Command { return err } - clientID, err := relayer.CreateClient(cmd.Context(), src, dst, srcUpdateHeader, dstUpdateHeader, allowUpdateAfterExpiry, allowUpdateAfterMisbehaviour, override, customClientTrustingPeriod, a.Config.memo(cmd)) + clientID, err := relayer.CreateClient(cmd.Context(), src, dst, srcUpdateHeader, dstUpdateHeader, allowUpdateAfterExpiry, allowUpdateAfterMisbehaviour, override, customClientTrustingPeriod, a.config.memo(cmd)) if err != nil { return err } @@ -220,7 +220,7 @@ func createClientCmd(a *appState) *cobra.Command { clientDst = clientID } if clientID != "" { - if err = a.OverwriteConfigOnTheFly(cmd, pathName, clientSrc, clientDst, "", ""); err != nil { + if err = a.updatePathConfig(cmd.Context(), pathName, clientSrc, clientDst, "", ""); err != nil { return err } } @@ -229,9 +229,9 @@ func createClientCmd(a *appState) *cobra.Command { }, } - cmd = clientParameterFlags(a.Viper, cmd) - cmd = overrideFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = clientParameterFlags(a.viper, cmd) + cmd = overrideFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -245,7 +245,7 @@ corresponding update-client messages.`, Args: withUsage(cobra.ExactArgs(1)), Example: strings.TrimSpace(fmt.Sprintf(`$ %s transact update-clients demo-path`, appName)), RunE: func(cmd *cobra.Command, args []string) error { - c, src, dst, err := a.Config.ChainsFromPath(args[0]) + c, src, dst, err := a.config.ChainsFromPath(args[0]) if err != nil { return err } @@ -258,11 +258,11 @@ corresponding update-client messages.`, return fmt.Errorf("key %s not found on dst chain %s", c[dst].ChainProvider.Key(), c[dst].ChainID()) } - return relayer.UpdateClients(cmd.Context(), c[src], c[dst], a.Config.memo(cmd)) + return relayer.UpdateClients(cmd.Context(), c[src], c[dst], a.config.memo(cmd)) }, } - return memoFlag(a.Viper, cmd) + return memoFlag(a.viper, cmd) } func upgradeClientsCmd(a *appState) *cobra.Command { @@ -271,7 +271,7 @@ func upgradeClientsCmd(a *appState) *cobra.Command { Short: "upgrades IBC clients between two configured chains with a configured path and chain-id", Args: withUsage(cobra.ExactArgs(2)), RunE: func(cmd *cobra.Command, args []string) error { - c, src, dst, err := a.Config.ChainsFromPath(args[0]) + c, src, dst, err := a.config.ChainsFromPath(args[0]) if err != nil { return err } @@ -291,7 +291,7 @@ func upgradeClientsCmd(a *appState) *cobra.Command { targetChainID := args[1] - memo := a.Config.memo(cmd) + memo := a.config.memo(cmd) // send the upgrade message on the targetChainID if src == targetChainID { @@ -302,8 +302,8 @@ func upgradeClientsCmd(a *appState) *cobra.Command { }, } - cmd = heightFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = heightFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -339,7 +339,7 @@ $ %s tx conn demo-path --timeout 5s`, pathName := args[0] - c, src, dst, err := a.Config.ChainsFromPath(pathName) + c, src, dst, err := a.config.ChainsFromPath(pathName) if err != nil { return err } @@ -367,7 +367,7 @@ $ %s tx conn demo-path --timeout 5s`, return fmt.Errorf("key %s not found on dst chain %s", c[dst].ChainProvider.Key(), c[dst].ChainID()) } - memo := a.Config.memo(cmd) + memo := a.config.memo(cmd) initialBlockHistory, err := cmd.Flags().GetUint64(flagInitialBlockHistory) if err != nil { @@ -380,7 +380,7 @@ $ %s tx conn demo-path --timeout 5s`, return err } if clientSrc != "" || clientDst != "" { - if err := a.OverwriteConfigOnTheFly(cmd, pathName, clientSrc, clientDst, "", ""); err != nil { + if err := a.updatePathConfig(cmd.Context(), pathName, clientSrc, clientDst, "", ""); err != nil { return err } } @@ -390,7 +390,7 @@ $ %s tx conn demo-path --timeout 5s`, return err } if connectionSrc != "" || connectionDst != "" { - if err := a.OverwriteConfigOnTheFly(cmd, pathName, "", "", connectionSrc, connectionDst); err != nil { + if err := a.updatePathConfig(cmd.Context(), pathName, "", "", connectionSrc, connectionDst); err != nil { return err } } @@ -399,12 +399,12 @@ $ %s tx conn demo-path --timeout 5s`, }, } - cmd = timeoutFlag(a.Viper, cmd) - cmd = retryFlag(a.Viper, cmd) - cmd = clientParameterFlags(a.Viper, cmd) - cmd = overrideFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) - cmd = initBlockFlag(a.Viper, cmd) + cmd = timeoutFlag(a.viper, cmd) + cmd = retryFlag(a.viper, cmd) + cmd = clientParameterFlags(a.viper, cmd) + cmd = overrideFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) + cmd = initBlockFlag(a.viper, cmd) return cmd } @@ -426,7 +426,7 @@ $ %s tx chan demo-path --timeout 5s --max-retries 10`, pathName := args[0] - c, src, dst, err := a.Config.ChainsFromPath(pathName) + c, src, dst, err := a.config.ChainsFromPath(pathName) if err != nil { return err } @@ -475,15 +475,15 @@ $ %s tx chan demo-path --timeout 5s --max-retries 10`, } // create channel if it isn't already created - return c[src].CreateOpenChannels(cmd.Context(), c[dst], retries, to, srcPort, dstPort, order, version, override, a.Config.memo(cmd), pathName) + return c[src].CreateOpenChannels(cmd.Context(), c[dst], retries, to, srcPort, dstPort, order, version, override, a.config.memo(cmd), pathName) }, } - cmd = timeoutFlag(a.Viper, cmd) - cmd = retryFlag(a.Viper, cmd) - cmd = overrideFlag(a.Viper, cmd) - cmd = channelParameterFlags(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = timeoutFlag(a.viper, cmd) + cmd = retryFlag(a.viper, cmd) + cmd = overrideFlag(a.viper, cmd) + cmd = channelParameterFlags(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -502,7 +502,7 @@ $ %s tx channel-close demo-path channel-0 transfer -o 3s`, RunE: func(cmd *cobra.Command, args []string) error { pathName := args[0] - c, src, dst, err := a.Config.ChainsFromPath(pathName) + c, src, dst, err := a.config.ChainsFromPath(pathName) if err != nil { return err } @@ -538,13 +538,13 @@ $ %s tx channel-close demo-path channel-0 transfer -o 3s`, return err } - return c[src].CloseChannel(cmd.Context(), c[dst], retries, to, channelID, portID, a.Config.memo(cmd), pathName) + return c[src].CloseChannel(cmd.Context(), c[dst], retries, to, channelID, portID, a.config.memo(cmd), pathName) }, } - cmd = timeoutFlag(a.Viper, cmd) - cmd = retryFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = timeoutFlag(a.viper, cmd) + cmd = retryFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -581,13 +581,13 @@ $ %s tx connect demo-path --src-port transfer --dst-port transfer --order unorde pathName := args[0] - pth, err := a.Config.Paths.Get(pathName) + pth, err := a.config.Paths.Get(pathName) if err != nil { return err } src, dst := pth.Src.ChainID, pth.Dst.ChainID - c, err := a.Config.Chains.Gets(src, dst) + c, err := a.config.Chains.Gets(src, dst) if err != nil { return err } @@ -638,7 +638,7 @@ $ %s tx connect demo-path --src-port transfer --dst-port transfer --order unorde return fmt.Errorf("key %s not found on dst chain %s", c[dst].ChainProvider.Key(), c[dst].ChainID()) } - memo := a.Config.memo(cmd) + memo := a.config.memo(cmd) initialBlockHistory, err := cmd.Flags().GetUint64(flagInitialBlockHistory) if err != nil { @@ -651,7 +651,7 @@ $ %s tx connect demo-path --src-port transfer --dst-port transfer --order unorde return fmt.Errorf("error creating clients: %w", err) } if clientSrc != "" || clientDst != "" { - if err := a.OverwriteConfigOnTheFly(cmd, pathName, clientSrc, clientDst, "", ""); err != nil { + if err := a.updatePathConfig(cmd.Context(), pathName, clientSrc, clientDst, "", ""); err != nil { return err } } @@ -662,7 +662,7 @@ $ %s tx connect demo-path --src-port transfer --dst-port transfer --order unorde return fmt.Errorf("error creating connections: %w", err) } if connectionSrc != "" || connectionDst != "" { - if err := a.OverwriteConfigOnTheFly(cmd, pathName, "", "", connectionSrc, connectionDst); err != nil { + if err := a.updatePathConfig(cmd.Context(), pathName, "", "", connectionSrc, connectionDst); err != nil { return err } } @@ -671,13 +671,13 @@ $ %s tx connect demo-path --src-port transfer --dst-port transfer --order unorde return c[src].CreateOpenChannels(cmd.Context(), c[dst], retries, to, srcPort, dstPort, order, version, override, memo, pathName) }, } - cmd = timeoutFlag(a.Viper, cmd) - cmd = retryFlag(a.Viper, cmd) - cmd = clientParameterFlags(a.Viper, cmd) - cmd = channelParameterFlags(a.Viper, cmd) - cmd = overrideFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) - cmd = initBlockFlag(a.Viper, cmd) + cmd = timeoutFlag(a.viper, cmd) + cmd = retryFlag(a.viper, cmd) + cmd = clientParameterFlags(a.viper, cmd) + cmd = channelParameterFlags(a.viper, cmd) + cmd = overrideFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) + cmd = initBlockFlag(a.viper, cmd) return cmd } @@ -697,7 +697,7 @@ $ %s tx link-then-start demo-path --timeout 5s`, appName, appName)), lCmd := linkCmd(a) for err := lCmd.RunE(cmd, args); err != nil; err = lCmd.RunE(cmd, args) { - a.Log.Info("Error running link; retrying", zap.Error(err)) + a.log.Info("Error running link; retrying", zap.Error(err)) select { case <-time.After(time.Second): // Keep going. @@ -711,17 +711,17 @@ $ %s tx link-then-start demo-path --timeout 5s`, appName, appName)), }, } - cmd = timeoutFlag(a.Viper, cmd) - cmd = retryFlag(a.Viper, cmd) - cmd = strategyFlag(a.Viper, cmd) - cmd = clientParameterFlags(a.Viper, cmd) - cmd = channelParameterFlags(a.Viper, cmd) - cmd = overrideFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) - cmd = debugServerFlags(a.Viper, cmd) - cmd = initBlockFlag(a.Viper, cmd) - cmd = processorFlag(a.Viper, cmd) - cmd = updateTimeFlags(a.Viper, cmd) + cmd = timeoutFlag(a.viper, cmd) + cmd = retryFlag(a.viper, cmd) + cmd = strategyFlag(a.viper, cmd) + cmd = clientParameterFlags(a.viper, cmd) + cmd = channelParameterFlags(a.viper, cmd) + cmd = overrideFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) + cmd = debugServerFlags(a.viper, cmd) + cmd = initBlockFlag(a.viper, cmd) + cmd = processorFlag(a.viper, cmd) + cmd = updateTimeFlags(a.viper, cmd) return cmd } @@ -743,7 +743,7 @@ $ %s tx flush demo-path channel-0`, if len(args) > 0 { pathName := args[0] - path := a.Config.Paths.MustGet(pathName) + path := a.config.Paths.MustGet(pathName) paths = append(paths, relayer.NamedPath{ Name: pathName, Path: path, @@ -753,7 +753,7 @@ $ %s tx flush demo-path channel-0`, chains[path.Src.ChainID] = nil chains[path.Dst.ChainID] = nil } else { - for n, path := range a.Config.Paths { + for n, path := range a.config.Paths { paths = append(paths, relayer.NamedPath{ Name: n, Path: path, @@ -771,7 +771,7 @@ $ %s tx flush demo-path channel-0`, } // get chain configurations - chains, err := a.Config.Chains.Gets(chainIDs...) + chains, err := a.config.Chains.Gets(chainIDs...) if err != nil { return err } @@ -798,11 +798,11 @@ $ %s tx flush demo-path channel-0`, rlyErrCh := relayer.StartRelayer( ctx, - a.Log, + a.log, chains, paths, maxTxSize, maxMsgLength, - a.Config.memo(cmd), + a.config.memo(cmd), 0, 0, &processor.FlushLifecycle{}, @@ -816,7 +816,7 @@ $ %s tx flush demo-path channel-0`, // so we don't want to separately monitor the ctx.Done channel, // because we would risk returning before the relayer cleans up. if err := <-rlyErrCh; err != nil && !errors.Is(err, context.Canceled) { - a.Log.Warn( + a.log.Warn( "Relayer start error", zap.Error(err), ) @@ -826,8 +826,8 @@ $ %s tx flush demo-path channel-0`, }, } - cmd = strategyFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = strategyFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -843,13 +843,13 @@ $ %s tx relay-pkts demo-path channel-0`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - a.Log.Warn("This command is deprecated. Please use 'tx flush' command instead") + a.log.Warn("This command is deprecated. Please use 'tx flush' command instead") return flushCmd(a).RunE(cmd, args) }, } - cmd = strategyFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = strategyFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -865,13 +865,13 @@ $ %s tx relay-acks demo-path channel-0 -l 3 -s 6`, appName, appName, )), RunE: func(cmd *cobra.Command, args []string) error { - a.Log.Warn("This command is deprecated. Please use 'tx flush' command instead") + a.log.Warn("This command is deprecated. Please use 'tx flush' command instead") return flushCmd(a).RunE(cmd, args) }, } - cmd = strategyFlag(a.Viper, cmd) - cmd = memoFlag(a.Viper, cmd) + cmd = strategyFlag(a.viper, cmd) + cmd = memoFlag(a.viper, cmd) return cmd } @@ -889,11 +889,11 @@ $ %s tx transfer ibc-0 ibc-1 100000stake raw:non-bech32-address channel-0 --path $ %s tx raw send ibc-0 ibc-1 100000stake cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk channel-0 --path demo -c 5 `, appName, appName, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { - src, ok := a.Config.Chains[args[0]] + src, ok := a.config.Chains[args[0]] if !ok { return errChainNotFound(args[0]) } - dst, ok := a.Config.Chains[args[1]] + dst, ok := a.config.Chains[args[1]] if !ok { return errChainNotFound(args[1]) } @@ -979,16 +979,16 @@ $ %s tx raw send ibc-0 ibc-1 100000stake cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9 dstAddr = rawDstAddr } - return src.SendTransferMsg(cmd.Context(), a.Log, dst, amount, dstAddr, toHeightOffset, toTimeOffset, srcChannel) + return src.SendTransferMsg(cmd.Context(), a.log, dst, amount, dstAddr, toHeightOffset, toTimeOffset, srcChannel) }, } - return timeoutFlags(a.Viper, pathFlag(a.Viper, cmd)) + return timeoutFlags(a.viper, pathFlag(a.viper, cmd)) } func setPathsFromArgs(a *appState, src, dst *relayer.Chain, name string) (*relayer.Path, error) { // find any configured paths between the chains - paths, err := a.Config.Paths.PathsFromChains(src.ChainID(), dst.ChainID()) + paths, err := a.config.Paths.PathsFromChains(src.ChainID(), dst.ChainID()) if err != nil { return nil, err } diff --git a/cmd/version.go b/cmd/version.go index 2079685de..7f18c6519 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -76,5 +76,5 @@ $ %s v`, }, } - return jsonFlag(a.Viper, versionCmd) + return jsonFlag(a.viper, versionCmd) } From c6874083fb9e41531bf0501bdaf4c208b4247295 Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Fri, 31 Mar 2023 10:18:12 -0700 Subject: [PATCH 14/46] Penumbra support v2 (#1144) * Penumbra buf go gen * Use go prefix override * wip: penumbra relayer provider remove copied-over cosmos provider tests, rename processor cosmos -> penumbra rename ccp -> pcp reformat into new relayer dir structure update penumbra types to point to buf.build building again * fix penumbra * fix: implement MsgSubmitMisbehaviour * fix: remove unnecessary proto file + fix msg type cast * chore: add removal of penumbra client protos in protocgen * working penumbra relayer functionality wip: unbase64? wip: multiple messages per penumbra tx wip: stub SendMessages impl wip: attempt to split out common method wip: use random anchor and work around path renaming wip: improve logging wip: changes during pairing https://www.youtube.com/watch?v=RYonSOkZ5ZE clean up logs skip height bug workaround drop debug panic * update penumbra chain processor connection and channel message processing * cleanup logging statements for review Responding to review comments, honoring the style guide for logging, and removing some unused reference code that was commented out while debugging. --------- Co-authored-by: Andrew Gouin Co-authored-by: Ava Howell Co-authored-by: jtieri Co-authored-by: Ava Howell Co-authored-by: Conor Schaefer Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> --- Makefile | 2 +- buf.work.yaml | 4 - cmd/config.go | 6 +- go.mod | 4 +- proto/buf.gen.gogo.yaml | 4 + proto/buf.gen.penumbra.yaml | 13 + proto/buf.lock | 31 + proto/buf.yaml | 7 + relayer/chains/cosmos/msg.go | 1 - relayer/chains/cosmos/query.go | 3 +- relayer/chains/penumbra/codec.go | 100 + .../penumbra/core/chain/v1alpha1/chain.pb.go | 4949 +++++ .../core/crypto/v1alpha1/crypto.pb.go | 7224 ++++++++ .../penumbra/core/dex/v1alpha1/dex.pb.go | 9469 ++++++++++ .../core/governance/v1alpha1/governance.pb.go | 7225 ++++++++ .../penumbra/core/ibc/v1alpha1/ibc.pb.go | 2465 +++ .../penumbra/core/stake/v1alpha1/stake.pb.go | 6136 ++++++ .../transaction/v1alpha1/transaction.pb.go | 14147 ++++++++++++++ .../v1alpha1/transparent_proofs.pb.go | 1237 ++ .../penumbra/custody/v1alpha1/custody.pb.go | 1213 ++ relayer/chains/penumbra/event_parser.go | 472 + relayer/chains/penumbra/grpc_query.go | 215 + relayer/chains/penumbra/keys.go | 211 + relayer/chains/penumbra/log.go | 157 + relayer/chains/penumbra/message_handlers.go | 168 + relayer/chains/penumbra/msg.go | 80 + .../penumbra/penumbra_chain_processor.go | 415 + relayer/chains/penumbra/provider.go | 341 + relayer/chains/penumbra/query.go | 985 + relayer/chains/penumbra/relayer_packets.go | 232 + relayer/chains/penumbra/tx.go | 2235 +++ .../chains/penumbra/view/v1alpha1/view.pb.go | 15435 ++++++++++++++++ relayer/channel.go | 2 +- relayer/events.go | 55 + relayer/provider/provider.go | 4 +- relayer/strategies.go | 3 + scripts/protocgen.sh | 6 +- third_party/proto/amino/amino.proto | 80 - third_party/proto/buf.yaml | 6 - .../proto/cosmos/auth/v1beta1/auth.proto | 23 - third_party/proto/cosmos_proto/cosmos.proto | 97 - third_party/proto/gogoproto/gogo.proto | 145 - .../proto/tendermint/crypto/proof.proto | 41 - 43 files changed, 75243 insertions(+), 405 deletions(-) delete mode 100644 buf.work.yaml create mode 100644 proto/buf.gen.penumbra.yaml create mode 100644 proto/buf.lock create mode 100644 proto/buf.yaml create mode 100644 relayer/chains/penumbra/codec.go create mode 100644 relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go create mode 100644 relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go create mode 100644 relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go create mode 100644 relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go create mode 100644 relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go create mode 100644 relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go create mode 100644 relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go create mode 100644 relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go create mode 100644 relayer/chains/penumbra/custody/v1alpha1/custody.pb.go create mode 100644 relayer/chains/penumbra/event_parser.go create mode 100644 relayer/chains/penumbra/grpc_query.go create mode 100644 relayer/chains/penumbra/keys.go create mode 100644 relayer/chains/penumbra/log.go create mode 100644 relayer/chains/penumbra/message_handlers.go create mode 100644 relayer/chains/penumbra/msg.go create mode 100644 relayer/chains/penumbra/penumbra_chain_processor.go create mode 100644 relayer/chains/penumbra/provider.go create mode 100644 relayer/chains/penumbra/query.go create mode 100644 relayer/chains/penumbra/relayer_packets.go create mode 100644 relayer/chains/penumbra/tx.go create mode 100644 relayer/chains/penumbra/view/v1alpha1/view.pb.go create mode 100644 relayer/events.go delete mode 100644 third_party/proto/amino/amino.proto delete mode 100644 third_party/proto/buf.yaml delete mode 100644 third_party/proto/cosmos/auth/v1beta1/auth.proto delete mode 100644 third_party/proto/cosmos_proto/cosmos.proto delete mode 100644 third_party/proto/gogoproto/gogo.proto delete mode 100644 third_party/proto/tendermint/crypto/proof.proto diff --git a/Makefile b/Makefile index 8565b1e13..2d2c71a57 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ ifeq ($(OS),Windows_NT) @go build -mod=readonly $(BUILD_FLAGS) -o build/rly.exe main.go else @echo "building rly binary..." - @go build -mod=readonly $(BUILD_FLAGS) -o build/rly main.go + @go build $(BUILD_FLAGS) -o build/rly main.go endif build-zip: go.sum diff --git a/buf.work.yaml b/buf.work.yaml deleted file mode 100644 index 494296bfa..000000000 --- a/buf.work.yaml +++ /dev/null @@ -1,4 +0,0 @@ -version: v1 -directories: - - proto - - third_party/proto diff --git a/cmd/config.go b/cmd/config.go index 510944c76..07513056b 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -31,6 +31,7 @@ import ( "github.com/cosmos/relayer/v2/relayer" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + "github.com/cosmos/relayer/v2/relayer/chains/penumbra" "github.com/cosmos/relayer/v2/relayer/provider" "github.com/spf13/cobra" "go.uber.org/zap" @@ -373,7 +374,8 @@ type ProviderConfigYAMLWrapper struct { // NOTE: Add new ProviderConfig types in the map here with the key set equal to the type of ChainProvider (e.g. cosmos, substrate, etc.) func (pcw *ProviderConfigWrapper) UnmarshalJSON(data []byte) error { customTypes := map[string]reflect.Type{ - "cosmos": reflect.TypeOf(cosmos.CosmosProviderConfig{}), + "cosmos": reflect.TypeOf(cosmos.CosmosProviderConfig{}), + "penumbra": reflect.TypeOf(penumbra.PenumbraProviderConfig{}), } val, err := UnmarshalJSONProviderConfig(data, customTypes) if err != nil { @@ -426,6 +428,8 @@ func (iw *ProviderConfigYAMLWrapper) UnmarshalYAML(n *yaml.Node) error { switch iw.Type { case "cosmos": iw.Value = new(cosmos.CosmosProviderConfig) + case "penumbra": + iw.Value = new(penumbra.PenumbraProviderConfig) default: return fmt.Errorf("%s is an invalid chain type, check your config file", iw.Type) } diff --git a/go.mod b/go.mod index 59265cdac..a452df9fe 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.4.6 github.com/cosmos/ibc-go/v7 v7.0.0 + github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab github.com/ethereum/go-ethereum v1.10.26 github.com/gofrs/flock v0.8.1 github.com/gogo/protobuf v1.3.2 @@ -34,6 +35,7 @@ require ( golang.org/x/term v0.6.0 golang.org/x/text v0.8.0 google.golang.org/grpc v1.53.0 + google.golang.org/protobuf v1.29.1 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -69,7 +71,6 @@ require ( github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v0.20.0 // indirect - github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab // indirect github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect github.com/creachadair/taskgroup v0.4.2 // indirect @@ -175,7 +176,6 @@ require ( google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect - google.golang.org/protobuf v1.29.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v0.5.5 // indirect diff --git a/proto/buf.gen.gogo.yaml b/proto/buf.gen.gogo.yaml index fc6e4fc51..b071dd1bb 100644 --- a/proto/buf.gen.gogo.yaml +++ b/proto/buf.gen.gogo.yaml @@ -2,3 +2,7 @@ version: v1 plugins: - name: gocosmos out: . + opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types + - name: grpc-gateway + out: . + opt: logtostderr=true,allow_colon_final_segments=true diff --git a/proto/buf.gen.penumbra.yaml b/proto/buf.gen.penumbra.yaml new file mode 100644 index 000000000..781eea262 --- /dev/null +++ b/proto/buf.gen.penumbra.yaml @@ -0,0 +1,13 @@ +version: v1 +managed: + enabled: true + go_package_prefix: + default: github.com/cosmos/relayer/v2/relayer/chains + except: + - buf.build/cosmos/ibc + - github.com/cometbft/cometbft + - buf.build/cosmos/cosmos-sdk +plugins: + - name: gocosmos + out: . + opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types diff --git a/proto/buf.lock b/proto/buf.lock new file mode 100644 index 000000000..40983632a --- /dev/null +++ b/proto/buf.lock @@ -0,0 +1,31 @@ +# Generated by buf. DO NOT EDIT. +version: v1 +deps: + - remote: buf.build + owner: cosmos + repository: cosmos-proto + commit: 1935555c206d4afb9e94615dfd0fad31 + - remote: buf.build + owner: cosmos + repository: cosmos-sdk + commit: 7c06e7f6f43c406185136100bfd7b848 + - remote: buf.build + owner: cosmos + repository: gogo-proto + commit: 34d970b699f84aa382f3c29773a60836 + - remote: buf.build + owner: cosmos + repository: ibc + commit: 6e966f8dba714d108a52ffabbcb0e5c3 + - remote: buf.build + owner: cosmos + repository: ics23 + commit: 55085f7c710a45f58fa09947208eb70b + - remote: buf.build + owner: googleapis + repository: googleapis + commit: 75b4300737fb4efca0831636be94e517 + - remote: buf.build + owner: penumbra-zone + repository: penumbra + commit: 42619f653f4d470291f3d8b68d7ae7ae diff --git a/proto/buf.yaml b/proto/buf.yaml new file mode 100644 index 000000000..008d82060 --- /dev/null +++ b/proto/buf.yaml @@ -0,0 +1,7 @@ +version: v1 +deps: + - buf.build/penumbra-zone/penumbra + - buf.build/cosmos/cosmos-sdk + - buf.build/cosmos/cosmos-proto + - buf.build/cosmos/gogo-proto + - buf.build/googleapis/googleapis \ No newline at end of file diff --git a/relayer/chains/cosmos/msg.go b/relayer/chains/cosmos/msg.go index 54ef33340..85621e95c 100644 --- a/relayer/chains/cosmos/msg.go +++ b/relayer/chains/cosmos/msg.go @@ -10,7 +10,6 @@ import ( "go.uber.org/zap/zapcore" ) -var _ provider.RelayerMessage = &CosmosMessage{} type CosmosMessage struct { Msg sdk.Msg diff --git a/relayer/chains/cosmos/query.go b/relayer/chains/cosmos/query.go index 5525d2c81..077253059 100644 --- a/relayer/chains/cosmos/query.go +++ b/relayer/chains/cosmos/query.go @@ -684,7 +684,6 @@ func (cc *CosmosProvider) GenerateConnHandshakeProof(ctx context.Context, height func (cc *CosmosProvider) QueryChannel(ctx context.Context, height int64, channelid, portid string) (chanRes *chantypes.QueryChannelResponse, err error) { res, err := cc.queryChannelABCI(ctx, height, portid, channelid) if err != nil && strings.Contains(err.Error(), "not found") { - return &chantypes.QueryChannelResponse{ Channel: &chantypes.Channel{ State: chantypes.UNINITIALIZED, @@ -728,6 +727,8 @@ func (cc *CosmosProvider) queryChannelABCI(ctx context.Context, height int64, po return nil, err } + + return &chantypes.QueryChannelResponse{ Channel: &channel, Proof: proofBz, diff --git a/relayer/chains/penumbra/codec.go b/relayer/chains/penumbra/codec.go new file mode 100644 index 000000000..2b7c00a8a --- /dev/null +++ b/relayer/chains/penumbra/codec.go @@ -0,0 +1,100 @@ +package penumbra + +import ( + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/std" + "github.com/cosmos/cosmos-sdk/types/module" + "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/cosmos/cosmos-sdk/x/auth/tx" + authz "github.com/cosmos/cosmos-sdk/x/authz/module" + "github.com/cosmos/cosmos-sdk/x/bank" + "github.com/cosmos/cosmos-sdk/x/capability" + "github.com/cosmos/cosmos-sdk/x/crisis" + "github.com/cosmos/cosmos-sdk/x/distribution" + feegrant "github.com/cosmos/cosmos-sdk/x/feegrant/module" + "github.com/cosmos/cosmos-sdk/x/gov" + govclient "github.com/cosmos/cosmos-sdk/x/gov/client" + "github.com/cosmos/cosmos-sdk/x/mint" + "github.com/cosmos/cosmos-sdk/x/params" + paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" + "github.com/cosmos/cosmos-sdk/x/slashing" + "github.com/cosmos/cosmos-sdk/x/staking" + "github.com/cosmos/cosmos-sdk/x/upgrade" + upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" + "github.com/cosmos/ibc-go/v7/modules/apps/transfer" + ibc "github.com/cosmos/ibc-go/v7/modules/core" + + cosmosmodule "github.com/cosmos/relayer/v2/relayer/chains/cosmos/module" + "github.com/cosmos/relayer/v2/relayer/chains/cosmos/stride" + ethermintcodecs "github.com/cosmos/relayer/v2/relayer/codecs/ethermint" + injectivecodecs "github.com/cosmos/relayer/v2/relayer/codecs/injective" +) + +var moduleBasics = []module.AppModuleBasic{ + auth.AppModuleBasic{}, + authz.AppModuleBasic{}, + bank.AppModuleBasic{}, + capability.AppModuleBasic{}, + gov.NewAppModuleBasic( + []govclient.ProposalHandler{ + paramsclient.ProposalHandler, + upgradeclient.LegacyProposalHandler, + upgradeclient.LegacyCancelProposalHandler, + }, + ), + crisis.AppModuleBasic{}, + distribution.AppModuleBasic{}, + feegrant.AppModuleBasic{}, + mint.AppModuleBasic{}, + params.AppModuleBasic{}, + slashing.AppModuleBasic{}, + staking.AppModuleBasic{}, + upgrade.AppModuleBasic{}, + transfer.AppModuleBasic{}, + ibc.AppModuleBasic{}, + cosmosmodule.AppModuleBasic{}, + stride.AppModuleBasic{}, +} + +type Codec struct { + InterfaceRegistry types.InterfaceRegistry + Marshaler codec.Codec + TxConfig client.TxConfig + Amino *codec.LegacyAmino +} + +func makeCodec(moduleBasics []module.AppModuleBasic, extraCodecs []string) Codec { + modBasic := module.NewBasicManager(moduleBasics...) + encodingConfig := makeCodecConfig() + std.RegisterLegacyAminoCodec(encodingConfig.Amino) + std.RegisterInterfaces(encodingConfig.InterfaceRegistry) + modBasic.RegisterLegacyAminoCodec(encodingConfig.Amino) + modBasic.RegisterInterfaces(encodingConfig.InterfaceRegistry) + for _, c := range extraCodecs { + switch c { + case "ethermint": + ethermintcodecs.RegisterInterfaces(encodingConfig.InterfaceRegistry) + encodingConfig.Amino.RegisterConcrete(ðermintcodecs.PubKey{}, ethermintcodecs.PubKeyName, nil) + encodingConfig.Amino.RegisterConcrete(ðermintcodecs.PrivKey{}, ethermintcodecs.PrivKeyName, nil) + case "injective": + injectivecodecs.RegisterInterfaces(encodingConfig.InterfaceRegistry) + encodingConfig.Amino.RegisterConcrete(&injectivecodecs.PubKey{}, injectivecodecs.PubKeyName, nil) + encodingConfig.Amino.RegisterConcrete(&injectivecodecs.PrivKey{}, injectivecodecs.PrivKeyName, nil) + } + } + + return encodingConfig +} + +func makeCodecConfig() Codec { + interfaceRegistry := types.NewInterfaceRegistry() + marshaler := codec.NewProtoCodec(interfaceRegistry) + return Codec{ + InterfaceRegistry: interfaceRegistry, + Marshaler: marshaler, + TxConfig: tx.NewTxConfig(marshaler, tx.DefaultSignModes), + Amino: codec.NewLegacyAmino(), + } +} diff --git a/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go new file mode 100644 index 000000000..19da79408 --- /dev/null +++ b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go @@ -0,0 +1,4949 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/chain/v1alpha1/chain.proto + +package chainv1alpha1 + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" + v1alpha12 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/stake/v1alpha1" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// Global chain configuration data, such as chain ID, epoch duration, etc. +type ChainParameters struct { + // The identifier of the chain. + ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // The duration of each epoch, in number of blocks. + EpochDuration uint64 `protobuf:"varint,2,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` + // The number of epochs an unbonding note for before being released. + UnbondingEpochs uint64 `protobuf:"varint,3,opt,name=unbonding_epochs,json=unbondingEpochs,proto3" json:"unbonding_epochs,omitempty"` + // The maximum number of validators in the consensus set. + ActiveValidatorLimit uint64 `protobuf:"varint,4,opt,name=active_validator_limit,json=activeValidatorLimit,proto3" json:"active_validator_limit,omitempty"` + // The base reward rate, expressed in basis points of basis points + BaseRewardRate uint64 `protobuf:"varint,9,opt,name=base_reward_rate,json=baseRewardRate,proto3" json:"base_reward_rate,omitempty"` + // The penalty for slashing due to misbehavior. + SlashingPenaltyMisbehavior uint64 `protobuf:"varint,5,opt,name=slashing_penalty_misbehavior,json=slashingPenaltyMisbehavior,proto3" json:"slashing_penalty_misbehavior,omitempty"` + // The penalty for slashing due to downtime. + SlashingPenaltyDowntime uint64 `protobuf:"varint,10,opt,name=slashing_penalty_downtime,json=slashingPenaltyDowntime,proto3" json:"slashing_penalty_downtime,omitempty"` + // The number of blocks in the window to check for downtime. + SignedBlocksWindowLen uint64 `protobuf:"varint,11,opt,name=signed_blocks_window_len,json=signedBlocksWindowLen,proto3" json:"signed_blocks_window_len,omitempty"` + // The maximum number of blocks in the window each validator can miss signing without slashing. + MissedBlocksMaximum uint64 `protobuf:"varint,12,opt,name=missed_blocks_maximum,json=missedBlocksMaximum,proto3" json:"missed_blocks_maximum,omitempty"` + // Whether IBC (forming connections, processing IBC packets) is enabled. + IbcEnabled bool `protobuf:"varint,6,opt,name=ibc_enabled,json=ibcEnabled,proto3" json:"ibc_enabled,omitempty"` + // Whether inbound ICS-20 transfers are enabled + InboundIcs20TransfersEnabled bool `protobuf:"varint,7,opt,name=inbound_ics20_transfers_enabled,json=inboundIcs20TransfersEnabled,proto3" json:"inbound_ics20_transfers_enabled,omitempty"` + // Whether outbound ICS-20 transfers are enabled + OutboundIcs20TransfersEnabled bool `protobuf:"varint,8,opt,name=outbound_ics20_transfers_enabled,json=outboundIcs20TransfersEnabled,proto3" json:"outbound_ics20_transfers_enabled,omitempty"` + // The number of blocks during which a proposal is voted on. + ProposalVotingBlocks uint64 `protobuf:"varint,20,opt,name=proposal_voting_blocks,json=proposalVotingBlocks,proto3" json:"proposal_voting_blocks,omitempty"` + // The deposit required to create a proposal. + ProposalDepositAmount uint64 `protobuf:"varint,21,opt,name=proposal_deposit_amount,json=proposalDepositAmount,proto3" json:"proposal_deposit_amount,omitempty"` + // The quorum required for a proposal to be considered valid, as a fraction of the total stake + // weight of the network. + ProposalValidQuorum string `protobuf:"bytes,22,opt,name=proposal_valid_quorum,json=proposalValidQuorum,proto3" json:"proposal_valid_quorum,omitempty"` + // The threshold for a proposal to pass voting, as a ratio of "yes" votes over "no" votes. + ProposalPassThreshold string `protobuf:"bytes,23,opt,name=proposal_pass_threshold,json=proposalPassThreshold,proto3" json:"proposal_pass_threshold,omitempty"` + // The threshold for a proposal to be slashed, regardless of whether the "yes" and "no" votes + // would have passed it, as a ratio of "no" votes over all total votes. + ProposalSlashThreshold string `protobuf:"bytes,24,opt,name=proposal_slash_threshold,json=proposalSlashThreshold,proto3" json:"proposal_slash_threshold,omitempty"` + // Whether DAO spend proposals are enabled. + DaoSpendProposalsEnabled bool `protobuf:"varint,25,opt,name=dao_spend_proposals_enabled,json=daoSpendProposalsEnabled,proto3" json:"dao_spend_proposals_enabled,omitempty"` +} + +func (m *ChainParameters) Reset() { *m = ChainParameters{} } +func (m *ChainParameters) String() string { return proto.CompactTextString(m) } +func (*ChainParameters) ProtoMessage() {} +func (*ChainParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{0} +} +func (m *ChainParameters) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ChainParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ChainParameters.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ChainParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChainParameters.Merge(m, src) +} +func (m *ChainParameters) XXX_Size() int { + return m.Size() +} +func (m *ChainParameters) XXX_DiscardUnknown() { + xxx_messageInfo_ChainParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_ChainParameters proto.InternalMessageInfo + +func (m *ChainParameters) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *ChainParameters) GetEpochDuration() uint64 { + if m != nil { + return m.EpochDuration + } + return 0 +} + +func (m *ChainParameters) GetUnbondingEpochs() uint64 { + if m != nil { + return m.UnbondingEpochs + } + return 0 +} + +func (m *ChainParameters) GetActiveValidatorLimit() uint64 { + if m != nil { + return m.ActiveValidatorLimit + } + return 0 +} + +func (m *ChainParameters) GetBaseRewardRate() uint64 { + if m != nil { + return m.BaseRewardRate + } + return 0 +} + +func (m *ChainParameters) GetSlashingPenaltyMisbehavior() uint64 { + if m != nil { + return m.SlashingPenaltyMisbehavior + } + return 0 +} + +func (m *ChainParameters) GetSlashingPenaltyDowntime() uint64 { + if m != nil { + return m.SlashingPenaltyDowntime + } + return 0 +} + +func (m *ChainParameters) GetSignedBlocksWindowLen() uint64 { + if m != nil { + return m.SignedBlocksWindowLen + } + return 0 +} + +func (m *ChainParameters) GetMissedBlocksMaximum() uint64 { + if m != nil { + return m.MissedBlocksMaximum + } + return 0 +} + +func (m *ChainParameters) GetIbcEnabled() bool { + if m != nil { + return m.IbcEnabled + } + return false +} + +func (m *ChainParameters) GetInboundIcs20TransfersEnabled() bool { + if m != nil { + return m.InboundIcs20TransfersEnabled + } + return false +} + +func (m *ChainParameters) GetOutboundIcs20TransfersEnabled() bool { + if m != nil { + return m.OutboundIcs20TransfersEnabled + } + return false +} + +func (m *ChainParameters) GetProposalVotingBlocks() uint64 { + if m != nil { + return m.ProposalVotingBlocks + } + return 0 +} + +func (m *ChainParameters) GetProposalDepositAmount() uint64 { + if m != nil { + return m.ProposalDepositAmount + } + return 0 +} + +func (m *ChainParameters) GetProposalValidQuorum() string { + if m != nil { + return m.ProposalValidQuorum + } + return "" +} + +func (m *ChainParameters) GetProposalPassThreshold() string { + if m != nil { + return m.ProposalPassThreshold + } + return "" +} + +func (m *ChainParameters) GetProposalSlashThreshold() string { + if m != nil { + return m.ProposalSlashThreshold + } + return "" +} + +func (m *ChainParameters) GetDaoSpendProposalsEnabled() bool { + if m != nil { + return m.DaoSpendProposalsEnabled + } + return false +} + +// The ratio between two numbers, used in governance to describe vote thresholds and quorums. +type Ratio struct { + // The numerator. + Numerator uint64 `protobuf:"varint,1,opt,name=numerator,proto3" json:"numerator,omitempty"` + // The denominator. + Denominator uint64 `protobuf:"varint,2,opt,name=denominator,proto3" json:"denominator,omitempty"` +} + +func (m *Ratio) Reset() { *m = Ratio{} } +func (m *Ratio) String() string { return proto.CompactTextString(m) } +func (*Ratio) ProtoMessage() {} +func (*Ratio) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{1} +} +func (m *Ratio) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Ratio) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Ratio.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Ratio) XXX_Merge(src proto.Message) { + xxx_messageInfo_Ratio.Merge(m, src) +} +func (m *Ratio) XXX_Size() int { + return m.Size() +} +func (m *Ratio) XXX_DiscardUnknown() { + xxx_messageInfo_Ratio.DiscardUnknown(m) +} + +var xxx_messageInfo_Ratio proto.InternalMessageInfo + +func (m *Ratio) GetNumerator() uint64 { + if m != nil { + return m.Numerator + } + return 0 +} + +func (m *Ratio) GetDenominator() uint64 { + if m != nil { + return m.Denominator + } + return 0 +} + +// Parameters for Fuzzy Message Detection +type FmdParameters struct { + PrecisionBits uint32 `protobuf:"varint,1,opt,name=precision_bits,json=precisionBits,proto3" json:"precision_bits,omitempty"` + AsOfBlockHeight uint64 `protobuf:"varint,2,opt,name=as_of_block_height,json=asOfBlockHeight,proto3" json:"as_of_block_height,omitempty"` +} + +func (m *FmdParameters) Reset() { *m = FmdParameters{} } +func (m *FmdParameters) String() string { return proto.CompactTextString(m) } +func (*FmdParameters) ProtoMessage() {} +func (*FmdParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{2} +} +func (m *FmdParameters) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FmdParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FmdParameters.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FmdParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_FmdParameters.Merge(m, src) +} +func (m *FmdParameters) XXX_Size() int { + return m.Size() +} +func (m *FmdParameters) XXX_DiscardUnknown() { + xxx_messageInfo_FmdParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_FmdParameters proto.InternalMessageInfo + +func (m *FmdParameters) GetPrecisionBits() uint32 { + if m != nil { + return m.PrecisionBits + } + return 0 +} + +func (m *FmdParameters) GetAsOfBlockHeight() uint64 { + if m != nil { + return m.AsOfBlockHeight + } + return 0 +} + +// TODO: delete with legacy code +// Information about a given asset at a given time (as specified by block +// height). Currently this only contains the total supply. +type AssetInfo struct { + AssetId *v1alpha1.AssetId `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + Denom *v1alpha1.Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + AsOfBlockHeight uint64 `protobuf:"varint,3,opt,name=as_of_block_height,json=asOfBlockHeight,proto3" json:"as_of_block_height,omitempty"` + TotalSupply uint64 `protobuf:"varint,4,opt,name=total_supply,json=totalSupply,proto3" json:"total_supply,omitempty"` +} + +func (m *AssetInfo) Reset() { *m = AssetInfo{} } +func (m *AssetInfo) String() string { return proto.CompactTextString(m) } +func (*AssetInfo) ProtoMessage() {} +func (*AssetInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{3} +} +func (m *AssetInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AssetInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AssetInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AssetInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AssetInfo.Merge(m, src) +} +func (m *AssetInfo) XXX_Size() int { + return m.Size() +} +func (m *AssetInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AssetInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AssetInfo proto.InternalMessageInfo + +func (m *AssetInfo) GetAssetId() *v1alpha1.AssetId { + if m != nil { + return m.AssetId + } + return nil +} + +func (m *AssetInfo) GetDenom() *v1alpha1.Denom { + if m != nil { + return m.Denom + } + return nil +} + +func (m *AssetInfo) GetAsOfBlockHeight() uint64 { + if m != nil { + return m.AsOfBlockHeight + } + return 0 +} + +func (m *AssetInfo) GetTotalSupply() uint64 { + if m != nil { + return m.TotalSupply + } + return 0 +} + +// Contains the minimum data needed to update client state. +type CompactBlock struct { + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + // State payloads describing new state fragments. + StatePayloads []*StatePayload `protobuf:"bytes,2,rep,name=state_payloads,json=statePayloads,proto3" json:"state_payloads,omitempty"` + // Nullifiers identifying spent notes. + Nullifiers []*v1alpha1.Nullifier `protobuf:"bytes,3,rep,name=nullifiers,proto3" json:"nullifiers,omitempty"` + // The block root of this block. + BlockRoot *v1alpha1.MerkleRoot `protobuf:"bytes,4,opt,name=block_root,json=blockRoot,proto3" json:"block_root,omitempty"` + // The epoch root of this epoch (only present when the block is the last in an epoch). + EpochRoot *v1alpha1.MerkleRoot `protobuf:"bytes,17,opt,name=epoch_root,json=epochRoot,proto3" json:"epoch_root,omitempty"` + // If a proposal started voting in this block, this is set to `true`. + ProposalStarted bool `protobuf:"varint,20,opt,name=proposal_started,json=proposalStarted,proto3" json:"proposal_started,omitempty"` + // Latest Fuzzy Message Detection parameters. + FmdParameters *FmdParameters `protobuf:"bytes,100,opt,name=fmd_parameters,json=fmdParameters,proto3" json:"fmd_parameters,omitempty"` + // Price data for swaps executed in this block. + SwapOutputs []*v1alpha11.BatchSwapOutputData `protobuf:"bytes,5,rep,name=swap_outputs,json=swapOutputs,proto3" json:"swap_outputs,omitempty"` + // Updated chain parameters, if they have changed. + ChainParameters *ChainParameters `protobuf:"bytes,6,opt,name=chain_parameters,json=chainParameters,proto3" json:"chain_parameters,omitempty"` +} + +func (m *CompactBlock) Reset() { *m = CompactBlock{} } +func (m *CompactBlock) String() string { return proto.CompactTextString(m) } +func (*CompactBlock) ProtoMessage() {} +func (*CompactBlock) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{4} +} +func (m *CompactBlock) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CompactBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CompactBlock.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CompactBlock) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompactBlock.Merge(m, src) +} +func (m *CompactBlock) XXX_Size() int { + return m.Size() +} +func (m *CompactBlock) XXX_DiscardUnknown() { + xxx_messageInfo_CompactBlock.DiscardUnknown(m) +} + +var xxx_messageInfo_CompactBlock proto.InternalMessageInfo + +func (m *CompactBlock) GetHeight() uint64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *CompactBlock) GetStatePayloads() []*StatePayload { + if m != nil { + return m.StatePayloads + } + return nil +} + +func (m *CompactBlock) GetNullifiers() []*v1alpha1.Nullifier { + if m != nil { + return m.Nullifiers + } + return nil +} + +func (m *CompactBlock) GetBlockRoot() *v1alpha1.MerkleRoot { + if m != nil { + return m.BlockRoot + } + return nil +} + +func (m *CompactBlock) GetEpochRoot() *v1alpha1.MerkleRoot { + if m != nil { + return m.EpochRoot + } + return nil +} + +func (m *CompactBlock) GetProposalStarted() bool { + if m != nil { + return m.ProposalStarted + } + return false +} + +func (m *CompactBlock) GetFmdParameters() *FmdParameters { + if m != nil { + return m.FmdParameters + } + return nil +} + +func (m *CompactBlock) GetSwapOutputs() []*v1alpha11.BatchSwapOutputData { + if m != nil { + return m.SwapOutputs + } + return nil +} + +func (m *CompactBlock) GetChainParameters() *ChainParameters { + if m != nil { + return m.ChainParameters + } + return nil +} + +type StatePayload struct { + // Types that are valid to be assigned to StatePayload: + // *StatePayload_RolledUp_ + // *StatePayload_Note_ + // *StatePayload_Swap_ + // *StatePayload_Position_ + StatePayload isStatePayload_StatePayload `protobuf_oneof:"state_payload"` +} + +func (m *StatePayload) Reset() { *m = StatePayload{} } +func (m *StatePayload) String() string { return proto.CompactTextString(m) } +func (*StatePayload) ProtoMessage() {} +func (*StatePayload) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{5} +} +func (m *StatePayload) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatePayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatePayload.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatePayload) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatePayload.Merge(m, src) +} +func (m *StatePayload) XXX_Size() int { + return m.Size() +} +func (m *StatePayload) XXX_DiscardUnknown() { + xxx_messageInfo_StatePayload.DiscardUnknown(m) +} + +var xxx_messageInfo_StatePayload proto.InternalMessageInfo + +type isStatePayload_StatePayload interface { + isStatePayload_StatePayload() + MarshalTo([]byte) (int, error) + Size() int +} + +type StatePayload_RolledUp_ struct { + RolledUp *StatePayload_RolledUp `protobuf:"bytes,1,opt,name=rolled_up,json=rolledUp,proto3,oneof" json:"rolled_up,omitempty"` +} +type StatePayload_Note_ struct { + Note *StatePayload_Note `protobuf:"bytes,2,opt,name=note,proto3,oneof" json:"note,omitempty"` +} +type StatePayload_Swap_ struct { + Swap *StatePayload_Swap `protobuf:"bytes,3,opt,name=swap,proto3,oneof" json:"swap,omitempty"` +} +type StatePayload_Position_ struct { + Position *StatePayload_Position `protobuf:"bytes,4,opt,name=position,proto3,oneof" json:"position,omitempty"` +} + +func (*StatePayload_RolledUp_) isStatePayload_StatePayload() {} +func (*StatePayload_Note_) isStatePayload_StatePayload() {} +func (*StatePayload_Swap_) isStatePayload_StatePayload() {} +func (*StatePayload_Position_) isStatePayload_StatePayload() {} + +func (m *StatePayload) GetStatePayload() isStatePayload_StatePayload { + if m != nil { + return m.StatePayload + } + return nil +} + +func (m *StatePayload) GetRolledUp() *StatePayload_RolledUp { + if x, ok := m.GetStatePayload().(*StatePayload_RolledUp_); ok { + return x.RolledUp + } + return nil +} + +func (m *StatePayload) GetNote() *StatePayload_Note { + if x, ok := m.GetStatePayload().(*StatePayload_Note_); ok { + return x.Note + } + return nil +} + +func (m *StatePayload) GetSwap() *StatePayload_Swap { + if x, ok := m.GetStatePayload().(*StatePayload_Swap_); ok { + return x.Swap + } + return nil +} + +func (m *StatePayload) GetPosition() *StatePayload_Position { + if x, ok := m.GetStatePayload().(*StatePayload_Position_); ok { + return x.Position + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatePayload) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatePayload_RolledUp_)(nil), + (*StatePayload_Note_)(nil), + (*StatePayload_Swap_)(nil), + (*StatePayload_Position_)(nil), + } +} + +type StatePayload_RolledUp struct { + Commitment *v1alpha1.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` +} + +func (m *StatePayload_RolledUp) Reset() { *m = StatePayload_RolledUp{} } +func (m *StatePayload_RolledUp) String() string { return proto.CompactTextString(m) } +func (*StatePayload_RolledUp) ProtoMessage() {} +func (*StatePayload_RolledUp) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{5, 0} +} +func (m *StatePayload_RolledUp) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatePayload_RolledUp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatePayload_RolledUp.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatePayload_RolledUp) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatePayload_RolledUp.Merge(m, src) +} +func (m *StatePayload_RolledUp) XXX_Size() int { + return m.Size() +} +func (m *StatePayload_RolledUp) XXX_DiscardUnknown() { + xxx_messageInfo_StatePayload_RolledUp.DiscardUnknown(m) +} + +var xxx_messageInfo_StatePayload_RolledUp proto.InternalMessageInfo + +func (m *StatePayload_RolledUp) GetCommitment() *v1alpha1.StateCommitment { + if m != nil { + return m.Commitment + } + return nil +} + +type StatePayload_Note struct { + Source *NoteSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Note *v1alpha1.NotePayload `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` +} + +func (m *StatePayload_Note) Reset() { *m = StatePayload_Note{} } +func (m *StatePayload_Note) String() string { return proto.CompactTextString(m) } +func (*StatePayload_Note) ProtoMessage() {} +func (*StatePayload_Note) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{5, 1} +} +func (m *StatePayload_Note) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatePayload_Note) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatePayload_Note.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatePayload_Note) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatePayload_Note.Merge(m, src) +} +func (m *StatePayload_Note) XXX_Size() int { + return m.Size() +} +func (m *StatePayload_Note) XXX_DiscardUnknown() { + xxx_messageInfo_StatePayload_Note.DiscardUnknown(m) +} + +var xxx_messageInfo_StatePayload_Note proto.InternalMessageInfo + +func (m *StatePayload_Note) GetSource() *NoteSource { + if m != nil { + return m.Source + } + return nil +} + +func (m *StatePayload_Note) GetNote() *v1alpha1.NotePayload { + if m != nil { + return m.Note + } + return nil +} + +type StatePayload_Swap struct { + Source *NoteSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Swap *v1alpha11.SwapPayload `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` +} + +func (m *StatePayload_Swap) Reset() { *m = StatePayload_Swap{} } +func (m *StatePayload_Swap) String() string { return proto.CompactTextString(m) } +func (*StatePayload_Swap) ProtoMessage() {} +func (*StatePayload_Swap) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{5, 2} +} +func (m *StatePayload_Swap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatePayload_Swap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatePayload_Swap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatePayload_Swap) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatePayload_Swap.Merge(m, src) +} +func (m *StatePayload_Swap) XXX_Size() int { + return m.Size() +} +func (m *StatePayload_Swap) XXX_DiscardUnknown() { + xxx_messageInfo_StatePayload_Swap.DiscardUnknown(m) +} + +var xxx_messageInfo_StatePayload_Swap proto.InternalMessageInfo + +func (m *StatePayload_Swap) GetSource() *NoteSource { + if m != nil { + return m.Source + } + return nil +} + +func (m *StatePayload_Swap) GetSwap() *v1alpha11.SwapPayload { + if m != nil { + return m.Swap + } + return nil +} + +type StatePayload_Position struct { + LpNft *v1alpha11.LpNft `protobuf:"bytes,2,opt,name=lp_nft,json=lpNft,proto3" json:"lp_nft,omitempty"` + Commitment *v1alpha1.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` +} + +func (m *StatePayload_Position) Reset() { *m = StatePayload_Position{} } +func (m *StatePayload_Position) String() string { return proto.CompactTextString(m) } +func (*StatePayload_Position) ProtoMessage() {} +func (*StatePayload_Position) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{5, 3} +} +func (m *StatePayload_Position) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatePayload_Position) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatePayload_Position.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatePayload_Position) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatePayload_Position.Merge(m, src) +} +func (m *StatePayload_Position) XXX_Size() int { + return m.Size() +} +func (m *StatePayload_Position) XXX_DiscardUnknown() { + xxx_messageInfo_StatePayload_Position.DiscardUnknown(m) +} + +var xxx_messageInfo_StatePayload_Position proto.InternalMessageInfo + +func (m *StatePayload_Position) GetLpNft() *v1alpha11.LpNft { + if m != nil { + return m.LpNft + } + return nil +} + +func (m *StatePayload_Position) GetCommitment() *v1alpha1.StateCommitment { + if m != nil { + return m.Commitment + } + return nil +} + +type KnownAssets struct { + Assets []*v1alpha1.Asset `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` +} + +func (m *KnownAssets) Reset() { *m = KnownAssets{} } +func (m *KnownAssets) String() string { return proto.CompactTextString(m) } +func (*KnownAssets) ProtoMessage() {} +func (*KnownAssets) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{6} +} +func (m *KnownAssets) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KnownAssets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_KnownAssets.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *KnownAssets) XXX_Merge(src proto.Message) { + xxx_messageInfo_KnownAssets.Merge(m, src) +} +func (m *KnownAssets) XXX_Size() int { + return m.Size() +} +func (m *KnownAssets) XXX_DiscardUnknown() { + xxx_messageInfo_KnownAssets.DiscardUnknown(m) +} + +var xxx_messageInfo_KnownAssets proto.InternalMessageInfo + +func (m *KnownAssets) GetAssets() []*v1alpha1.Asset { + if m != nil { + return m.Assets + } + return nil +} + +// A spicy transaction ID +type NoteSource struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *NoteSource) Reset() { *m = NoteSource{} } +func (m *NoteSource) String() string { return proto.CompactTextString(m) } +func (*NoteSource) ProtoMessage() {} +func (*NoteSource) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{7} +} +func (m *NoteSource) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NoteSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NoteSource.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NoteSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_NoteSource.Merge(m, src) +} +func (m *NoteSource) XXX_Size() int { + return m.Size() +} +func (m *NoteSource) XXX_DiscardUnknown() { + xxx_messageInfo_NoteSource.DiscardUnknown(m) +} + +var xxx_messageInfo_NoteSource proto.InternalMessageInfo + +func (m *NoteSource) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// A NoteSource paired with the height at which the note was spent +type SpendInfo struct { + NoteSource *NoteSource `protobuf:"bytes,1,opt,name=note_source,json=noteSource,proto3" json:"note_source,omitempty"` + SpendHeight uint64 `protobuf:"varint,2,opt,name=spend_height,json=spendHeight,proto3" json:"spend_height,omitempty"` +} + +func (m *SpendInfo) Reset() { *m = SpendInfo{} } +func (m *SpendInfo) String() string { return proto.CompactTextString(m) } +func (*SpendInfo) ProtoMessage() {} +func (*SpendInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{8} +} +func (m *SpendInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendInfo.Merge(m, src) +} +func (m *SpendInfo) XXX_Size() int { + return m.Size() +} +func (m *SpendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_SpendInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendInfo proto.InternalMessageInfo + +func (m *SpendInfo) GetNoteSource() *NoteSource { + if m != nil { + return m.NoteSource + } + return nil +} + +func (m *SpendInfo) GetSpendHeight() uint64 { + if m != nil { + return m.SpendHeight + } + return 0 +} + +type GenesisAppState struct { + ChainParams *ChainParameters `protobuf:"bytes,1,opt,name=chain_params,json=chainParams,proto3" json:"chain_params,omitempty"` + Validators []*v1alpha12.Validator `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators,omitempty"` + Allocations []*GenesisAppState_Allocation `protobuf:"bytes,3,rep,name=allocations,proto3" json:"allocations,omitempty"` +} + +func (m *GenesisAppState) Reset() { *m = GenesisAppState{} } +func (m *GenesisAppState) String() string { return proto.CompactTextString(m) } +func (*GenesisAppState) ProtoMessage() {} +func (*GenesisAppState) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{9} +} +func (m *GenesisAppState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GenesisAppState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GenesisAppState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GenesisAppState) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisAppState.Merge(m, src) +} +func (m *GenesisAppState) XXX_Size() int { + return m.Size() +} +func (m *GenesisAppState) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisAppState.DiscardUnknown(m) +} + +var xxx_messageInfo_GenesisAppState proto.InternalMessageInfo + +func (m *GenesisAppState) GetChainParams() *ChainParameters { + if m != nil { + return m.ChainParams + } + return nil +} + +func (m *GenesisAppState) GetValidators() []*v1alpha12.Validator { + if m != nil { + return m.Validators + } + return nil +} + +func (m *GenesisAppState) GetAllocations() []*GenesisAppState_Allocation { + if m != nil { + return m.Allocations + } + return nil +} + +type GenesisAppState_Allocation struct { + Amount uint64 `protobuf:"varint,1,opt,name=amount,proto3" json:"amount,omitempty"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Address *v1alpha1.Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *GenesisAppState_Allocation) Reset() { *m = GenesisAppState_Allocation{} } +func (m *GenesisAppState_Allocation) String() string { return proto.CompactTextString(m) } +func (*GenesisAppState_Allocation) ProtoMessage() {} +func (*GenesisAppState_Allocation) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{9, 0} +} +func (m *GenesisAppState_Allocation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GenesisAppState_Allocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GenesisAppState_Allocation.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GenesisAppState_Allocation) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisAppState_Allocation.Merge(m, src) +} +func (m *GenesisAppState_Allocation) XXX_Size() int { + return m.Size() +} +func (m *GenesisAppState_Allocation) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisAppState_Allocation.DiscardUnknown(m) +} + +var xxx_messageInfo_GenesisAppState_Allocation proto.InternalMessageInfo + +func (m *GenesisAppState_Allocation) GetAmount() uint64 { + if m != nil { + return m.Amount + } + return 0 +} + +func (m *GenesisAppState_Allocation) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *GenesisAppState_Allocation) GetAddress() *v1alpha1.Address { + if m != nil { + return m.Address + } + return nil +} + +func init() { + proto.RegisterType((*ChainParameters)(nil), "penumbra.core.chain.v1alpha1.ChainParameters") + proto.RegisterType((*Ratio)(nil), "penumbra.core.chain.v1alpha1.Ratio") + proto.RegisterType((*FmdParameters)(nil), "penumbra.core.chain.v1alpha1.FmdParameters") + proto.RegisterType((*AssetInfo)(nil), "penumbra.core.chain.v1alpha1.AssetInfo") + proto.RegisterType((*CompactBlock)(nil), "penumbra.core.chain.v1alpha1.CompactBlock") + proto.RegisterType((*StatePayload)(nil), "penumbra.core.chain.v1alpha1.StatePayload") + proto.RegisterType((*StatePayload_RolledUp)(nil), "penumbra.core.chain.v1alpha1.StatePayload.RolledUp") + proto.RegisterType((*StatePayload_Note)(nil), "penumbra.core.chain.v1alpha1.StatePayload.Note") + proto.RegisterType((*StatePayload_Swap)(nil), "penumbra.core.chain.v1alpha1.StatePayload.Swap") + proto.RegisterType((*StatePayload_Position)(nil), "penumbra.core.chain.v1alpha1.StatePayload.Position") + proto.RegisterType((*KnownAssets)(nil), "penumbra.core.chain.v1alpha1.KnownAssets") + proto.RegisterType((*NoteSource)(nil), "penumbra.core.chain.v1alpha1.NoteSource") + proto.RegisterType((*SpendInfo)(nil), "penumbra.core.chain.v1alpha1.SpendInfo") + proto.RegisterType((*GenesisAppState)(nil), "penumbra.core.chain.v1alpha1.GenesisAppState") + proto.RegisterType((*GenesisAppState_Allocation)(nil), "penumbra.core.chain.v1alpha1.GenesisAppState.Allocation") +} + +func init() { + proto.RegisterFile("penumbra/core/chain/v1alpha1/chain.proto", fileDescriptor_b0cedb8b84ba3224) +} + +var fileDescriptor_b0cedb8b84ba3224 = []byte{ + // 1572 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5b, 0x8f, 0x1b, 0x49, + 0x15, 0x1e, 0xcf, 0xd5, 0x73, 0x3c, 0x97, 0x50, 0x9b, 0x4b, 0xc7, 0x0c, 0x93, 0x89, 0xb5, 0x0b, + 0x4e, 0x56, 0xd8, 0xec, 0xec, 0x0a, 0x22, 0x2f, 0xa0, 0xcc, 0x25, 0x4c, 0xa2, 0x4d, 0xb2, 0x4e, + 0xcd, 0x12, 0x50, 0x14, 0xa9, 0x55, 0xee, 0x2e, 0xc7, 0xa5, 0x74, 0x57, 0x35, 0x5d, 0xd5, 0x33, + 0x19, 0x89, 0x47, 0x40, 0x3c, 0xf2, 0xc0, 0x2f, 0xe0, 0x91, 0x37, 0xfe, 0x05, 0x42, 0x42, 0xda, + 0x47, 0xb4, 0x4f, 0x68, 0xf2, 0xc6, 0xaf, 0x40, 0x75, 0xaa, 0x2f, 0xb6, 0x59, 0x3c, 0x3b, 0xab, + 0x3c, 0xd9, 0x75, 0xce, 0xf7, 0x7d, 0x75, 0xea, 0x54, 0xd5, 0x39, 0x5d, 0xd0, 0x4e, 0xb8, 0xcc, + 0xe2, 0x41, 0xca, 0xba, 0x81, 0x4a, 0x79, 0x37, 0x18, 0x31, 0x21, 0xbb, 0x27, 0x1f, 0xb1, 0x28, + 0x19, 0xb1, 0x8f, 0xdc, 0xb0, 0x93, 0xa4, 0xca, 0x28, 0xb2, 0x55, 0x20, 0x3b, 0x16, 0xd9, 0x71, + 0xae, 0x02, 0xd9, 0xbc, 0x3b, 0xa5, 0x93, 0x9e, 0x25, 0x46, 0x8d, 0x09, 0xe1, 0xd8, 0x29, 0x35, + 0xa7, 0xe6, 0xd4, 0x86, 0xbd, 0xe6, 0x15, 0x14, 0x87, 0x39, 0xf2, 0xfd, 0x49, 0x64, 0xc8, 0xdf, + 0x54, 0xb8, 0x90, 0xbf, 0x71, 0xa8, 0xd6, 0x3f, 0x57, 0x60, 0xf3, 0xc0, 0x86, 0xd3, 0x67, 0x29, + 0x8b, 0xb9, 0xe1, 0xa9, 0x26, 0x37, 0xa1, 0x8e, 0x11, 0xfa, 0x22, 0xf4, 0x6a, 0x3b, 0xb5, 0xf6, + 0x2a, 0x5d, 0xc1, 0xf1, 0xa3, 0x90, 0x7c, 0x00, 0x1b, 0x3c, 0x51, 0xc1, 0xc8, 0x0f, 0xb3, 0x94, + 0x19, 0xa1, 0xa4, 0x37, 0xbf, 0x53, 0x6b, 0x2f, 0xd2, 0x75, 0xb4, 0x1e, 0xe6, 0x46, 0x72, 0x07, + 0xae, 0x64, 0x72, 0xa0, 0x64, 0x28, 0xe4, 0x2b, 0x1f, 0x5d, 0xda, 0x5b, 0x40, 0xe0, 0x66, 0x69, + 0x7f, 0x80, 0x66, 0xf2, 0x09, 0x5c, 0x67, 0x81, 0x11, 0x27, 0xdc, 0x3f, 0x61, 0x91, 0x08, 0x99, + 0x51, 0xa9, 0x1f, 0x89, 0x58, 0x18, 0x6f, 0x11, 0x09, 0x57, 0x9d, 0xf7, 0x79, 0xe1, 0x7c, 0x6c, + 0x7d, 0xa4, 0x0d, 0x57, 0x06, 0x4c, 0x73, 0x3f, 0xe5, 0xa7, 0x2c, 0x0d, 0xfd, 0x94, 0x19, 0xee, + 0xad, 0x22, 0x7e, 0xc3, 0xda, 0x29, 0x9a, 0x29, 0x33, 0x9c, 0xdc, 0x87, 0x2d, 0x1d, 0x31, 0x3d, + 0xb2, 0x91, 0x24, 0x5c, 0xb2, 0xc8, 0x9c, 0xf9, 0xb1, 0xd0, 0x03, 0x3e, 0x62, 0x27, 0x42, 0xa5, + 0xde, 0x12, 0xb2, 0x9a, 0x05, 0xa6, 0xef, 0x20, 0x4f, 0x2a, 0x04, 0xe9, 0xc1, 0xcd, 0xff, 0x51, + 0x08, 0xd5, 0xa9, 0x34, 0x22, 0xe6, 0x1e, 0x20, 0xfd, 0xc6, 0x14, 0xfd, 0x30, 0x77, 0x93, 0x9f, + 0x80, 0xa7, 0xc5, 0x2b, 0xc9, 0x43, 0x7f, 0x10, 0xa9, 0xe0, 0xb5, 0xf6, 0x4f, 0x85, 0x0c, 0xd5, + 0xa9, 0x1f, 0x71, 0xe9, 0x35, 0x90, 0x7a, 0xcd, 0xf9, 0xf7, 0xd1, 0xfd, 0x2b, 0xf4, 0x3e, 0xe6, + 0x92, 0xec, 0xc2, 0xb5, 0x58, 0x68, 0x5d, 0x11, 0x63, 0xf6, 0x46, 0xc4, 0x59, 0xec, 0xad, 0x21, + 0xeb, 0x3d, 0xe7, 0x74, 0xac, 0x27, 0xce, 0x45, 0x6e, 0x41, 0x43, 0x0c, 0x02, 0x9f, 0x4b, 0x36, + 0x88, 0x78, 0xe8, 0x2d, 0xef, 0xd4, 0xda, 0x75, 0x0a, 0x62, 0x10, 0x3c, 0x70, 0x16, 0xf2, 0x00, + 0x6e, 0x09, 0x39, 0x50, 0x99, 0x0c, 0x7d, 0x11, 0xe8, 0xdd, 0x1f, 0xf9, 0x26, 0x65, 0x52, 0x0f, + 0x79, 0xaa, 0x4b, 0xd2, 0x0a, 0x92, 0xb6, 0x72, 0xd8, 0x23, 0x8b, 0xfa, 0xa2, 0x00, 0x15, 0x32, + 0x47, 0xb0, 0xa3, 0x32, 0x33, 0x5b, 0xa7, 0x8e, 0x3a, 0xdf, 0x2b, 0x70, 0x5f, 0x2f, 0xf4, 0x09, + 0x5c, 0x4f, 0x52, 0x95, 0x28, 0xcd, 0x22, 0xff, 0x44, 0x19, 0x9b, 0x60, 0xb7, 0x5a, 0xef, 0xaa, + 0xdb, 0xfb, 0xc2, 0xfb, 0x1c, 0x9d, 0x6e, 0xb5, 0xe4, 0xc7, 0x70, 0xa3, 0x64, 0x85, 0x3c, 0x51, + 0x5a, 0x18, 0x9f, 0xc5, 0x2a, 0x93, 0xc6, 0xbb, 0xe6, 0x52, 0x5a, 0xb8, 0x0f, 0x9d, 0x77, 0x0f, + 0x9d, 0x36, 0xa5, 0xd5, 0x6c, 0xf6, 0x38, 0xf9, 0xbf, 0xc9, 0x54, 0x9a, 0xc5, 0xde, 0x75, 0x3c, + 0xe3, 0xef, 0x95, 0x93, 0x59, 0xdf, 0x33, 0x74, 0x4d, 0xcc, 0x95, 0x30, 0xad, 0x7d, 0x33, 0x4a, + 0xb9, 0x1e, 0xa9, 0x28, 0xf4, 0x6e, 0x20, 0xab, 0x94, 0xec, 0x33, 0xad, 0xbf, 0x28, 0x9c, 0xe4, + 0x1e, 0x78, 0x25, 0x0f, 0xcf, 0xc6, 0x18, 0xd1, 0x43, 0x62, 0xb9, 0xf2, 0x63, 0xeb, 0xae, 0x98, + 0x3f, 0x83, 0xef, 0x86, 0x4c, 0xf9, 0x3a, 0xe1, 0x32, 0xf4, 0x0b, 0x4c, 0x95, 0xd7, 0x9b, 0x98, + 0x57, 0x2f, 0x64, 0xea, 0xd8, 0x22, 0xfa, 0x05, 0x20, 0x4f, 0x69, 0xeb, 0x08, 0x96, 0xa8, 0xbd, + 0x83, 0x64, 0x0b, 0x56, 0x65, 0x16, 0xf3, 0xd4, 0xde, 0x19, 0xbc, 0xc5, 0x8b, 0xb4, 0x32, 0x90, + 0x1d, 0x68, 0x84, 0x5c, 0xaa, 0x58, 0x48, 0xf4, 0xbb, 0x4b, 0x3c, 0x6e, 0x6a, 0x05, 0xb0, 0xfe, + 0x8b, 0x38, 0x1c, 0xab, 0x0a, 0x1f, 0xc0, 0x46, 0x92, 0xf2, 0x40, 0x68, 0xa1, 0xa4, 0x3f, 0x10, + 0x46, 0xa3, 0xea, 0x3a, 0x5d, 0x2f, 0xad, 0xfb, 0xc2, 0x68, 0xf2, 0x21, 0x10, 0xa6, 0x7d, 0x35, + 0x74, 0x3b, 0xe9, 0x8f, 0xb8, 0x78, 0x35, 0x32, 0xf9, 0x04, 0x9b, 0x4c, 0x7f, 0x3e, 0xc4, 0x5d, + 0x7c, 0x88, 0xe6, 0xd6, 0x57, 0x35, 0x58, 0xdd, 0xd3, 0x9a, 0x9b, 0x47, 0x72, 0xa8, 0xc8, 0x1e, + 0xd4, 0x99, 0x1d, 0x14, 0x75, 0xa7, 0xb1, 0xfb, 0xfd, 0xce, 0x54, 0xe1, 0x74, 0xa5, 0xb0, 0xa8, + 0x63, 0x1d, 0xc7, 0x0d, 0xe9, 0x0a, 0x73, 0x7f, 0x48, 0x0f, 0x96, 0x70, 0x11, 0x38, 0x61, 0x63, + 0xf7, 0xfd, 0x0b, 0xf8, 0x87, 0x16, 0x4b, 0x1d, 0xe5, 0xff, 0x44, 0xbe, 0xf0, 0xb5, 0x91, 0x93, + 0xdb, 0xb0, 0x66, 0x94, 0xb1, 0xbb, 0x9b, 0x25, 0x49, 0x74, 0x96, 0x17, 0xab, 0x06, 0xda, 0x8e, + 0xd1, 0xd4, 0xfa, 0xdd, 0x12, 0xac, 0x1d, 0xa8, 0x38, 0x61, 0x81, 0x41, 0x26, 0xb9, 0x0e, 0xcb, + 0xb9, 0xa8, 0xdb, 0x8f, 0x7c, 0x44, 0x9e, 0xc1, 0x86, 0x36, 0xcc, 0x70, 0x3f, 0x61, 0x67, 0x91, + 0x62, 0xa1, 0xf6, 0xe6, 0x77, 0x16, 0xda, 0x8d, 0xdd, 0xbb, 0x9d, 0x59, 0x6d, 0xa3, 0x73, 0x6c, + 0x39, 0x7d, 0x47, 0xa1, 0xeb, 0x7a, 0x6c, 0xa4, 0xc9, 0x43, 0x00, 0x99, 0x45, 0x91, 0x18, 0x0a, + 0x9e, 0xda, 0xd2, 0x6b, 0xe5, 0xda, 0x17, 0x24, 0xe3, 0x69, 0x41, 0xa0, 0x63, 0x5c, 0xab, 0xe4, + 0xf2, 0x91, 0x2a, 0xe5, 0x6a, 0x72, 0x63, 0xf7, 0xce, 0x05, 0x4a, 0x4f, 0x78, 0xfa, 0x3a, 0xe2, + 0x54, 0x29, 0x43, 0x57, 0x91, 0x6c, 0xff, 0x5a, 0x25, 0xd7, 0x3b, 0x50, 0xe9, 0x3b, 0x97, 0x56, + 0x42, 0x32, 0x2a, 0xdd, 0x81, 0x2b, 0xd5, 0xed, 0x32, 0x2c, 0x35, 0x3c, 0xc4, 0x8a, 0x51, 0xa7, + 0x9b, 0xe5, 0xad, 0x72, 0x66, 0x42, 0x61, 0x63, 0x18, 0x87, 0x7e, 0x52, 0x9e, 0x63, 0x2f, 0xc4, + 0x89, 0x3f, 0x9c, 0x9d, 0xdb, 0x89, 0xa3, 0x4f, 0xd7, 0x87, 0x13, 0x37, 0x81, 0xc2, 0x9a, 0x3e, + 0x65, 0x89, 0xaf, 0x32, 0x93, 0x64, 0x46, 0x7b, 0x4b, 0x98, 0xde, 0xee, 0x94, 0xa2, 0xed, 0xb1, + 0xa5, 0xde, 0x3e, 0x33, 0xc1, 0xe8, 0xf8, 0x94, 0x25, 0x9f, 0x23, 0xe7, 0x90, 0x19, 0x46, 0x1b, + 0xba, 0x1c, 0x6b, 0xf2, 0x6b, 0xb8, 0xe2, 0x7a, 0xee, 0x58, 0xa4, 0xcb, 0x18, 0xe9, 0x0f, 0x67, + 0x47, 0x3a, 0xd5, 0xbc, 0xe9, 0x66, 0x30, 0x69, 0x68, 0x7d, 0xb5, 0x0c, 0x6b, 0xe3, 0x47, 0x85, + 0x50, 0x58, 0x4d, 0x55, 0x14, 0xf1, 0xd0, 0xcf, 0x92, 0xfc, 0x9e, 0x7d, 0xfc, 0xcd, 0x4f, 0x5a, + 0x87, 0x22, 0xf7, 0x97, 0xc9, 0xc3, 0x39, 0x5a, 0x4f, 0xf3, 0xff, 0xe4, 0x01, 0x2c, 0x4a, 0x65, + 0x78, 0x7e, 0xed, 0xba, 0x97, 0x90, 0x7b, 0xaa, 0x0c, 0x7f, 0x38, 0x47, 0x91, 0x6e, 0x65, 0x6c, + 0x52, 0xf0, 0xd2, 0x5d, 0x4e, 0xc6, 0xe6, 0xd6, 0xca, 0x58, 0x3a, 0x79, 0x06, 0x75, 0x2c, 0xfc, + 0xf6, 0xfb, 0x64, 0xf1, 0xd2, 0x0b, 0xec, 0xe7, 0x54, 0xbb, 0xc0, 0x42, 0xa6, 0xf9, 0x02, 0xea, + 0xc5, 0xc2, 0xc9, 0x53, 0x80, 0x40, 0xc5, 0xb1, 0x30, 0x31, 0x97, 0x26, 0xcf, 0x60, 0xe7, 0x82, + 0x83, 0x8c, 0x33, 0x1c, 0x94, 0x2c, 0x3a, 0xa6, 0xd0, 0xfc, 0x63, 0x0d, 0x16, 0x6d, 0x1a, 0xc8, + 0x7d, 0x58, 0xd6, 0x2a, 0x4b, 0x03, 0x9e, 0x8b, 0xb6, 0x67, 0x47, 0x6d, 0x39, 0xc7, 0x88, 0xa7, + 0x39, 0x8f, 0xfc, 0x7c, 0x62, 0x1f, 0xee, 0x5e, 0x74, 0xe3, 0x55, 0x55, 0x40, 0x90, 0xd7, 0xfc, + 0x7d, 0x0d, 0x16, 0x6d, 0x2a, 0xdf, 0x41, 0x28, 0x9f, 0xe6, 0x7b, 0xe9, 0x42, 0xf9, 0xc1, 0xac, + 0xdb, 0x61, 0x67, 0x2c, 0xe3, 0xb0, 0xa4, 0xe6, 0x9f, 0x6b, 0x50, 0x2f, 0xf6, 0x81, 0xdc, 0x83, + 0xe5, 0x28, 0xf1, 0xe5, 0xd0, 0xe4, 0x5a, 0xb7, 0x67, 0x69, 0x3d, 0x4e, 0x9e, 0x0e, 0x0d, 0x5d, + 0x8a, 0xec, 0xcf, 0xbb, 0xde, 0xa9, 0xfd, 0x4d, 0x58, 0x9f, 0xa8, 0xd4, 0xad, 0xcf, 0xa0, 0xf1, + 0x99, 0x54, 0xa7, 0x12, 0x1b, 0x91, 0x26, 0x3f, 0x85, 0x65, 0xec, 0x44, 0xb6, 0x37, 0x2e, 0x7c, + 0x83, 0xfe, 0x83, 0x34, 0x9a, 0x73, 0x5a, 0x2d, 0x80, 0x2a, 0x8f, 0xe4, 0x2a, 0x2c, 0x09, 0x29, + 0xb9, 0x6b, 0xde, 0x6b, 0xd4, 0x0d, 0x5a, 0x67, 0xb0, 0x8a, 0x8d, 0x1f, 0x1b, 0xe6, 0x23, 0x68, + 0xd8, 0x5d, 0xf3, 0xbf, 0xe5, 0x4e, 0x81, 0xac, 0x66, 0xbb, 0x0d, 0x6b, 0xee, 0x93, 0x63, 0xa2, + 0x61, 0x37, 0xd0, 0x96, 0x37, 0xeb, 0x3f, 0x2c, 0xc0, 0xe6, 0x11, 0x97, 0x5c, 0x0b, 0xbd, 0x97, + 0x24, 0x98, 0x26, 0xd2, 0x87, 0xb5, 0xb1, 0xb2, 0xa5, 0xf3, 0x10, 0x2e, 0x59, 0xb2, 0x1a, 0x55, + 0xc9, 0xd2, 0xe4, 0x08, 0xa0, 0x7c, 0x08, 0x14, 0x8d, 0x70, 0xfa, 0xf0, 0xb8, 0x67, 0x4e, 0xa9, + 0x57, 0xbe, 0x0d, 0xe8, 0x18, 0x95, 0xbc, 0x80, 0x06, 0x8b, 0x22, 0x15, 0xe0, 0x8b, 0xa4, 0xe8, + 0x81, 0xf7, 0x66, 0x47, 0x36, 0xb5, 0xbc, 0xce, 0x5e, 0x29, 0x40, 0xc7, 0xc5, 0x9a, 0xbf, 0x05, + 0xa8, 0x5c, 0xb6, 0xaf, 0xe7, 0xdf, 0x9f, 0x79, 0x5f, 0x77, 0x23, 0xbb, 0x83, 0xd5, 0xc7, 0xc8, + 0x6a, 0xf1, 0x99, 0x71, 0x1f, 0x56, 0x58, 0x18, 0xa6, 0x5c, 0xeb, 0xbc, 0xcc, 0x5d, 0xf8, 0x91, + 0xe3, 0xd0, 0xb4, 0xa0, 0xed, 0xff, 0x6d, 0xfe, 0xef, 0xe7, 0xdb, 0xb5, 0x2f, 0xcf, 0xb7, 0x6b, + 0xff, 0x3e, 0xdf, 0xae, 0xfd, 0xe9, 0xed, 0xf6, 0xdc, 0x97, 0x6f, 0xb7, 0xe7, 0xfe, 0xf5, 0x76, + 0x7b, 0x0e, 0x76, 0x02, 0x15, 0xcf, 0x5c, 0xe2, 0x3e, 0xb8, 0xec, 0xdb, 0xc7, 0x5f, 0xbf, 0xf6, + 0xe2, 0xf9, 0x2b, 0x61, 0x46, 0xd9, 0xa0, 0x13, 0xa8, 0xb8, 0x1b, 0x28, 0x1d, 0x2b, 0xdd, 0x4d, + 0x79, 0xc4, 0xce, 0x78, 0xda, 0x3d, 0xd9, 0x2d, 0xff, 0xa2, 0x84, 0xee, 0xce, 0x7a, 0xee, 0x7e, + 0x8a, 0xc3, 0x62, 0xf4, 0x97, 0xf9, 0x85, 0xfe, 0xc1, 0xc1, 0x5f, 0xe7, 0xb7, 0xfa, 0x45, 0x28, + 0x07, 0x36, 0x14, 0x9c, 0xba, 0xf3, 0x3c, 0x07, 0xfd, 0xa3, 0x72, 0xbf, 0xb4, 0xee, 0x97, 0xe8, + 0x7e, 0x59, 0xb8, 0xcf, 0xe7, 0xdb, 0xb3, 0xdc, 0x2f, 0x8f, 0xfa, 0xfb, 0x4f, 0xb8, 0x61, 0x21, + 0x33, 0xec, 0x3f, 0xf3, 0xb7, 0x0a, 0x68, 0xaf, 0x67, 0xb1, 0xbd, 0x1e, 0x82, 0x7b, 0xbd, 0x02, + 0x3d, 0x58, 0xc6, 0xe7, 0xee, 0xc7, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x31, 0xa7, 0xa5, 0x64, + 0xb4, 0x0f, 0x00, 0x00, +} + +func (m *ChainParameters) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ChainParameters) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ChainParameters) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DaoSpendProposalsEnabled { + i-- + if m.DaoSpendProposalsEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc8 + } + if len(m.ProposalSlashThreshold) > 0 { + i -= len(m.ProposalSlashThreshold) + copy(dAtA[i:], m.ProposalSlashThreshold) + i = encodeVarintChain(dAtA, i, uint64(len(m.ProposalSlashThreshold))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + if len(m.ProposalPassThreshold) > 0 { + i -= len(m.ProposalPassThreshold) + copy(dAtA[i:], m.ProposalPassThreshold) + i = encodeVarintChain(dAtA, i, uint64(len(m.ProposalPassThreshold))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + if len(m.ProposalValidQuorum) > 0 { + i -= len(m.ProposalValidQuorum) + copy(dAtA[i:], m.ProposalValidQuorum) + i = encodeVarintChain(dAtA, i, uint64(len(m.ProposalValidQuorum))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + if m.ProposalDepositAmount != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.ProposalDepositAmount)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } + if m.ProposalVotingBlocks != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.ProposalVotingBlocks)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if m.MissedBlocksMaximum != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.MissedBlocksMaximum)) + i-- + dAtA[i] = 0x60 + } + if m.SignedBlocksWindowLen != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.SignedBlocksWindowLen)) + i-- + dAtA[i] = 0x58 + } + if m.SlashingPenaltyDowntime != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.SlashingPenaltyDowntime)) + i-- + dAtA[i] = 0x50 + } + if m.BaseRewardRate != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.BaseRewardRate)) + i-- + dAtA[i] = 0x48 + } + if m.OutboundIcs20TransfersEnabled { + i-- + if m.OutboundIcs20TransfersEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if m.InboundIcs20TransfersEnabled { + i-- + if m.InboundIcs20TransfersEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + } + if m.IbcEnabled { + i-- + if m.IbcEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if m.SlashingPenaltyMisbehavior != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.SlashingPenaltyMisbehavior)) + i-- + dAtA[i] = 0x28 + } + if m.ActiveValidatorLimit != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.ActiveValidatorLimit)) + i-- + dAtA[i] = 0x20 + } + if m.UnbondingEpochs != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.UnbondingEpochs)) + i-- + dAtA[i] = 0x18 + } + if m.EpochDuration != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.EpochDuration)) + i-- + dAtA[i] = 0x10 + } + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintChain(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Ratio) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Ratio) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Ratio) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Denominator != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.Denominator)) + i-- + dAtA[i] = 0x10 + } + if m.Numerator != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.Numerator)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *FmdParameters) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FmdParameters) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FmdParameters) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AsOfBlockHeight != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.AsOfBlockHeight)) + i-- + dAtA[i] = 0x10 + } + if m.PrecisionBits != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.PrecisionBits)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *AssetInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AssetInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AssetInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.TotalSupply != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.TotalSupply)) + i-- + dAtA[i] = 0x20 + } + if m.AsOfBlockHeight != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.AsOfBlockHeight)) + i-- + dAtA[i] = 0x18 + } + if m.Denom != nil { + { + size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.AssetId != nil { + { + size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CompactBlock) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CompactBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CompactBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.FmdParameters != nil { + { + size, err := m.FmdParameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6 + i-- + dAtA[i] = 0xa2 + } + if m.ProposalStarted { + i-- + if m.ProposalStarted { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if m.EpochRoot != nil { + { + size, err := m.EpochRoot.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + if m.ChainParameters != nil { + { + size, err := m.ChainParameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if len(m.SwapOutputs) > 0 { + for iNdEx := len(m.SwapOutputs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SwapOutputs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.BlockRoot != nil { + { + size, err := m.BlockRoot.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.Nullifiers) > 0 { + for iNdEx := len(m.Nullifiers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Nullifiers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.StatePayloads) > 0 { + for iNdEx := len(m.StatePayloads) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.StatePayloads[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Height != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *StatePayload) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatePayload) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.StatePayload != nil { + { + size := m.StatePayload.Size() + i -= size + if _, err := m.StatePayload.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *StatePayload_RolledUp_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_RolledUp_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RolledUp != nil { + { + size, err := m.RolledUp.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *StatePayload_Note_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_Note_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *StatePayload_Swap_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_Swap_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *StatePayload_Position_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_Position_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Position != nil { + { + size, err := m.Position.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *StatePayload_RolledUp) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatePayload_RolledUp) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_RolledUp) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Commitment != nil { + { + size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StatePayload_Note) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatePayload_Note) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_Note) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Source != nil { + { + size, err := m.Source.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StatePayload_Swap) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatePayload_Swap) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_Swap) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Source != nil { + { + size, err := m.Source.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StatePayload_Position) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatePayload_Position) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatePayload_Position) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LpNft != nil { + { + size, err := m.LpNft.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Commitment != nil { + { + size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KnownAssets) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KnownAssets) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KnownAssets) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Assets) > 0 { + for iNdEx := len(m.Assets) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Assets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *NoteSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NoteSource) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NoteSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintChain(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SpendHeight != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.SpendHeight)) + i-- + dAtA[i] = 0x10 + } + if m.NoteSource != nil { + { + size, err := m.NoteSource.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenesisAppState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenesisAppState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GenesisAppState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Allocations) > 0 { + for iNdEx := len(m.Allocations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Allocations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Validators) > 0 { + for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.ChainParams != nil { + { + size, err := m.ChainParams.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenesisAppState_Allocation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenesisAppState_Allocation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GenesisAppState_Allocation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintChain(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0x12 + } + if m.Amount != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.Amount)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintChain(dAtA []byte, offset int, v uint64) int { + offset -= sovChain(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *ChainParameters) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovChain(uint64(l)) + } + if m.EpochDuration != 0 { + n += 1 + sovChain(uint64(m.EpochDuration)) + } + if m.UnbondingEpochs != 0 { + n += 1 + sovChain(uint64(m.UnbondingEpochs)) + } + if m.ActiveValidatorLimit != 0 { + n += 1 + sovChain(uint64(m.ActiveValidatorLimit)) + } + if m.SlashingPenaltyMisbehavior != 0 { + n += 1 + sovChain(uint64(m.SlashingPenaltyMisbehavior)) + } + if m.IbcEnabled { + n += 2 + } + if m.InboundIcs20TransfersEnabled { + n += 2 + } + if m.OutboundIcs20TransfersEnabled { + n += 2 + } + if m.BaseRewardRate != 0 { + n += 1 + sovChain(uint64(m.BaseRewardRate)) + } + if m.SlashingPenaltyDowntime != 0 { + n += 1 + sovChain(uint64(m.SlashingPenaltyDowntime)) + } + if m.SignedBlocksWindowLen != 0 { + n += 1 + sovChain(uint64(m.SignedBlocksWindowLen)) + } + if m.MissedBlocksMaximum != 0 { + n += 1 + sovChain(uint64(m.MissedBlocksMaximum)) + } + if m.ProposalVotingBlocks != 0 { + n += 2 + sovChain(uint64(m.ProposalVotingBlocks)) + } + if m.ProposalDepositAmount != 0 { + n += 2 + sovChain(uint64(m.ProposalDepositAmount)) + } + l = len(m.ProposalValidQuorum) + if l > 0 { + n += 2 + l + sovChain(uint64(l)) + } + l = len(m.ProposalPassThreshold) + if l > 0 { + n += 2 + l + sovChain(uint64(l)) + } + l = len(m.ProposalSlashThreshold) + if l > 0 { + n += 2 + l + sovChain(uint64(l)) + } + if m.DaoSpendProposalsEnabled { + n += 3 + } + return n +} + +func (m *Ratio) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Numerator != 0 { + n += 1 + sovChain(uint64(m.Numerator)) + } + if m.Denominator != 0 { + n += 1 + sovChain(uint64(m.Denominator)) + } + return n +} + +func (m *FmdParameters) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PrecisionBits != 0 { + n += 1 + sovChain(uint64(m.PrecisionBits)) + } + if m.AsOfBlockHeight != 0 { + n += 1 + sovChain(uint64(m.AsOfBlockHeight)) + } + return n +} + +func (m *AssetInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AssetId != nil { + l = m.AssetId.Size() + n += 1 + l + sovChain(uint64(l)) + } + if m.Denom != nil { + l = m.Denom.Size() + n += 1 + l + sovChain(uint64(l)) + } + if m.AsOfBlockHeight != 0 { + n += 1 + sovChain(uint64(m.AsOfBlockHeight)) + } + if m.TotalSupply != 0 { + n += 1 + sovChain(uint64(m.TotalSupply)) + } + return n +} + +func (m *CompactBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Height != 0 { + n += 1 + sovChain(uint64(m.Height)) + } + if len(m.StatePayloads) > 0 { + for _, e := range m.StatePayloads { + l = e.Size() + n += 1 + l + sovChain(uint64(l)) + } + } + if len(m.Nullifiers) > 0 { + for _, e := range m.Nullifiers { + l = e.Size() + n += 1 + l + sovChain(uint64(l)) + } + } + if m.BlockRoot != nil { + l = m.BlockRoot.Size() + n += 1 + l + sovChain(uint64(l)) + } + if len(m.SwapOutputs) > 0 { + for _, e := range m.SwapOutputs { + l = e.Size() + n += 1 + l + sovChain(uint64(l)) + } + } + if m.ChainParameters != nil { + l = m.ChainParameters.Size() + n += 1 + l + sovChain(uint64(l)) + } + if m.EpochRoot != nil { + l = m.EpochRoot.Size() + n += 2 + l + sovChain(uint64(l)) + } + if m.ProposalStarted { + n += 3 + } + if m.FmdParameters != nil { + l = m.FmdParameters.Size() + n += 2 + l + sovChain(uint64(l)) + } + return n +} + +func (m *StatePayload) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.StatePayload != nil { + n += m.StatePayload.Size() + } + return n +} + +func (m *StatePayload_RolledUp_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RolledUp != nil { + l = m.RolledUp.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} +func (m *StatePayload_Note_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} +func (m *StatePayload_Swap_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} +func (m *StatePayload_Position_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Position != nil { + l = m.Position.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} +func (m *StatePayload_RolledUp) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Commitment != nil { + l = m.Commitment.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} + +func (m *StatePayload_Note) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Source != nil { + l = m.Source.Size() + n += 1 + l + sovChain(uint64(l)) + } + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} + +func (m *StatePayload_Swap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Source != nil { + l = m.Source.Size() + n += 1 + l + sovChain(uint64(l)) + } + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} + +func (m *StatePayload_Position) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Commitment != nil { + l = m.Commitment.Size() + n += 1 + l + sovChain(uint64(l)) + } + if m.LpNft != nil { + l = m.LpNft.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} + +func (m *KnownAssets) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Assets) > 0 { + for _, e := range m.Assets { + l = e.Size() + n += 1 + l + sovChain(uint64(l)) + } + } + return n +} + +func (m *NoteSource) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovChain(uint64(l)) + } + return n +} + +func (m *SpendInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteSource != nil { + l = m.NoteSource.Size() + n += 1 + l + sovChain(uint64(l)) + } + if m.SpendHeight != 0 { + n += 1 + sovChain(uint64(m.SpendHeight)) + } + return n +} + +func (m *GenesisAppState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ChainParams != nil { + l = m.ChainParams.Size() + n += 1 + l + sovChain(uint64(l)) + } + if len(m.Validators) > 0 { + for _, e := range m.Validators { + l = e.Size() + n += 1 + l + sovChain(uint64(l)) + } + } + if len(m.Allocations) > 0 { + for _, e := range m.Allocations { + l = e.Size() + n += 1 + l + sovChain(uint64(l)) + } + } + return n +} + +func (m *GenesisAppState_Allocation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Amount != 0 { + n += 1 + sovChain(uint64(m.Amount)) + } + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovChain(uint64(l)) + } + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovChain(uint64(l)) + } + return n +} + +func sovChain(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozChain(x uint64) (n int) { + return sovChain(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *ChainParameters) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ChainParameters: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ChainParameters: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochDuration", wireType) + } + m.EpochDuration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochDuration |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingEpochs", wireType) + } + m.UnbondingEpochs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UnbondingEpochs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveValidatorLimit", wireType) + } + m.ActiveValidatorLimit = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ActiveValidatorLimit |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SlashingPenaltyMisbehavior", wireType) + } + m.SlashingPenaltyMisbehavior = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SlashingPenaltyMisbehavior |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IbcEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IbcEnabled = bool(v != 0) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field InboundIcs20TransfersEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.InboundIcs20TransfersEnabled = bool(v != 0) + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OutboundIcs20TransfersEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.OutboundIcs20TransfersEnabled = bool(v != 0) + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseRewardRate", wireType) + } + m.BaseRewardRate = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseRewardRate |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SlashingPenaltyDowntime", wireType) + } + m.SlashingPenaltyDowntime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SlashingPenaltyDowntime |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SignedBlocksWindowLen", wireType) + } + m.SignedBlocksWindowLen = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SignedBlocksWindowLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MissedBlocksMaximum", wireType) + } + m.MissedBlocksMaximum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MissedBlocksMaximum |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalVotingBlocks", wireType) + } + m.ProposalVotingBlocks = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ProposalVotingBlocks |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalDepositAmount", wireType) + } + m.ProposalDepositAmount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ProposalDepositAmount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalValidQuorum", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProposalValidQuorum = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalPassThreshold", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProposalPassThreshold = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 24: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalSlashThreshold", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProposalSlashThreshold = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 25: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoSpendProposalsEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DaoSpendProposalsEnabled = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Ratio) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Ratio: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Ratio: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Numerator", wireType) + } + m.Numerator = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Numerator |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Denominator", wireType) + } + m.Denominator = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Denominator |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FmdParameters) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FmdParameters: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FmdParameters: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PrecisionBits", wireType) + } + m.PrecisionBits = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PrecisionBits |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AsOfBlockHeight", wireType) + } + m.AsOfBlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AsOfBlockHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AssetInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AssetId == nil { + m.AssetId = &v1alpha1.AssetId{} + } + if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Denom == nil { + m.Denom = &v1alpha1.Denom{} + } + if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AsOfBlockHeight", wireType) + } + m.AsOfBlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AsOfBlockHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalSupply", wireType) + } + m.TotalSupply = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TotalSupply |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CompactBlock) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CompactBlock: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CompactBlock: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StatePayloads", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StatePayloads = append(m.StatePayloads, &StatePayload{}) + if err := m.StatePayloads[len(m.StatePayloads)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifiers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nullifiers = append(m.Nullifiers, &v1alpha1.Nullifier{}) + if err := m.Nullifiers[len(m.Nullifiers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockRoot", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BlockRoot == nil { + m.BlockRoot = &v1alpha1.MerkleRoot{} + } + if err := m.BlockRoot.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapOutputs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SwapOutputs = append(m.SwapOutputs, &v1alpha11.BatchSwapOutputData{}) + if err := m.SwapOutputs[len(m.SwapOutputs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainParameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChainParameters == nil { + m.ChainParameters = &ChainParameters{} + } + if err := m.ChainParameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochRoot", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EpochRoot == nil { + m.EpochRoot = &v1alpha1.MerkleRoot{} + } + if err := m.EpochRoot.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalStarted", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ProposalStarted = bool(v != 0) + case 100: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FmdParameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FmdParameters == nil { + m.FmdParameters = &FmdParameters{} + } + if err := m.FmdParameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatePayload) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatePayload: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatePayload: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RolledUp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &StatePayload_RolledUp{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.StatePayload = &StatePayload_RolledUp_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &StatePayload_Note{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.StatePayload = &StatePayload_Note_{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &StatePayload_Swap{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.StatePayload = &StatePayload_Swap_{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &StatePayload_Position{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.StatePayload = &StatePayload_Position_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatePayload_RolledUp) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolledUp: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolledUp: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Commitment == nil { + m.Commitment = &v1alpha1.StateCommitment{} + } + if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatePayload_Note) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Note: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Note: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Source == nil { + m.Source = &NoteSource{} + } + if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha1.NotePayload{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatePayload_Swap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Swap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Swap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Source == nil { + m.Source = &NoteSource{} + } + if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Swap == nil { + m.Swap = &v1alpha11.SwapPayload{} + } + if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatePayload_Position) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Position: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Position: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Commitment == nil { + m.Commitment = &v1alpha1.StateCommitment{} + } + if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LpNft", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LpNft == nil { + m.LpNft = &v1alpha11.LpNft{} + } + if err := m.LpNft.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KnownAssets) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KnownAssets: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KnownAssets: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Assets", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Assets = append(m.Assets, &v1alpha1.Asset{}) + if err := m.Assets[len(m.Assets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoteSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoteSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoteSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteSource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NoteSource == nil { + m.NoteSource = &NoteSource{} + } + if err := m.NoteSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SpendHeight", wireType) + } + m.SpendHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SpendHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenesisAppState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenesisAppState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenesisAppState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainParams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChainParams == nil { + m.ChainParams = &ChainParameters{} + } + if err := m.ChainParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Validators = append(m.Validators, &v1alpha12.Validator{}) + if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Allocations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Allocations = append(m.Allocations, &GenesisAppState_Allocation{}) + if err := m.Allocations[len(m.Allocations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenesisAppState_Allocation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Allocation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Allocation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + m.Amount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Amount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha1.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipChain(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowChain + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowChain + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowChain + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthChain + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupChain + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthChain + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthChain = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowChain = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupChain = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go new file mode 100644 index 000000000..fa0a1ff3e --- /dev/null +++ b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go @@ -0,0 +1,7224 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/crypto/v1alpha1/crypto.proto + +package cryptov1alpha1 + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// Specifies fees paid by a transaction. +type Fee struct { + // The amount of the token used to pay fees. + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + // If present, the asset ID of the token used to pay fees. + // If absent, specifies the staking token implicitly. + AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (m *Fee) Reset() { *m = Fee{} } +func (m *Fee) String() string { return proto.CompactTextString(m) } +func (*Fee) ProtoMessage() {} +func (*Fee) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{0} +} +func (m *Fee) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Fee) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Fee.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Fee) XXX_Merge(src proto.Message) { + xxx_messageInfo_Fee.Merge(m, src) +} +func (m *Fee) XXX_Size() int { + return m.Size() +} +func (m *Fee) XXX_DiscardUnknown() { + xxx_messageInfo_Fee.DiscardUnknown(m) +} + +var xxx_messageInfo_Fee proto.InternalMessageInfo + +func (m *Fee) GetAmount() *Amount { + if m != nil { + return m.Amount + } + return nil +} + +func (m *Fee) GetAssetId() *AssetId { + if m != nil { + return m.AssetId + } + return nil +} + +type Address struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *Address) Reset() { *m = Address{} } +func (m *Address) String() string { return proto.CompactTextString(m) } +func (*Address) ProtoMessage() {} +func (*Address) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{1} +} +func (m *Address) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Address) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Address.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Address) XXX_Merge(src proto.Message) { + xxx_messageInfo_Address.Merge(m, src) +} +func (m *Address) XXX_Size() int { + return m.Size() +} +func (m *Address) XXX_DiscardUnknown() { + xxx_messageInfo_Address.DiscardUnknown(m) +} + +var xxx_messageInfo_Address proto.InternalMessageInfo + +func (m *Address) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type AddressView struct { + // Types that are valid to be assigned to AddressView: + // + // *AddressView_Visible_ + // *AddressView_Opaque_ + AddressView isAddressView_AddressView `protobuf_oneof:"address_view"` +} + +func (m *AddressView) Reset() { *m = AddressView{} } +func (m *AddressView) String() string { return proto.CompactTextString(m) } +func (*AddressView) ProtoMessage() {} +func (*AddressView) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{2} +} +func (m *AddressView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressView) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressView.Merge(m, src) +} +func (m *AddressView) XXX_Size() int { + return m.Size() +} +func (m *AddressView) XXX_DiscardUnknown() { + xxx_messageInfo_AddressView.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressView proto.InternalMessageInfo + +type isAddressView_AddressView interface { + isAddressView_AddressView() + MarshalTo([]byte) (int, error) + Size() int +} + +type AddressView_Visible_ struct { + Visible *AddressView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof" json:"visible,omitempty"` +} +type AddressView_Opaque_ struct { + Opaque *AddressView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof" json:"opaque,omitempty"` +} + +func (*AddressView_Visible_) isAddressView_AddressView() {} +func (*AddressView_Opaque_) isAddressView_AddressView() {} + +func (m *AddressView) GetAddressView() isAddressView_AddressView { + if m != nil { + return m.AddressView + } + return nil +} + +func (m *AddressView) GetVisible() *AddressView_Visible { + if x, ok := m.GetAddressView().(*AddressView_Visible_); ok { + return x.Visible + } + return nil +} + +func (m *AddressView) GetOpaque() *AddressView_Opaque { + if x, ok := m.GetAddressView().(*AddressView_Opaque_); ok { + return x.Opaque + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*AddressView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*AddressView_Visible_)(nil), + (*AddressView_Opaque_)(nil), + } +} + +type AddressView_Visible struct { + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Index *AddressIndex `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` + AccountGroupId *AccountGroupId `protobuf:"bytes,3,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` +} + +func (m *AddressView_Visible) Reset() { *m = AddressView_Visible{} } +func (m *AddressView_Visible) String() string { return proto.CompactTextString(m) } +func (*AddressView_Visible) ProtoMessage() {} +func (*AddressView_Visible) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{2, 0} +} +func (m *AddressView_Visible) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressView_Visible) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressView_Visible.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressView_Visible) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressView_Visible.Merge(m, src) +} +func (m *AddressView_Visible) XXX_Size() int { + return m.Size() +} +func (m *AddressView_Visible) XXX_DiscardUnknown() { + xxx_messageInfo_AddressView_Visible.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressView_Visible proto.InternalMessageInfo + +func (m *AddressView_Visible) GetAddress() *Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *AddressView_Visible) GetIndex() *AddressIndex { + if m != nil { + return m.Index + } + return nil +} + +func (m *AddressView_Visible) GetAccountGroupId() *AccountGroupId { + if m != nil { + return m.AccountGroupId + } + return nil +} + +type AddressView_Opaque struct { + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *AddressView_Opaque) Reset() { *m = AddressView_Opaque{} } +func (m *AddressView_Opaque) String() string { return proto.CompactTextString(m) } +func (*AddressView_Opaque) ProtoMessage() {} +func (*AddressView_Opaque) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{2, 1} +} +func (m *AddressView_Opaque) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressView_Opaque) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressView_Opaque.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressView_Opaque) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressView_Opaque.Merge(m, src) +} +func (m *AddressView_Opaque) XXX_Size() int { + return m.Size() +} +func (m *AddressView_Opaque) XXX_DiscardUnknown() { + xxx_messageInfo_AddressView_Opaque.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressView_Opaque proto.InternalMessageInfo + +func (m *AddressView_Opaque) GetAddress() *Address { + if m != nil { + return m.Address + } + return nil +} + +type SpendKey struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *SpendKey) Reset() { *m = SpendKey{} } +func (m *SpendKey) String() string { return proto.CompactTextString(m) } +func (*SpendKey) ProtoMessage() {} +func (*SpendKey) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{3} +} +func (m *SpendKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendKey.Merge(m, src) +} +func (m *SpendKey) XXX_Size() int { + return m.Size() +} +func (m *SpendKey) XXX_DiscardUnknown() { + xxx_messageInfo_SpendKey.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendKey proto.InternalMessageInfo + +func (m *SpendKey) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type SpendVerificationKey struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *SpendVerificationKey) Reset() { *m = SpendVerificationKey{} } +func (m *SpendVerificationKey) String() string { return proto.CompactTextString(m) } +func (*SpendVerificationKey) ProtoMessage() {} +func (*SpendVerificationKey) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{4} +} +func (m *SpendVerificationKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendVerificationKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendVerificationKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendVerificationKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendVerificationKey.Merge(m, src) +} +func (m *SpendVerificationKey) XXX_Size() int { + return m.Size() +} +func (m *SpendVerificationKey) XXX_DiscardUnknown() { + xxx_messageInfo_SpendVerificationKey.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendVerificationKey proto.InternalMessageInfo + +func (m *SpendVerificationKey) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type FullViewingKey struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *FullViewingKey) Reset() { *m = FullViewingKey{} } +func (m *FullViewingKey) String() string { return proto.CompactTextString(m) } +func (*FullViewingKey) ProtoMessage() {} +func (*FullViewingKey) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{5} +} +func (m *FullViewingKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FullViewingKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FullViewingKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FullViewingKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_FullViewingKey.Merge(m, src) +} +func (m *FullViewingKey) XXX_Size() int { + return m.Size() +} +func (m *FullViewingKey) XXX_DiscardUnknown() { + xxx_messageInfo_FullViewingKey.DiscardUnknown(m) +} + +var xxx_messageInfo_FullViewingKey proto.InternalMessageInfo + +func (m *FullViewingKey) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type AccountGroupId struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *AccountGroupId) Reset() { *m = AccountGroupId{} } +func (m *AccountGroupId) String() string { return proto.CompactTextString(m) } +func (*AccountGroupId) ProtoMessage() {} +func (*AccountGroupId) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{6} +} +func (m *AccountGroupId) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AccountGroupId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AccountGroupId.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AccountGroupId) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountGroupId.Merge(m, src) +} +func (m *AccountGroupId) XXX_Size() int { + return m.Size() +} +func (m *AccountGroupId) XXX_DiscardUnknown() { + xxx_messageInfo_AccountGroupId.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountGroupId proto.InternalMessageInfo + +func (m *AccountGroupId) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type Diversifier struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *Diversifier) Reset() { *m = Diversifier{} } +func (m *Diversifier) String() string { return proto.CompactTextString(m) } +func (*Diversifier) ProtoMessage() {} +func (*Diversifier) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{7} +} +func (m *Diversifier) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Diversifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Diversifier.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Diversifier) XXX_Merge(src proto.Message) { + xxx_messageInfo_Diversifier.Merge(m, src) +} +func (m *Diversifier) XXX_Size() int { + return m.Size() +} +func (m *Diversifier) XXX_DiscardUnknown() { + xxx_messageInfo_Diversifier.DiscardUnknown(m) +} + +var xxx_messageInfo_Diversifier proto.InternalMessageInfo + +func (m *Diversifier) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type AddressIndex struct { + Account uint32 `protobuf:"varint,2,opt,name=account,proto3" json:"account,omitempty"` + Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` +} + +func (m *AddressIndex) Reset() { *m = AddressIndex{} } +func (m *AddressIndex) String() string { return proto.CompactTextString(m) } +func (*AddressIndex) ProtoMessage() {} +func (*AddressIndex) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{8} +} +func (m *AddressIndex) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressIndex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressIndex.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressIndex) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressIndex.Merge(m, src) +} +func (m *AddressIndex) XXX_Size() int { + return m.Size() +} +func (m *AddressIndex) XXX_DiscardUnknown() { + xxx_messageInfo_AddressIndex.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressIndex proto.InternalMessageInfo + +func (m *AddressIndex) GetAccount() uint32 { + if m != nil { + return m.Account + } + return 0 +} + +func (m *AddressIndex) GetRandomizer() []byte { + if m != nil { + return m.Randomizer + } + return nil +} + +type StateCommitment struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *StateCommitment) Reset() { *m = StateCommitment{} } +func (m *StateCommitment) String() string { return proto.CompactTextString(m) } +func (*StateCommitment) ProtoMessage() {} +func (*StateCommitment) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{9} +} +func (m *StateCommitment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StateCommitment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StateCommitment.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StateCommitment) XXX_Merge(src proto.Message) { + xxx_messageInfo_StateCommitment.Merge(m, src) +} +func (m *StateCommitment) XXX_Size() int { + return m.Size() +} +func (m *StateCommitment) XXX_DiscardUnknown() { + xxx_messageInfo_StateCommitment.DiscardUnknown(m) +} + +var xxx_messageInfo_StateCommitment proto.InternalMessageInfo + +func (m *StateCommitment) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type BalanceCommitment struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *BalanceCommitment) Reset() { *m = BalanceCommitment{} } +func (m *BalanceCommitment) String() string { return proto.CompactTextString(m) } +func (*BalanceCommitment) ProtoMessage() {} +func (*BalanceCommitment) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{10} +} +func (m *BalanceCommitment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BalanceCommitment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BalanceCommitment.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BalanceCommitment) XXX_Merge(src proto.Message) { + xxx_messageInfo_BalanceCommitment.Merge(m, src) +} +func (m *BalanceCommitment) XXX_Size() int { + return m.Size() +} +func (m *BalanceCommitment) XXX_DiscardUnknown() { + xxx_messageInfo_BalanceCommitment.DiscardUnknown(m) +} + +var xxx_messageInfo_BalanceCommitment proto.InternalMessageInfo + +func (m *BalanceCommitment) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type AssetId struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *AssetId) Reset() { *m = AssetId{} } +func (m *AssetId) String() string { return proto.CompactTextString(m) } +func (*AssetId) ProtoMessage() {} +func (*AssetId) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{11} +} +func (m *AssetId) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AssetId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AssetId.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AssetId) XXX_Merge(src proto.Message) { + xxx_messageInfo_AssetId.Merge(m, src) +} +func (m *AssetId) XXX_Size() int { + return m.Size() +} +func (m *AssetId) XXX_DiscardUnknown() { + xxx_messageInfo_AssetId.DiscardUnknown(m) +} + +var xxx_messageInfo_AssetId proto.InternalMessageInfo + +func (m *AssetId) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type Amount struct { + Lo uint64 `protobuf:"varint,1,opt,name=lo,proto3" json:"lo,omitempty"` + Hi uint64 `protobuf:"varint,2,opt,name=hi,proto3" json:"hi,omitempty"` +} + +func (m *Amount) Reset() { *m = Amount{} } +func (m *Amount) String() string { return proto.CompactTextString(m) } +func (*Amount) ProtoMessage() {} +func (*Amount) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{12} +} +func (m *Amount) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Amount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Amount.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Amount) XXX_Merge(src proto.Message) { + xxx_messageInfo_Amount.Merge(m, src) +} +func (m *Amount) XXX_Size() int { + return m.Size() +} +func (m *Amount) XXX_DiscardUnknown() { + xxx_messageInfo_Amount.DiscardUnknown(m) +} + +var xxx_messageInfo_Amount proto.InternalMessageInfo + +func (m *Amount) GetLo() uint64 { + if m != nil { + return m.Lo + } + return 0 +} + +func (m *Amount) GetHi() uint64 { + if m != nil { + return m.Hi + } + return 0 +} + +type Denom struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *Denom) Reset() { *m = Denom{} } +func (m *Denom) String() string { return proto.CompactTextString(m) } +func (*Denom) ProtoMessage() {} +func (*Denom) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{13} +} +func (m *Denom) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Denom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Denom.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Denom) XXX_Merge(src proto.Message) { + xxx_messageInfo_Denom.Merge(m, src) +} +func (m *Denom) XXX_Size() int { + return m.Size() +} +func (m *Denom) XXX_DiscardUnknown() { + xxx_messageInfo_Denom.DiscardUnknown(m) +} + +var xxx_messageInfo_Denom proto.InternalMessageInfo + +func (m *Denom) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +type Value struct { + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (m *Value) Reset() { *m = Value{} } +func (m *Value) String() string { return proto.CompactTextString(m) } +func (*Value) ProtoMessage() {} +func (*Value) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{14} +} +func (m *Value) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Value.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Value) XXX_Merge(src proto.Message) { + xxx_messageInfo_Value.Merge(m, src) +} +func (m *Value) XXX_Size() int { + return m.Size() +} +func (m *Value) XXX_DiscardUnknown() { + xxx_messageInfo_Value.DiscardUnknown(m) +} + +var xxx_messageInfo_Value proto.InternalMessageInfo + +func (m *Value) GetAmount() *Amount { + if m != nil { + return m.Amount + } + return nil +} + +func (m *Value) GetAssetId() *AssetId { + if m != nil { + return m.AssetId + } + return nil +} + +type MerkleRoot struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *MerkleRoot) Reset() { *m = MerkleRoot{} } +func (m *MerkleRoot) String() string { return proto.CompactTextString(m) } +func (*MerkleRoot) ProtoMessage() {} +func (*MerkleRoot) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{15} +} +func (m *MerkleRoot) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MerkleRoot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MerkleRoot.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MerkleRoot) XXX_Merge(src proto.Message) { + xxx_messageInfo_MerkleRoot.Merge(m, src) +} +func (m *MerkleRoot) XXX_Size() int { + return m.Size() +} +func (m *MerkleRoot) XXX_DiscardUnknown() { + xxx_messageInfo_MerkleRoot.DiscardUnknown(m) +} + +var xxx_messageInfo_MerkleRoot proto.InternalMessageInfo + +func (m *MerkleRoot) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type Asset struct { + Id *AssetId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Denom *Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *Asset) Reset() { *m = Asset{} } +func (m *Asset) String() string { return proto.CompactTextString(m) } +func (*Asset) ProtoMessage() {} +func (*Asset) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{16} +} +func (m *Asset) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Asset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Asset.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Asset) XXX_Merge(src proto.Message) { + xxx_messageInfo_Asset.Merge(m, src) +} +func (m *Asset) XXX_Size() int { + return m.Size() +} +func (m *Asset) XXX_DiscardUnknown() { + xxx_messageInfo_Asset.DiscardUnknown(m) +} + +var xxx_messageInfo_Asset proto.InternalMessageInfo + +func (m *Asset) GetId() *AssetId { + if m != nil { + return m.Id + } + return nil +} + +func (m *Asset) GetDenom() *Denom { + if m != nil { + return m.Denom + } + return nil +} + +// A validator's identity key (decaf377-rdsa spendauth verification key). +type IdentityKey struct { + Ik []byte `protobuf:"bytes,1,opt,name=ik,proto3" json:"ik,omitempty"` +} + +func (m *IdentityKey) Reset() { *m = IdentityKey{} } +func (m *IdentityKey) String() string { return proto.CompactTextString(m) } +func (*IdentityKey) ProtoMessage() {} +func (*IdentityKey) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{17} +} +func (m *IdentityKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IdentityKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IdentityKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IdentityKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_IdentityKey.Merge(m, src) +} +func (m *IdentityKey) XXX_Size() int { + return m.Size() +} +func (m *IdentityKey) XXX_DiscardUnknown() { + xxx_messageInfo_IdentityKey.DiscardUnknown(m) +} + +var xxx_messageInfo_IdentityKey proto.InternalMessageInfo + +func (m *IdentityKey) GetIk() []byte { + if m != nil { + return m.Ik + } + return nil +} + +// A validator's governance key (decaf377-rdsa spendauth verification key). +type GovernanceKey struct { + Gk []byte `protobuf:"bytes,1,opt,name=gk,proto3" json:"gk,omitempty"` +} + +func (m *GovernanceKey) Reset() { *m = GovernanceKey{} } +func (m *GovernanceKey) String() string { return proto.CompactTextString(m) } +func (*GovernanceKey) ProtoMessage() {} +func (*GovernanceKey) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{18} +} +func (m *GovernanceKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GovernanceKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GovernanceKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GovernanceKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_GovernanceKey.Merge(m, src) +} +func (m *GovernanceKey) XXX_Size() int { + return m.Size() +} +func (m *GovernanceKey) XXX_DiscardUnknown() { + xxx_messageInfo_GovernanceKey.DiscardUnknown(m) +} + +var xxx_messageInfo_GovernanceKey proto.InternalMessageInfo + +func (m *GovernanceKey) GetGk() []byte { + if m != nil { + return m.Gk + } + return nil +} + +type ConsensusKey struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ConsensusKey) Reset() { *m = ConsensusKey{} } +func (m *ConsensusKey) String() string { return proto.CompactTextString(m) } +func (*ConsensusKey) ProtoMessage() {} +func (*ConsensusKey) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{19} +} +func (m *ConsensusKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ConsensusKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ConsensusKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ConsensusKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConsensusKey.Merge(m, src) +} +func (m *ConsensusKey) XXX_Size() int { + return m.Size() +} +func (m *ConsensusKey) XXX_DiscardUnknown() { + xxx_messageInfo_ConsensusKey.DiscardUnknown(m) +} + +var xxx_messageInfo_ConsensusKey proto.InternalMessageInfo + +func (m *ConsensusKey) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type Note struct { + Value *Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` + Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *Note) Reset() { *m = Note{} } +func (m *Note) String() string { return proto.CompactTextString(m) } +func (*Note) ProtoMessage() {} +func (*Note) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{20} +} +func (m *Note) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Note) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Note.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Note) XXX_Merge(src proto.Message) { + xxx_messageInfo_Note.Merge(m, src) +} +func (m *Note) XXX_Size() int { + return m.Size() +} +func (m *Note) XXX_DiscardUnknown() { + xxx_messageInfo_Note.DiscardUnknown(m) +} + +var xxx_messageInfo_Note proto.InternalMessageInfo + +func (m *Note) GetValue() *Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *Note) GetRseed() []byte { + if m != nil { + return m.Rseed + } + return nil +} + +func (m *Note) GetAddress() *Address { + if m != nil { + return m.Address + } + return nil +} + +// An encrypted note. +// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. +type NoteCiphertext struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *NoteCiphertext) Reset() { *m = NoteCiphertext{} } +func (m *NoteCiphertext) String() string { return proto.CompactTextString(m) } +func (*NoteCiphertext) ProtoMessage() {} +func (*NoteCiphertext) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{21} +} +func (m *NoteCiphertext) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NoteCiphertext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NoteCiphertext.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NoteCiphertext) XXX_Merge(src proto.Message) { + xxx_messageInfo_NoteCiphertext.Merge(m, src) +} +func (m *NoteCiphertext) XXX_Size() int { + return m.Size() +} +func (m *NoteCiphertext) XXX_DiscardUnknown() { + xxx_messageInfo_NoteCiphertext.DiscardUnknown(m) +} + +var xxx_messageInfo_NoteCiphertext proto.InternalMessageInfo + +func (m *NoteCiphertext) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type Nullifier struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *Nullifier) Reset() { *m = Nullifier{} } +func (m *Nullifier) String() string { return proto.CompactTextString(m) } +func (*Nullifier) ProtoMessage() {} +func (*Nullifier) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{22} +} +func (m *Nullifier) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Nullifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Nullifier.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Nullifier) XXX_Merge(src proto.Message) { + xxx_messageInfo_Nullifier.Merge(m, src) +} +func (m *Nullifier) XXX_Size() int { + return m.Size() +} +func (m *Nullifier) XXX_DiscardUnknown() { + xxx_messageInfo_Nullifier.DiscardUnknown(m) +} + +var xxx_messageInfo_Nullifier proto.InternalMessageInfo + +func (m *Nullifier) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type SpendAuthSignature struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *SpendAuthSignature) Reset() { *m = SpendAuthSignature{} } +func (m *SpendAuthSignature) String() string { return proto.CompactTextString(m) } +func (*SpendAuthSignature) ProtoMessage() {} +func (*SpendAuthSignature) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{23} +} +func (m *SpendAuthSignature) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendAuthSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendAuthSignature.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendAuthSignature) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendAuthSignature.Merge(m, src) +} +func (m *SpendAuthSignature) XXX_Size() int { + return m.Size() +} +func (m *SpendAuthSignature) XXX_DiscardUnknown() { + xxx_messageInfo_SpendAuthSignature.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendAuthSignature proto.InternalMessageInfo + +func (m *SpendAuthSignature) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type BindingSignature struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *BindingSignature) Reset() { *m = BindingSignature{} } +func (m *BindingSignature) String() string { return proto.CompactTextString(m) } +func (*BindingSignature) ProtoMessage() {} +func (*BindingSignature) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{24} +} +func (m *BindingSignature) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BindingSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BindingSignature.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BindingSignature) XXX_Merge(src proto.Message) { + xxx_messageInfo_BindingSignature.Merge(m, src) +} +func (m *BindingSignature) XXX_Size() int { + return m.Size() +} +func (m *BindingSignature) XXX_DiscardUnknown() { + xxx_messageInfo_BindingSignature.DiscardUnknown(m) +} + +var xxx_messageInfo_BindingSignature proto.InternalMessageInfo + +func (m *BindingSignature) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// The body of an output description, including only the minimal +// data required to scan and process the output. +type NotePayload struct { + // The note commitment for the output note. 32 bytes. + NoteCommitment *StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + // The encoding of an ephemeral public key. 32 bytes. + EphemeralKey []byte `protobuf:"bytes,2,opt,name=ephemeral_key,json=ephemeralKey,proto3" json:"ephemeral_key,omitempty"` + // An encryption of the newly created note. + // 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. + EncryptedNote *NoteCiphertext `protobuf:"bytes,3,opt,name=encrypted_note,json=encryptedNote,proto3" json:"encrypted_note,omitempty"` +} + +func (m *NotePayload) Reset() { *m = NotePayload{} } +func (m *NotePayload) String() string { return proto.CompactTextString(m) } +func (*NotePayload) ProtoMessage() {} +func (*NotePayload) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{25} +} +func (m *NotePayload) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NotePayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NotePayload.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NotePayload) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotePayload.Merge(m, src) +} +func (m *NotePayload) XXX_Size() int { + return m.Size() +} +func (m *NotePayload) XXX_DiscardUnknown() { + xxx_messageInfo_NotePayload.DiscardUnknown(m) +} + +var xxx_messageInfo_NotePayload proto.InternalMessageInfo + +func (m *NotePayload) GetNoteCommitment() *StateCommitment { + if m != nil { + return m.NoteCommitment + } + return nil +} + +func (m *NotePayload) GetEphemeralKey() []byte { + if m != nil { + return m.EphemeralKey + } + return nil +} + +func (m *NotePayload) GetEncryptedNote() *NoteCiphertext { + if m != nil { + return m.EncryptedNote + } + return nil +} + +// An authentication path from a state commitment to the root of the state commitment tree. +type StateCommitmentProof struct { + NoteCommitment *StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` + AuthPath []*MerklePathChunk `protobuf:"bytes,3,rep,name=auth_path,json=authPath,proto3" json:"auth_path,omitempty"` +} + +func (m *StateCommitmentProof) Reset() { *m = StateCommitmentProof{} } +func (m *StateCommitmentProof) String() string { return proto.CompactTextString(m) } +func (*StateCommitmentProof) ProtoMessage() {} +func (*StateCommitmentProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{26} +} +func (m *StateCommitmentProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StateCommitmentProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StateCommitmentProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StateCommitmentProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_StateCommitmentProof.Merge(m, src) +} +func (m *StateCommitmentProof) XXX_Size() int { + return m.Size() +} +func (m *StateCommitmentProof) XXX_DiscardUnknown() { + xxx_messageInfo_StateCommitmentProof.DiscardUnknown(m) +} + +var xxx_messageInfo_StateCommitmentProof proto.InternalMessageInfo + +func (m *StateCommitmentProof) GetNoteCommitment() *StateCommitment { + if m != nil { + return m.NoteCommitment + } + return nil +} + +func (m *StateCommitmentProof) GetPosition() uint64 { + if m != nil { + return m.Position + } + return 0 +} + +func (m *StateCommitmentProof) GetAuthPath() []*MerklePathChunk { + if m != nil { + return m.AuthPath + } + return nil +} + +// A set of 3 sibling hashes in the auth path for some note commitment. +type MerklePathChunk struct { + Sibling_1 []byte `protobuf:"bytes,1,opt,name=sibling_1,json=sibling1,proto3" json:"sibling_1,omitempty"` + Sibling_2 []byte `protobuf:"bytes,2,opt,name=sibling_2,json=sibling2,proto3" json:"sibling_2,omitempty"` + Sibling_3 []byte `protobuf:"bytes,3,opt,name=sibling_3,json=sibling3,proto3" json:"sibling_3,omitempty"` +} + +func (m *MerklePathChunk) Reset() { *m = MerklePathChunk{} } +func (m *MerklePathChunk) String() string { return proto.CompactTextString(m) } +func (*MerklePathChunk) ProtoMessage() {} +func (*MerklePathChunk) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{27} +} +func (m *MerklePathChunk) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MerklePathChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MerklePathChunk.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MerklePathChunk) XXX_Merge(src proto.Message) { + xxx_messageInfo_MerklePathChunk.Merge(m, src) +} +func (m *MerklePathChunk) XXX_Size() int { + return m.Size() +} +func (m *MerklePathChunk) XXX_DiscardUnknown() { + xxx_messageInfo_MerklePathChunk.DiscardUnknown(m) +} + +var xxx_messageInfo_MerklePathChunk proto.InternalMessageInfo + +func (m *MerklePathChunk) GetSibling_1() []byte { + if m != nil { + return m.Sibling_1 + } + return nil +} + +func (m *MerklePathChunk) GetSibling_2() []byte { + if m != nil { + return m.Sibling_2 + } + return nil +} + +func (m *MerklePathChunk) GetSibling_3() []byte { + if m != nil { + return m.Sibling_3 + } + return nil +} + +// A clue for use with Fuzzy Message Detection. +type Clue struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *Clue) Reset() { *m = Clue{} } +func (m *Clue) String() string { return proto.CompactTextString(m) } +func (*Clue) ProtoMessage() {} +func (*Clue) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{28} +} +func (m *Clue) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Clue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Clue.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Clue) XXX_Merge(src proto.Message) { + xxx_messageInfo_Clue.Merge(m, src) +} +func (m *Clue) XXX_Size() int { + return m.Size() +} +func (m *Clue) XXX_DiscardUnknown() { + xxx_messageInfo_Clue.DiscardUnknown(m) +} + +var xxx_messageInfo_Clue proto.InternalMessageInfo + +func (m *Clue) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// An authorization hash for a Penumbra transaction. +type EffectHash struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *EffectHash) Reset() { *m = EffectHash{} } +func (m *EffectHash) String() string { return proto.CompactTextString(m) } +func (*EffectHash) ProtoMessage() {} +func (*EffectHash) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{29} +} +func (m *EffectHash) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EffectHash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EffectHash.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EffectHash) XXX_Merge(src proto.Message) { + xxx_messageInfo_EffectHash.Merge(m, src) +} +func (m *EffectHash) XXX_Size() int { + return m.Size() +} +func (m *EffectHash) XXX_DiscardUnknown() { + xxx_messageInfo_EffectHash.DiscardUnknown(m) +} + +var xxx_messageInfo_EffectHash proto.InternalMessageInfo + +func (m *EffectHash) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// A Penumbra ZK output proof. +type ZKOutputProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKOutputProof) Reset() { *m = ZKOutputProof{} } +func (m *ZKOutputProof) String() string { return proto.CompactTextString(m) } +func (*ZKOutputProof) ProtoMessage() {} +func (*ZKOutputProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{30} +} +func (m *ZKOutputProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKOutputProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKOutputProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ZKOutputProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKOutputProof.Merge(m, src) +} +func (m *ZKOutputProof) XXX_Size() int { + return m.Size() +} +func (m *ZKOutputProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKOutputProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKOutputProof proto.InternalMessageInfo + +func (m *ZKOutputProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// A Penumbra ZK spend proof. +type ZKSpendProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKSpendProof) Reset() { *m = ZKSpendProof{} } +func (m *ZKSpendProof) String() string { return proto.CompactTextString(m) } +func (*ZKSpendProof) ProtoMessage() {} +func (*ZKSpendProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{31} +} +func (m *ZKSpendProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKSpendProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKSpendProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ZKSpendProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKSpendProof.Merge(m, src) +} +func (m *ZKSpendProof) XXX_Size() int { + return m.Size() +} +func (m *ZKSpendProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKSpendProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKSpendProof proto.InternalMessageInfo + +func (m *ZKSpendProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// A Penumbra ZK swap proof. +type ZKSwapProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKSwapProof) Reset() { *m = ZKSwapProof{} } +func (m *ZKSwapProof) String() string { return proto.CompactTextString(m) } +func (*ZKSwapProof) ProtoMessage() {} +func (*ZKSwapProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{32} +} +func (m *ZKSwapProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKSwapProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKSwapProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ZKSwapProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKSwapProof.Merge(m, src) +} +func (m *ZKSwapProof) XXX_Size() int { + return m.Size() +} +func (m *ZKSwapProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKSwapProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKSwapProof proto.InternalMessageInfo + +func (m *ZKSwapProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +func init() { + proto.RegisterType((*Fee)(nil), "penumbra.core.crypto.v1alpha1.Fee") + proto.RegisterType((*Address)(nil), "penumbra.core.crypto.v1alpha1.Address") + proto.RegisterType((*AddressView)(nil), "penumbra.core.crypto.v1alpha1.AddressView") + proto.RegisterType((*AddressView_Visible)(nil), "penumbra.core.crypto.v1alpha1.AddressView.Visible") + proto.RegisterType((*AddressView_Opaque)(nil), "penumbra.core.crypto.v1alpha1.AddressView.Opaque") + proto.RegisterType((*SpendKey)(nil), "penumbra.core.crypto.v1alpha1.SpendKey") + proto.RegisterType((*SpendVerificationKey)(nil), "penumbra.core.crypto.v1alpha1.SpendVerificationKey") + proto.RegisterType((*FullViewingKey)(nil), "penumbra.core.crypto.v1alpha1.FullViewingKey") + proto.RegisterType((*AccountGroupId)(nil), "penumbra.core.crypto.v1alpha1.AccountGroupId") + proto.RegisterType((*Diversifier)(nil), "penumbra.core.crypto.v1alpha1.Diversifier") + proto.RegisterType((*AddressIndex)(nil), "penumbra.core.crypto.v1alpha1.AddressIndex") + proto.RegisterType((*StateCommitment)(nil), "penumbra.core.crypto.v1alpha1.StateCommitment") + proto.RegisterType((*BalanceCommitment)(nil), "penumbra.core.crypto.v1alpha1.BalanceCommitment") + proto.RegisterType((*AssetId)(nil), "penumbra.core.crypto.v1alpha1.AssetId") + proto.RegisterType((*Amount)(nil), "penumbra.core.crypto.v1alpha1.Amount") + proto.RegisterType((*Denom)(nil), "penumbra.core.crypto.v1alpha1.Denom") + proto.RegisterType((*Value)(nil), "penumbra.core.crypto.v1alpha1.Value") + proto.RegisterType((*MerkleRoot)(nil), "penumbra.core.crypto.v1alpha1.MerkleRoot") + proto.RegisterType((*Asset)(nil), "penumbra.core.crypto.v1alpha1.Asset") + proto.RegisterType((*IdentityKey)(nil), "penumbra.core.crypto.v1alpha1.IdentityKey") + proto.RegisterType((*GovernanceKey)(nil), "penumbra.core.crypto.v1alpha1.GovernanceKey") + proto.RegisterType((*ConsensusKey)(nil), "penumbra.core.crypto.v1alpha1.ConsensusKey") + proto.RegisterType((*Note)(nil), "penumbra.core.crypto.v1alpha1.Note") + proto.RegisterType((*NoteCiphertext)(nil), "penumbra.core.crypto.v1alpha1.NoteCiphertext") + proto.RegisterType((*Nullifier)(nil), "penumbra.core.crypto.v1alpha1.Nullifier") + proto.RegisterType((*SpendAuthSignature)(nil), "penumbra.core.crypto.v1alpha1.SpendAuthSignature") + proto.RegisterType((*BindingSignature)(nil), "penumbra.core.crypto.v1alpha1.BindingSignature") + proto.RegisterType((*NotePayload)(nil), "penumbra.core.crypto.v1alpha1.NotePayload") + proto.RegisterType((*StateCommitmentProof)(nil), "penumbra.core.crypto.v1alpha1.StateCommitmentProof") + proto.RegisterType((*MerklePathChunk)(nil), "penumbra.core.crypto.v1alpha1.MerklePathChunk") + proto.RegisterType((*Clue)(nil), "penumbra.core.crypto.v1alpha1.Clue") + proto.RegisterType((*EffectHash)(nil), "penumbra.core.crypto.v1alpha1.EffectHash") + proto.RegisterType((*ZKOutputProof)(nil), "penumbra.core.crypto.v1alpha1.ZKOutputProof") + proto.RegisterType((*ZKSpendProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSpendProof") + proto.RegisterType((*ZKSwapProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSwapProof") +} + +func init() { + proto.RegisterFile("penumbra/core/crypto/v1alpha1/crypto.proto", fileDescriptor_5c23a0b4440af102) +} + +var fileDescriptor_5c23a0b4440af102 = []byte{ + // 1060 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4f, 0x6f, 0xe3, 0x44, + 0x14, 0xaf, 0x9d, 0xb6, 0x69, 0x5f, 0xd2, 0x74, 0xb1, 0x7a, 0xa8, 0x0a, 0xcd, 0x76, 0xdd, 0x6e, + 0xd9, 0x5d, 0x20, 0x51, 0x5b, 0x89, 0x43, 0x10, 0x12, 0x4d, 0x96, 0x6d, 0x4b, 0xb4, 0xdd, 0xc8, + 0x45, 0x5d, 0x54, 0x55, 0x8a, 0xa6, 0xf6, 0x6b, 0x3c, 0x8a, 0x33, 0x63, 0xec, 0x71, 0xba, 0x81, + 0x0f, 0x80, 0xb8, 0x71, 0xe6, 0xc8, 0x91, 0x6f, 0xc0, 0x37, 0x40, 0x9c, 0xf6, 0xb8, 0x47, 0x68, + 0x0f, 0x48, 0x9c, 0xf8, 0x08, 0x68, 0xec, 0x71, 0x36, 0xad, 0xd6, 0x49, 0x01, 0x21, 0x71, 0x9b, + 0x37, 0xef, 0xf7, 0x7e, 0xf3, 0xfe, 0xdb, 0xf0, 0xc8, 0x47, 0x16, 0xf5, 0xce, 0x02, 0x52, 0xb5, + 0x79, 0x80, 0x55, 0x3b, 0x18, 0xf8, 0x82, 0x57, 0xfb, 0x5b, 0xc4, 0xf3, 0x5d, 0xb2, 0xa5, 0xe4, + 0x8a, 0x1f, 0x70, 0xc1, 0x8d, 0xd5, 0x14, 0x5b, 0x91, 0xd8, 0x8a, 0xd2, 0xa5, 0x58, 0xf3, 0x1b, + 0x0d, 0x72, 0x4f, 0x10, 0x8d, 0x8f, 0x61, 0x96, 0xf4, 0x78, 0xc4, 0xc4, 0xb2, 0xb6, 0xa6, 0x3d, + 0x28, 0x6c, 0xdf, 0xaf, 0x8c, 0xb5, 0xab, 0xec, 0xc6, 0x60, 0x4b, 0x19, 0x19, 0xbb, 0x30, 0x47, + 0xc2, 0x10, 0x45, 0x9b, 0x3a, 0xcb, 0x7a, 0x4c, 0xb0, 0x39, 0x89, 0x40, 0xc2, 0x0f, 0x1c, 0x2b, + 0x4f, 0x92, 0x83, 0x79, 0x17, 0xf2, 0xbb, 0x8e, 0x13, 0x60, 0x18, 0x1a, 0x4b, 0x30, 0x43, 0x19, + 0xc3, 0x20, 0xf6, 0xa5, 0x68, 0x25, 0x82, 0xf9, 0x67, 0x0e, 0x0a, 0x0a, 0x71, 0x4c, 0xf1, 0xc2, + 0x38, 0x84, 0x7c, 0x9f, 0x86, 0xf4, 0xcc, 0x43, 0xe5, 0xf3, 0xf6, 0xa4, 0x27, 0x5f, 0x1b, 0x57, + 0x8e, 0x13, 0xcb, 0xfd, 0x29, 0x2b, 0x25, 0x31, 0x9a, 0x30, 0xcb, 0x7d, 0xf2, 0x65, 0x84, 0x2a, + 0x82, 0xad, 0xbf, 0x41, 0xf7, 0x2c, 0x36, 0xdc, 0x9f, 0xb2, 0x14, 0xc5, 0xca, 0xef, 0x1a, 0xe4, + 0xd5, 0x1b, 0xc6, 0x27, 0x90, 0x27, 0x09, 0x56, 0x39, 0xba, 0x79, 0x3b, 0x66, 0x2b, 0x35, 0x33, + 0x76, 0x65, 0x42, 0x1c, 0x7c, 0xa1, 0x3c, 0x7b, 0xef, 0x76, 0xf6, 0x07, 0xd2, 0xc4, 0x4a, 0x2c, + 0x8d, 0xe7, 0x70, 0x87, 0xd8, 0xb6, 0x2c, 0x56, 0xbb, 0x13, 0xf0, 0xc8, 0x97, 0x95, 0xca, 0xc5, + 0x6c, 0x1f, 0x4c, 0x62, 0x4b, 0xcc, 0xf6, 0xa4, 0xd5, 0x81, 0x63, 0x95, 0xc8, 0x35, 0x79, 0xe5, + 0x33, 0x98, 0x4d, 0xa2, 0xff, 0xf7, 0x71, 0xd6, 0x4b, 0x50, 0x54, 0xc7, 0x76, 0x9f, 0xe2, 0x85, + 0xb9, 0x06, 0x73, 0x47, 0x3e, 0x32, 0xa7, 0x89, 0x83, 0x8c, 0xa6, 0x78, 0x1f, 0x96, 0x62, 0xc4, + 0x31, 0x06, 0xf4, 0x9c, 0xda, 0x44, 0x50, 0xce, 0xb2, 0xd1, 0x9b, 0x50, 0x7a, 0x12, 0x79, 0x9e, + 0x2c, 0x19, 0x65, 0x9d, 0xb1, 0xb8, 0xeb, 0x51, 0x67, 0xe0, 0xd6, 0xa1, 0xf0, 0x98, 0xf6, 0x31, + 0x08, 0xe9, 0x39, 0xc5, 0x20, 0x03, 0xb4, 0x0f, 0xc5, 0xd1, 0x82, 0x18, 0xcb, 0x90, 0x57, 0x29, + 0x8c, 0xcb, 0xb9, 0x60, 0xa5, 0xa2, 0x51, 0x06, 0x08, 0x08, 0x73, 0x78, 0x8f, 0x7e, 0x85, 0x41, + 0x5c, 0x9d, 0xa2, 0x35, 0x72, 0x63, 0xbe, 0x0b, 0x8b, 0x47, 0x82, 0x08, 0x6c, 0xf0, 0x5e, 0x8f, + 0x8a, 0x1e, 0x32, 0x91, 0xf1, 0xe4, 0x43, 0x78, 0xab, 0x4e, 0x3c, 0xc2, 0xec, 0xc9, 0x50, 0x39, + 0x76, 0xc9, 0x04, 0x66, 0x00, 0x1e, 0xc0, 0x6c, 0x32, 0xec, 0x46, 0x09, 0x74, 0x8f, 0xc7, 0xca, + 0x69, 0x4b, 0xf7, 0xb8, 0x94, 0x5d, 0x1a, 0xc7, 0x30, 0x6d, 0xe9, 0x2e, 0x35, 0x57, 0x61, 0xe6, + 0x31, 0x32, 0xde, 0x93, 0x44, 0x8e, 0x3c, 0xc4, 0xd8, 0x79, 0x2b, 0x11, 0xcc, 0x6f, 0x35, 0x98, + 0x39, 0x26, 0x5e, 0xf4, 0x7f, 0x58, 0x36, 0x26, 0xc0, 0x53, 0x0c, 0xba, 0x1e, 0x5a, 0x9c, 0x67, + 0x65, 0xe6, 0x6b, 0x98, 0x89, 0xed, 0x8c, 0x0f, 0x41, 0xa7, 0xce, 0x6d, 0x5b, 0x5a, 0xbd, 0xa4, + 0x53, 0xc7, 0xa8, 0xa5, 0x69, 0x48, 0x9c, 0xdc, 0x98, 0x60, 0x1a, 0xe7, 0x2e, 0x4d, 0xd6, 0x2a, + 0x14, 0x0e, 0x1c, 0x64, 0x82, 0x8a, 0x81, 0x6c, 0xd3, 0x12, 0xe8, 0xb4, 0xab, 0xdc, 0xd3, 0x69, + 0xd7, 0xbc, 0x0b, 0x0b, 0x7b, 0xbc, 0x8f, 0x01, 0x93, 0x35, 0x56, 0x80, 0xce, 0x10, 0xd0, 0xe9, + 0x9a, 0x1b, 0x50, 0x6c, 0x70, 0x16, 0x22, 0x0b, 0xa3, 0x30, 0xbb, 0xcf, 0xbf, 0xd7, 0x60, 0xfa, + 0x90, 0x0b, 0x94, 0xae, 0xf6, 0x65, 0x69, 0x54, 0x94, 0x93, 0x5c, 0x8d, 0xcb, 0x68, 0x25, 0x26, + 0x92, 0x3a, 0x08, 0x11, 0x93, 0x5a, 0x14, 0xad, 0x44, 0x18, 0x5d, 0x06, 0xb9, 0x7f, 0xb4, 0x0c, + 0xe4, 0x10, 0x4a, 0xdf, 0x1a, 0xd4, 0x77, 0x31, 0x10, 0xf8, 0x22, 0xab, 0x4e, 0xf7, 0x60, 0xfe, + 0x30, 0xf2, 0xbc, 0x71, 0x23, 0xf8, 0x08, 0x8c, 0x78, 0x4b, 0xec, 0x46, 0xc2, 0x3d, 0xa2, 0x1d, + 0x46, 0x44, 0x14, 0x60, 0x66, 0xbf, 0xdf, 0xa9, 0x53, 0xe6, 0x50, 0xd6, 0x99, 0x84, 0xfc, 0x4d, + 0x83, 0x82, 0xf4, 0xb0, 0x45, 0x06, 0x1e, 0x27, 0x8e, 0xf1, 0x1c, 0x16, 0x19, 0x17, 0xd8, 0xb6, + 0x87, 0x33, 0xa7, 0xd2, 0x59, 0x99, 0x10, 0xfa, 0x8d, 0xa1, 0xb6, 0x4a, 0x92, 0x66, 0x64, 0x72, + 0xd7, 0x61, 0x01, 0x7d, 0x17, 0x7b, 0x18, 0x10, 0xaf, 0xdd, 0xc5, 0x81, 0xca, 0x74, 0x71, 0x78, + 0x29, 0x2b, 0xfc, 0x39, 0x94, 0x90, 0xc5, 0xcc, 0xe8, 0xb4, 0x25, 0xc1, 0x2d, 0xd7, 0xfb, 0xf5, + 0x1c, 0x5b, 0x0b, 0x43, 0x12, 0xa9, 0x30, 0x5f, 0x69, 0xb0, 0x74, 0xc3, 0xbd, 0x56, 0xc0, 0xf9, + 0xf9, 0x7f, 0x17, 0xec, 0x0a, 0xcc, 0xf9, 0x3c, 0xa4, 0x72, 0x91, 0xab, 0xdd, 0x32, 0x94, 0x8d, + 0x26, 0xcc, 0x93, 0x48, 0xb8, 0x6d, 0x9f, 0x08, 0x77, 0x39, 0xb7, 0x96, 0xbb, 0xc5, 0x73, 0xc9, + 0x98, 0xb7, 0x88, 0x70, 0x1b, 0x6e, 0xc4, 0xba, 0xd6, 0x9c, 0x24, 0x90, 0xa2, 0xe9, 0xc2, 0xe2, + 0x0d, 0xa5, 0xf1, 0x36, 0xcc, 0xcb, 0x4f, 0x36, 0x65, 0x9d, 0xf6, 0x96, 0xaa, 0xf5, 0x9c, 0xba, + 0xd8, 0x1a, 0x55, 0x6e, 0xab, 0x0a, 0xa4, 0xca, 0xed, 0x51, 0xe5, 0x8e, 0xda, 0xdc, 0xa9, 0x72, + 0xc7, 0x7c, 0x07, 0xa6, 0x1b, 0x6a, 0x52, 0xde, 0xd0, 0x46, 0x26, 0xc0, 0xa7, 0xe7, 0xe7, 0x68, + 0x8b, 0x7d, 0x12, 0xba, 0x19, 0x98, 0xfb, 0xb0, 0x70, 0xd2, 0x7c, 0x16, 0x09, 0x3f, 0x52, 0xe9, + 0x7f, 0x33, 0x6c, 0x03, 0x8a, 0x27, 0xcd, 0xb8, 0xd3, 0xc7, 0xa1, 0xd6, 0xa1, 0x70, 0xd2, 0x3c, + 0xba, 0x20, 0xfe, 0x18, 0x50, 0xfd, 0x27, 0xfd, 0xe7, 0xcb, 0xb2, 0xf6, 0xf2, 0xb2, 0xac, 0xfd, + 0x7a, 0x59, 0xd6, 0xbe, 0xbb, 0x2a, 0x4f, 0xbd, 0xbc, 0x2a, 0x4f, 0xbd, 0xba, 0x2a, 0x4f, 0xc1, + 0x3d, 0x9b, 0xf7, 0xc6, 0x67, 0xbd, 0x5e, 0x68, 0xc4, 0x17, 0x2d, 0xf9, 0x0b, 0xda, 0xd2, 0x4e, + 0xbe, 0xe8, 0x50, 0xe1, 0x46, 0x67, 0x15, 0x9b, 0xf7, 0xaa, 0x36, 0x0f, 0x7b, 0x3c, 0xac, 0x06, + 0xe8, 0x91, 0x01, 0x06, 0xd5, 0xfe, 0xf6, 0xf0, 0x68, 0xbb, 0x84, 0xb2, 0xb0, 0x3a, 0xf6, 0xe7, + 0xf6, 0xa3, 0x44, 0x4e, 0xc5, 0x1f, 0xf4, 0x5c, 0xab, 0xd1, 0xf8, 0x51, 0x5f, 0x6d, 0xa5, 0xee, + 0x34, 0xa4, 0x3b, 0xc9, 0xeb, 0x95, 0x63, 0x85, 0xfa, 0xe5, 0xb5, 0xfe, 0x54, 0xea, 0x4f, 0x13, + 0xfd, 0x69, 0xaa, 0xbf, 0xd4, 0x1f, 0x8e, 0xd5, 0x9f, 0xee, 0xb5, 0xea, 0x4f, 0x51, 0x10, 0x87, + 0x08, 0xf2, 0x87, 0xbe, 0x96, 0x62, 0x6b, 0x35, 0x09, 0xae, 0xd5, 0x12, 0x74, 0xad, 0x96, 0xc2, + 0xcf, 0x66, 0xe3, 0x5f, 0xef, 0x9d, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x9c, 0x41, 0xcd, + 0xa8, 0x0b, 0x00, 0x00, +} + +func (m *Fee) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Fee) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Fee) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AssetId != nil { + { + size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Address) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Address) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Address) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AddressView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddressView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AddressView != nil { + { + size := m.AddressView.Size() + i -= size + if _, err := m.AddressView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *AddressView_Visible_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressView_Visible_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Visible != nil { + { + size, err := m.Visible.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *AddressView_Opaque_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressView_Opaque_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opaque != nil { + { + size, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *AddressView_Visible) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddressView_Visible) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Index != nil { + { + size, err := m.Index.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AddressView_Opaque) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddressView_Opaque) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressView_Opaque) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendVerificationKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendVerificationKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendVerificationKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FullViewingKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FullViewingKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FullViewingKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AccountGroupId) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Diversifier) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Diversifier) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Diversifier) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AddressIndex) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddressIndex) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressIndex) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Randomizer) > 0 { + i -= len(m.Randomizer) + copy(dAtA[i:], m.Randomizer) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Randomizer))) + i-- + dAtA[i] = 0x1a + } + if m.Account != 0 { + i = encodeVarintCrypto(dAtA, i, uint64(m.Account)) + i-- + dAtA[i] = 0x10 + } + return len(dAtA) - i, nil +} + +func (m *StateCommitment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StateCommitment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StateCommitment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BalanceCommitment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BalanceCommitment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BalanceCommitment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AssetId) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AssetId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AssetId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Amount) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Amount) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Amount) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Hi != 0 { + i = encodeVarintCrypto(dAtA, i, uint64(m.Hi)) + i-- + dAtA[i] = 0x10 + } + if m.Lo != 0 { + i = encodeVarintCrypto(dAtA, i, uint64(m.Lo)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Denom) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Denom) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Denom) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Value) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Value) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Value) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AssetId != nil { + { + size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MerkleRoot) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MerkleRoot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MerkleRoot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Asset) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Asset) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Asset) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Denom != nil { + { + size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Id != nil { + { + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *IdentityKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IdentityKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IdentityKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Ik) > 0 { + i -= len(m.Ik) + copy(dAtA[i:], m.Ik) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Ik))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GovernanceKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GovernanceKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GovernanceKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Gk) > 0 { + i -= len(m.Gk) + copy(dAtA[i:], m.Gk) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Gk))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ConsensusKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ConsensusKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ConsensusKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Note) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Note) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Note) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Rseed) > 0 { + i -= len(m.Rseed) + copy(dAtA[i:], m.Rseed) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Rseed))) + i-- + dAtA[i] = 0x12 + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NoteCiphertext) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NoteCiphertext) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NoteCiphertext) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Nullifier) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Nullifier) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Nullifier) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendAuthSignature) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendAuthSignature) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendAuthSignature) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BindingSignature) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BindingSignature) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BindingSignature) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NotePayload) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotePayload) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotePayload) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EncryptedNote != nil { + { + size, err := m.EncryptedNote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.EphemeralKey) > 0 { + i -= len(m.EphemeralKey) + copy(dAtA[i:], m.EphemeralKey) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.EphemeralKey))) + i-- + dAtA[i] = 0x12 + } + if m.NoteCommitment != nil { + { + size, err := m.NoteCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StateCommitmentProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StateCommitmentProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StateCommitmentProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AuthPath) > 0 { + for iNdEx := len(m.AuthPath) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AuthPath[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.Position != 0 { + i = encodeVarintCrypto(dAtA, i, uint64(m.Position)) + i-- + dAtA[i] = 0x10 + } + if m.NoteCommitment != nil { + { + size, err := m.NoteCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MerklePathChunk) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MerklePathChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MerklePathChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Sibling_3) > 0 { + i -= len(m.Sibling_3) + copy(dAtA[i:], m.Sibling_3) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Sibling_3))) + i-- + dAtA[i] = 0x1a + } + if len(m.Sibling_2) > 0 { + i -= len(m.Sibling_2) + copy(dAtA[i:], m.Sibling_2) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Sibling_2))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sibling_1) > 0 { + i -= len(m.Sibling_1) + copy(dAtA[i:], m.Sibling_1) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Sibling_1))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Clue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Clue) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Clue) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EffectHash) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EffectHash) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EffectHash) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ZKOutputProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ZKOutputProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKOutputProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ZKSpendProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ZKSpendProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKSpendProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ZKSwapProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ZKSwapProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKSwapProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintCrypto(dAtA []byte, offset int, v uint64) int { + offset -= sovCrypto(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Fee) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.AssetId != nil { + l = m.AssetId.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Address) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *AddressView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AddressView != nil { + n += m.AddressView.Size() + } + return n +} + +func (m *AddressView_Visible_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Visible != nil { + l = m.Visible.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} +func (m *AddressView_Opaque_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opaque != nil { + l = m.Opaque.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} +func (m *AddressView_Visible) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Index != nil { + l = m.Index.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *AddressView_Opaque) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *SpendKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *SpendVerificationKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *FullViewingKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Diversifier) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *AddressIndex) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Account != 0 { + n += 1 + sovCrypto(uint64(m.Account)) + } + l = len(m.Randomizer) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *StateCommitment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *BalanceCommitment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *AssetId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Amount) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Lo != 0 { + n += 1 + sovCrypto(uint64(m.Lo)) + } + if m.Hi != 0 { + n += 1 + sovCrypto(uint64(m.Hi)) + } + return n +} + +func (m *Denom) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Value) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.AssetId != nil { + l = m.AssetId.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *MerkleRoot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Asset) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != nil { + l = m.Id.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Denom != nil { + l = m.Denom.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *IdentityKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Ik) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *GovernanceKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Gk) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *ConsensusKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Note) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Rseed) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *NoteCiphertext) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Nullifier) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *SpendAuthSignature) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *BindingSignature) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *NotePayload) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteCommitment != nil { + l = m.NoteCommitment.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.EphemeralKey) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.EncryptedNote != nil { + l = m.EncryptedNote.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *StateCommitmentProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteCommitment != nil { + l = m.NoteCommitment.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Position != 0 { + n += 1 + sovCrypto(uint64(m.Position)) + } + if len(m.AuthPath) > 0 { + for _, e := range m.AuthPath { + l = e.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + } + return n +} + +func (m *MerklePathChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sibling_1) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Sibling_2) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Sibling_3) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Clue) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *EffectHash) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *ZKOutputProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *ZKSpendProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *ZKSwapProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func sovCrypto(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozCrypto(x uint64) (n int) { + return sovCrypto(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Fee) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Fee: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Fee: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Amount == nil { + m.Amount = &Amount{} + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AssetId == nil { + m.AssetId = &AssetId{} + } + if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Address) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Address: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Address: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AddressView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AddressView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddressView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &AddressView_Visible{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.AddressView = &AddressView_Visible_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opaque", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &AddressView_Opaque{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.AddressView = &AddressView_Opaque_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AddressView_Visible) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Visible: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Visible: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Index == nil { + m.Index = &AddressIndex{} + } + if err := m.Index.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AccountGroupId == nil { + m.AccountGroupId = &AccountGroupId{} + } + if err := m.AccountGroupId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AddressView_Opaque) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Opaque: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Opaque: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendVerificationKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendVerificationKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendVerificationKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FullViewingKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FullViewingKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FullViewingKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AccountGroupId) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AccountGroupId: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AccountGroupId: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Diversifier) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Diversifier: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Diversifier: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AddressIndex) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AddressIndex: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddressIndex: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Account", wireType) + } + m.Account = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Account |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Randomizer", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Randomizer = append(m.Randomizer[:0], dAtA[iNdEx:postIndex]...) + if m.Randomizer == nil { + m.Randomizer = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StateCommitment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StateCommitment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StateCommitment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BalanceCommitment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BalanceCommitment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BalanceCommitment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AssetId) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetId: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetId: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Amount) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Amount: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Amount: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lo", wireType) + } + m.Lo = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lo |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Hi", wireType) + } + m.Hi = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Hi |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Denom) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Denom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Denom: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Value) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Value: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Value: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Amount == nil { + m.Amount = &Amount{} + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AssetId == nil { + m.AssetId = &AssetId{} + } + if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MerkleRoot) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MerkleRoot: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MerkleRoot: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Asset) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Asset: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Asset: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Id == nil { + m.Id = &AssetId{} + } + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Denom == nil { + m.Denom = &Denom{} + } + if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IdentityKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IdentityKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IdentityKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ik", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ik = append(m.Ik[:0], dAtA[iNdEx:postIndex]...) + if m.Ik == nil { + m.Ik = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GovernanceKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GovernanceKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GovernanceKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Gk = append(m.Gk[:0], dAtA[iNdEx:postIndex]...) + if m.Gk == nil { + m.Gk = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ConsensusKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ConsensusKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConsensusKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Note) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Note: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Note: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rseed", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rseed = append(m.Rseed[:0], dAtA[iNdEx:postIndex]...) + if m.Rseed == nil { + m.Rseed = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoteCiphertext) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoteCiphertext: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoteCiphertext: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Nullifier) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Nullifier: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Nullifier: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendAuthSignature) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendAuthSignature: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendAuthSignature: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BindingSignature) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BindingSignature: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BindingSignature: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotePayload) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotePayload: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotePayload: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NoteCommitment == nil { + m.NoteCommitment = &StateCommitment{} + } + if err := m.NoteCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EphemeralKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EphemeralKey = append(m.EphemeralKey[:0], dAtA[iNdEx:postIndex]...) + if m.EphemeralKey == nil { + m.EphemeralKey = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EncryptedNote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EncryptedNote == nil { + m.EncryptedNote = &NoteCiphertext{} + } + if err := m.EncryptedNote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StateCommitmentProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StateCommitmentProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StateCommitmentProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NoteCommitment == nil { + m.NoteCommitment = &StateCommitment{} + } + if err := m.NoteCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + m.Position = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Position |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthPath", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AuthPath = append(m.AuthPath, &MerklePathChunk{}) + if err := m.AuthPath[len(m.AuthPath)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MerklePathChunk) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MerklePathChunk: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MerklePathChunk: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sibling_1", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sibling_1 = append(m.Sibling_1[:0], dAtA[iNdEx:postIndex]...) + if m.Sibling_1 == nil { + m.Sibling_1 = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sibling_2", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sibling_2 = append(m.Sibling_2[:0], dAtA[iNdEx:postIndex]...) + if m.Sibling_2 == nil { + m.Sibling_2 = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sibling_3", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sibling_3 = append(m.Sibling_3[:0], dAtA[iNdEx:postIndex]...) + if m.Sibling_3 == nil { + m.Sibling_3 = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Clue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Clue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Clue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EffectHash) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EffectHash: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EffectHash: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ZKOutputProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ZKOutputProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKOutputProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ZKSpendProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ZKSpendProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKSpendProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ZKSwapProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ZKSwapProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKSwapProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipCrypto(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCrypto + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCrypto + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCrypto + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthCrypto + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupCrypto + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthCrypto + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthCrypto = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowCrypto = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupCrypto = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go new file mode 100644 index 000000000..b3c6b6c99 --- /dev/null +++ b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go @@ -0,0 +1,9469 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/dex/v1alpha1/dex.proto + +package dexv1alpha1 + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type PositionState_PositionStateEnum int32 + +const ( + PositionState_POSITION_STATE_ENUM_UNSPECIFIED PositionState_PositionStateEnum = 0 + // The position has been opened, is active, has reserves and accumulated + // fees, and can be traded against. + PositionState_POSITION_STATE_ENUM_OPENED PositionState_PositionStateEnum = 1 + // The position has been closed, is inactive and can no longer be traded + // against, but still has reserves and accumulated fees. + PositionState_POSITION_STATE_ENUM_CLOSED PositionState_PositionStateEnum = 2 + // The final reserves and accumulated fees have been withdrawn, leaving an + // empty, inactive position awaiting (possible) retroactive rewards. + PositionState_POSITION_STATE_ENUM_WITHDRAWN PositionState_PositionStateEnum = 3 + // Any retroactive rewards have been claimed. The position is now an inert, + // historical artefact. + PositionState_POSITION_STATE_ENUM_CLAIMED PositionState_PositionStateEnum = 4 +) + +var PositionState_PositionStateEnum_name = map[int32]string{ + 0: "POSITION_STATE_ENUM_UNSPECIFIED", + 1: "POSITION_STATE_ENUM_OPENED", + 2: "POSITION_STATE_ENUM_CLOSED", + 3: "POSITION_STATE_ENUM_WITHDRAWN", + 4: "POSITION_STATE_ENUM_CLAIMED", +} + +var PositionState_PositionStateEnum_value = map[string]int32{ + "POSITION_STATE_ENUM_UNSPECIFIED": 0, + "POSITION_STATE_ENUM_OPENED": 1, + "POSITION_STATE_ENUM_CLOSED": 2, + "POSITION_STATE_ENUM_WITHDRAWN": 3, + "POSITION_STATE_ENUM_CLAIMED": 4, +} + +func (x PositionState_PositionStateEnum) String() string { + return proto.EnumName(PositionState_PositionStateEnum_name, int32(x)) +} + +func (PositionState_PositionStateEnum) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{19, 0} +} + +// A transaction action that submits a swap to the dex. +type Swap struct { + // Contains the Swap proof. + Proof *v1alpha1.ZKSwapProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` + // MockFlowCiphertext dropped until flow encryption/ABCI++ available + // // Encrypted amount of asset 1 of the trading pair. + // MockFlowCiphertext enc_amount_1 = 2; + // // Encrypted amount of asset 2 of the trading pair. + // MockFlowCiphertext enc_amount_2 = 3; + // Encapsulates the authorized fields of the Swap action, used in signing. + Body *SwapBody `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` +} + +func (m *Swap) Reset() { *m = Swap{} } +func (m *Swap) String() string { return proto.CompactTextString(m) } +func (*Swap) ProtoMessage() {} +func (*Swap) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{0} +} +func (m *Swap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Swap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Swap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Swap) XXX_Merge(src proto.Message) { + xxx_messageInfo_Swap.Merge(m, src) +} +func (m *Swap) XXX_Size() int { + return m.Size() +} +func (m *Swap) XXX_DiscardUnknown() { + xxx_messageInfo_Swap.DiscardUnknown(m) +} + +var xxx_messageInfo_Swap proto.InternalMessageInfo + +func (m *Swap) GetProof() *v1alpha1.ZKSwapProof { + if m != nil { + return m.Proof + } + return nil +} + +func (m *Swap) GetBody() *SwapBody { + if m != nil { + return m.Body + } + return nil +} + +// A transaction action that obtains assets previously confirmed +// via a Swap transaction. Does not include a spend authorization +// signature, as it is only capable of consuming the NFT from a +// Swap transaction. +type SwapClaim struct { + // Contains the SwapClaim proof. + Proof []byte `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` + // Encapsulates the authorized fields of the SwapClaim action, used in signing. + Body *SwapClaimBody `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` + // The epoch duration of the chain when the swap claim took place. + EpochDuration uint64 `protobuf:"varint,7,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` +} + +func (m *SwapClaim) Reset() { *m = SwapClaim{} } +func (m *SwapClaim) String() string { return proto.CompactTextString(m) } +func (*SwapClaim) ProtoMessage() {} +func (*SwapClaim) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{1} +} +func (m *SwapClaim) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapClaim.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapClaim) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapClaim.Merge(m, src) +} +func (m *SwapClaim) XXX_Size() int { + return m.Size() +} +func (m *SwapClaim) XXX_DiscardUnknown() { + xxx_messageInfo_SwapClaim.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapClaim proto.InternalMessageInfo + +func (m *SwapClaim) GetProof() []byte { + if m != nil { + return m.Proof + } + return nil +} + +func (m *SwapClaim) GetBody() *SwapClaimBody { + if m != nil { + return m.Body + } + return nil +} + +func (m *SwapClaim) GetEpochDuration() uint64 { + if m != nil { + return m.EpochDuration + } + return 0 +} + +// Encapsulates the authorized fields of the SwapClaim action, used in signing. +type SwapClaimBody struct { + // The nullifier for the Swap commitment to be consumed. + Nullifier *v1alpha1.Nullifier `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + // The fee allows `SwapClaim` without an additional `Spend`. + Fee *v1alpha1.Fee `protobuf:"bytes,2,opt,name=fee,proto3" json:"fee,omitempty"` + // Note output for asset 1. + Output_1Commitment *v1alpha1.StateCommitment `protobuf:"bytes,3,opt,name=output_1_commitment,json=output1Commitment,proto3" json:"output_1_commitment,omitempty"` + // Note output for asset 2. + Output_2Commitment *v1alpha1.StateCommitment `protobuf:"bytes,4,opt,name=output_2_commitment,json=output2Commitment,proto3" json:"output_2_commitment,omitempty"` + // Input and output amounts, and asset IDs for the assets in the swap. + OutputData *BatchSwapOutputData `protobuf:"bytes,6,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` +} + +func (m *SwapClaimBody) Reset() { *m = SwapClaimBody{} } +func (m *SwapClaimBody) String() string { return proto.CompactTextString(m) } +func (*SwapClaimBody) ProtoMessage() {} +func (*SwapClaimBody) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{2} +} +func (m *SwapClaimBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapClaimBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapClaimBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapClaimBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapClaimBody.Merge(m, src) +} +func (m *SwapClaimBody) XXX_Size() int { + return m.Size() +} +func (m *SwapClaimBody) XXX_DiscardUnknown() { + xxx_messageInfo_SwapClaimBody.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapClaimBody proto.InternalMessageInfo + +func (m *SwapClaimBody) GetNullifier() *v1alpha1.Nullifier { + if m != nil { + return m.Nullifier + } + return nil +} + +func (m *SwapClaimBody) GetFee() *v1alpha1.Fee { + if m != nil { + return m.Fee + } + return nil +} + +func (m *SwapClaimBody) GetOutput_1Commitment() *v1alpha1.StateCommitment { + if m != nil { + return m.Output_1Commitment + } + return nil +} + +func (m *SwapClaimBody) GetOutput_2Commitment() *v1alpha1.StateCommitment { + if m != nil { + return m.Output_2Commitment + } + return nil +} + +func (m *SwapClaimBody) GetOutputData() *BatchSwapOutputData { + if m != nil { + return m.OutputData + } + return nil +} + +// The authorized data of a Swap transaction. +type SwapBody struct { + // The trading pair to swap. + TradingPair *TradingPair `protobuf:"bytes,1,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + // The amount for asset 1. + Delta_1I *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_1_i,json=delta1I,proto3" json:"delta_1_i,omitempty"` + // The amount for asset 2. + Delta_2I *v1alpha1.Amount `protobuf:"bytes,3,opt,name=delta_2_i,json=delta2I,proto3" json:"delta_2_i,omitempty"` + // A commitment to a prepaid fee for the future SwapClaim. + // This is recorded separately from delta_j_i because it's shielded; + // in the future we'll want separate commitments to each delta_j_i + // anyways in order to prove consistency with flow encryption. + FeeCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,4,opt,name=fee_commitment,json=feeCommitment,proto3" json:"fee_commitment,omitempty"` + // The swap commitment and encryption of the swap data. + Payload *SwapPayload `protobuf:"bytes,5,opt,name=payload,proto3" json:"payload,omitempty"` +} + +func (m *SwapBody) Reset() { *m = SwapBody{} } +func (m *SwapBody) String() string { return proto.CompactTextString(m) } +func (*SwapBody) ProtoMessage() {} +func (*SwapBody) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{3} +} +func (m *SwapBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapBody.Merge(m, src) +} +func (m *SwapBody) XXX_Size() int { + return m.Size() +} +func (m *SwapBody) XXX_DiscardUnknown() { + xxx_messageInfo_SwapBody.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapBody proto.InternalMessageInfo + +func (m *SwapBody) GetTradingPair() *TradingPair { + if m != nil { + return m.TradingPair + } + return nil +} + +func (m *SwapBody) GetDelta_1I() *v1alpha1.Amount { + if m != nil { + return m.Delta_1I + } + return nil +} + +func (m *SwapBody) GetDelta_2I() *v1alpha1.Amount { + if m != nil { + return m.Delta_2I + } + return nil +} + +func (m *SwapBody) GetFeeCommitment() *v1alpha1.BalanceCommitment { + if m != nil { + return m.FeeCommitment + } + return nil +} + +func (m *SwapBody) GetPayload() *SwapPayload { + if m != nil { + return m.Payload + } + return nil +} + +type SwapPayload struct { + Commitment *v1alpha1.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` + EncryptedSwap []byte `protobuf:"bytes,2,opt,name=encrypted_swap,json=encryptedSwap,proto3" json:"encrypted_swap,omitempty"` +} + +func (m *SwapPayload) Reset() { *m = SwapPayload{} } +func (m *SwapPayload) String() string { return proto.CompactTextString(m) } +func (*SwapPayload) ProtoMessage() {} +func (*SwapPayload) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{4} +} +func (m *SwapPayload) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapPayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapPayload.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapPayload) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapPayload.Merge(m, src) +} +func (m *SwapPayload) XXX_Size() int { + return m.Size() +} +func (m *SwapPayload) XXX_DiscardUnknown() { + xxx_messageInfo_SwapPayload.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapPayload proto.InternalMessageInfo + +func (m *SwapPayload) GetCommitment() *v1alpha1.StateCommitment { + if m != nil { + return m.Commitment + } + return nil +} + +func (m *SwapPayload) GetEncryptedSwap() []byte { + if m != nil { + return m.EncryptedSwap + } + return nil +} + +type SwapPlaintext struct { + // The trading pair to swap. + TradingPair *TradingPair `protobuf:"bytes,1,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + // Input amount of asset 1 + Delta_1I *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_1_i,json=delta1I,proto3" json:"delta_1_i,omitempty"` + // Input amount of asset 2 + Delta_2I *v1alpha1.Amount `protobuf:"bytes,3,opt,name=delta_2_i,json=delta2I,proto3" json:"delta_2_i,omitempty"` + // Pre-paid fee to claim the swap + ClaimFee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=claim_fee,json=claimFee,proto3" json:"claim_fee,omitempty"` + // Address that will claim the swap outputs via SwapClaim. + ClaimAddress *v1alpha1.Address `protobuf:"bytes,5,opt,name=claim_address,json=claimAddress,proto3" json:"claim_address,omitempty"` + // Swap rseed (blinding factors are derived from this) + Rseed []byte `protobuf:"bytes,6,opt,name=rseed,proto3" json:"rseed,omitempty"` +} + +func (m *SwapPlaintext) Reset() { *m = SwapPlaintext{} } +func (m *SwapPlaintext) String() string { return proto.CompactTextString(m) } +func (*SwapPlaintext) ProtoMessage() {} +func (*SwapPlaintext) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{5} +} +func (m *SwapPlaintext) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapPlaintext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapPlaintext.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapPlaintext) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapPlaintext.Merge(m, src) +} +func (m *SwapPlaintext) XXX_Size() int { + return m.Size() +} +func (m *SwapPlaintext) XXX_DiscardUnknown() { + xxx_messageInfo_SwapPlaintext.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapPlaintext proto.InternalMessageInfo + +func (m *SwapPlaintext) GetTradingPair() *TradingPair { + if m != nil { + return m.TradingPair + } + return nil +} + +func (m *SwapPlaintext) GetDelta_1I() *v1alpha1.Amount { + if m != nil { + return m.Delta_1I + } + return nil +} + +func (m *SwapPlaintext) GetDelta_2I() *v1alpha1.Amount { + if m != nil { + return m.Delta_2I + } + return nil +} + +func (m *SwapPlaintext) GetClaimFee() *v1alpha1.Fee { + if m != nil { + return m.ClaimFee + } + return nil +} + +func (m *SwapPlaintext) GetClaimAddress() *v1alpha1.Address { + if m != nil { + return m.ClaimAddress + } + return nil +} + +func (m *SwapPlaintext) GetRseed() []byte { + if m != nil { + return m.Rseed + } + return nil +} + +type MockFlowCiphertext struct { + // Represents this transaction's contribution to flow's value. + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *MockFlowCiphertext) Reset() { *m = MockFlowCiphertext{} } +func (m *MockFlowCiphertext) String() string { return proto.CompactTextString(m) } +func (*MockFlowCiphertext) ProtoMessage() {} +func (*MockFlowCiphertext) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{6} +} +func (m *MockFlowCiphertext) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MockFlowCiphertext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MockFlowCiphertext.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MockFlowCiphertext) XXX_Merge(src proto.Message) { + xxx_messageInfo_MockFlowCiphertext.Merge(m, src) +} +func (m *MockFlowCiphertext) XXX_Size() int { + return m.Size() +} +func (m *MockFlowCiphertext) XXX_DiscardUnknown() { + xxx_messageInfo_MockFlowCiphertext.DiscardUnknown(m) +} + +var xxx_messageInfo_MockFlowCiphertext proto.InternalMessageInfo + +func (m *MockFlowCiphertext) GetValue() uint64 { + if m != nil { + return m.Value + } + return 0 +} + +type SwapPlan struct { + // The plaintext version of the swap to be performed. + SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` + // The blinding factor for the fee commitment. The fee in the SwapPlan is private to prevent linkability with the SwapClaim. + FeeBlinding []byte `protobuf:"bytes,2,opt,name=fee_blinding,json=feeBlinding,proto3" json:"fee_blinding,omitempty"` +} + +func (m *SwapPlan) Reset() { *m = SwapPlan{} } +func (m *SwapPlan) String() string { return proto.CompactTextString(m) } +func (*SwapPlan) ProtoMessage() {} +func (*SwapPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{7} +} +func (m *SwapPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapPlan.Merge(m, src) +} +func (m *SwapPlan) XXX_Size() int { + return m.Size() +} +func (m *SwapPlan) XXX_DiscardUnknown() { + xxx_messageInfo_SwapPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapPlan proto.InternalMessageInfo + +func (m *SwapPlan) GetSwapPlaintext() *SwapPlaintext { + if m != nil { + return m.SwapPlaintext + } + return nil +} + +func (m *SwapPlan) GetFeeBlinding() []byte { + if m != nil { + return m.FeeBlinding + } + return nil +} + +type SwapClaimPlan struct { + // The plaintext version of the swap to be performed. + SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` + // The position of the swap commitment. + Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` + // Input and output amounts for the Swap. + OutputData *BatchSwapOutputData `protobuf:"bytes,3,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` + // The epoch duration, used in proving. + EpochDuration uint64 `protobuf:"varint,4,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` +} + +func (m *SwapClaimPlan) Reset() { *m = SwapClaimPlan{} } +func (m *SwapClaimPlan) String() string { return proto.CompactTextString(m) } +func (*SwapClaimPlan) ProtoMessage() {} +func (*SwapClaimPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{8} +} +func (m *SwapClaimPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapClaimPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapClaimPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapClaimPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapClaimPlan.Merge(m, src) +} +func (m *SwapClaimPlan) XXX_Size() int { + return m.Size() +} +func (m *SwapClaimPlan) XXX_DiscardUnknown() { + xxx_messageInfo_SwapClaimPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapClaimPlan proto.InternalMessageInfo + +func (m *SwapClaimPlan) GetSwapPlaintext() *SwapPlaintext { + if m != nil { + return m.SwapPlaintext + } + return nil +} + +func (m *SwapClaimPlan) GetPosition() uint64 { + if m != nil { + return m.Position + } + return 0 +} + +func (m *SwapClaimPlan) GetOutputData() *BatchSwapOutputData { + if m != nil { + return m.OutputData + } + return nil +} + +func (m *SwapClaimPlan) GetEpochDuration() uint64 { + if m != nil { + return m.EpochDuration + } + return 0 +} + +type SwapView struct { + // Types that are valid to be assigned to SwapView: + // + // *SwapView_Visible_ + // *SwapView_Opaque_ + SwapView isSwapView_SwapView `protobuf_oneof:"swap_view"` +} + +func (m *SwapView) Reset() { *m = SwapView{} } +func (m *SwapView) String() string { return proto.CompactTextString(m) } +func (*SwapView) ProtoMessage() {} +func (*SwapView) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{9} +} +func (m *SwapView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapView) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapView.Merge(m, src) +} +func (m *SwapView) XXX_Size() int { + return m.Size() +} +func (m *SwapView) XXX_DiscardUnknown() { + xxx_messageInfo_SwapView.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapView proto.InternalMessageInfo + +type isSwapView_SwapView interface { + isSwapView_SwapView() + MarshalTo([]byte) (int, error) + Size() int +} + +type SwapView_Visible_ struct { + Visible *SwapView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof" json:"visible,omitempty"` +} +type SwapView_Opaque_ struct { + Opaque *SwapView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof" json:"opaque,omitempty"` +} + +func (*SwapView_Visible_) isSwapView_SwapView() {} +func (*SwapView_Opaque_) isSwapView_SwapView() {} + +func (m *SwapView) GetSwapView() isSwapView_SwapView { + if m != nil { + return m.SwapView + } + return nil +} + +func (m *SwapView) GetVisible() *SwapView_Visible { + if x, ok := m.GetSwapView().(*SwapView_Visible_); ok { + return x.Visible + } + return nil +} + +func (m *SwapView) GetOpaque() *SwapView_Opaque { + if x, ok := m.GetSwapView().(*SwapView_Opaque_); ok { + return x.Opaque + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SwapView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SwapView_Visible_)(nil), + (*SwapView_Opaque_)(nil), + } +} + +type SwapView_Visible struct { + Swap *Swap `protobuf:"bytes,1,opt,name=swap,proto3" json:"swap,omitempty"` + SwapPlaintext *SwapPlaintext `protobuf:"bytes,3,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` +} + +func (m *SwapView_Visible) Reset() { *m = SwapView_Visible{} } +func (m *SwapView_Visible) String() string { return proto.CompactTextString(m) } +func (*SwapView_Visible) ProtoMessage() {} +func (*SwapView_Visible) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{9, 0} +} +func (m *SwapView_Visible) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapView_Visible) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapView_Visible.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapView_Visible) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapView_Visible.Merge(m, src) +} +func (m *SwapView_Visible) XXX_Size() int { + return m.Size() +} +func (m *SwapView_Visible) XXX_DiscardUnknown() { + xxx_messageInfo_SwapView_Visible.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapView_Visible proto.InternalMessageInfo + +func (m *SwapView_Visible) GetSwap() *Swap { + if m != nil { + return m.Swap + } + return nil +} + +func (m *SwapView_Visible) GetSwapPlaintext() *SwapPlaintext { + if m != nil { + return m.SwapPlaintext + } + return nil +} + +type SwapView_Opaque struct { + Swap *Swap `protobuf:"bytes,1,opt,name=swap,proto3" json:"swap,omitempty"` +} + +func (m *SwapView_Opaque) Reset() { *m = SwapView_Opaque{} } +func (m *SwapView_Opaque) String() string { return proto.CompactTextString(m) } +func (*SwapView_Opaque) ProtoMessage() {} +func (*SwapView_Opaque) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{9, 1} +} +func (m *SwapView_Opaque) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapView_Opaque) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapView_Opaque.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapView_Opaque) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapView_Opaque.Merge(m, src) +} +func (m *SwapView_Opaque) XXX_Size() int { + return m.Size() +} +func (m *SwapView_Opaque) XXX_DiscardUnknown() { + xxx_messageInfo_SwapView_Opaque.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapView_Opaque proto.InternalMessageInfo + +func (m *SwapView_Opaque) GetSwap() *Swap { + if m != nil { + return m.Swap + } + return nil +} + +type SwapClaimView struct { + // Types that are valid to be assigned to SwapClaimView: + // + // *SwapClaimView_Visible_ + // *SwapClaimView_Opaque_ + SwapClaimView isSwapClaimView_SwapClaimView `protobuf_oneof:"swap_claim_view"` +} + +func (m *SwapClaimView) Reset() { *m = SwapClaimView{} } +func (m *SwapClaimView) String() string { return proto.CompactTextString(m) } +func (*SwapClaimView) ProtoMessage() {} +func (*SwapClaimView) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{10} +} +func (m *SwapClaimView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapClaimView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapClaimView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapClaimView) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapClaimView.Merge(m, src) +} +func (m *SwapClaimView) XXX_Size() int { + return m.Size() +} +func (m *SwapClaimView) XXX_DiscardUnknown() { + xxx_messageInfo_SwapClaimView.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapClaimView proto.InternalMessageInfo + +type isSwapClaimView_SwapClaimView interface { + isSwapClaimView_SwapClaimView() + MarshalTo([]byte) (int, error) + Size() int +} + +type SwapClaimView_Visible_ struct { + Visible *SwapClaimView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof" json:"visible,omitempty"` +} +type SwapClaimView_Opaque_ struct { + Opaque *SwapClaimView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof" json:"opaque,omitempty"` +} + +func (*SwapClaimView_Visible_) isSwapClaimView_SwapClaimView() {} +func (*SwapClaimView_Opaque_) isSwapClaimView_SwapClaimView() {} + +func (m *SwapClaimView) GetSwapClaimView() isSwapClaimView_SwapClaimView { + if m != nil { + return m.SwapClaimView + } + return nil +} + +func (m *SwapClaimView) GetVisible() *SwapClaimView_Visible { + if x, ok := m.GetSwapClaimView().(*SwapClaimView_Visible_); ok { + return x.Visible + } + return nil +} + +func (m *SwapClaimView) GetOpaque() *SwapClaimView_Opaque { + if x, ok := m.GetSwapClaimView().(*SwapClaimView_Opaque_); ok { + return x.Opaque + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SwapClaimView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SwapClaimView_Visible_)(nil), + (*SwapClaimView_Opaque_)(nil), + } +} + +type SwapClaimView_Visible struct { + SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` + Output_1 *v1alpha1.Note `protobuf:"bytes,2,opt,name=output_1,json=output1,proto3" json:"output_1,omitempty"` + Output_2 *v1alpha1.Note `protobuf:"bytes,3,opt,name=output_2,json=output2,proto3" json:"output_2,omitempty"` +} + +func (m *SwapClaimView_Visible) Reset() { *m = SwapClaimView_Visible{} } +func (m *SwapClaimView_Visible) String() string { return proto.CompactTextString(m) } +func (*SwapClaimView_Visible) ProtoMessage() {} +func (*SwapClaimView_Visible) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{10, 0} +} +func (m *SwapClaimView_Visible) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapClaimView_Visible) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapClaimView_Visible.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapClaimView_Visible) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapClaimView_Visible.Merge(m, src) +} +func (m *SwapClaimView_Visible) XXX_Size() int { + return m.Size() +} +func (m *SwapClaimView_Visible) XXX_DiscardUnknown() { + xxx_messageInfo_SwapClaimView_Visible.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapClaimView_Visible proto.InternalMessageInfo + +func (m *SwapClaimView_Visible) GetSwapClaim() *SwapClaim { + if m != nil { + return m.SwapClaim + } + return nil +} + +func (m *SwapClaimView_Visible) GetOutput_1() *v1alpha1.Note { + if m != nil { + return m.Output_1 + } + return nil +} + +func (m *SwapClaimView_Visible) GetOutput_2() *v1alpha1.Note { + if m != nil { + return m.Output_2 + } + return nil +} + +type SwapClaimView_Opaque struct { + SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` +} + +func (m *SwapClaimView_Opaque) Reset() { *m = SwapClaimView_Opaque{} } +func (m *SwapClaimView_Opaque) String() string { return proto.CompactTextString(m) } +func (*SwapClaimView_Opaque) ProtoMessage() {} +func (*SwapClaimView_Opaque) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{10, 1} +} +func (m *SwapClaimView_Opaque) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapClaimView_Opaque) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapClaimView_Opaque.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapClaimView_Opaque) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapClaimView_Opaque.Merge(m, src) +} +func (m *SwapClaimView_Opaque) XXX_Size() int { + return m.Size() +} +func (m *SwapClaimView_Opaque) XXX_DiscardUnknown() { + xxx_messageInfo_SwapClaimView_Opaque.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapClaimView_Opaque proto.InternalMessageInfo + +func (m *SwapClaimView_Opaque) GetSwapClaim() *SwapClaim { + if m != nil { + return m.SwapClaim + } + return nil +} + +// Holds two asset IDs. Ordering doesn't reflect trading direction. Instead, we +// require `asset_1 < asset_2` as field elements, to ensure a canonical +// representation of an unordered pair. +type TradingPair struct { + // The first asset of the pair. + Asset_1 *v1alpha1.AssetId `protobuf:"bytes,1,opt,name=asset_1,json=asset1,proto3" json:"asset_1,omitempty"` + // The second asset of the pair. + Asset_2 *v1alpha1.AssetId `protobuf:"bytes,2,opt,name=asset_2,json=asset2,proto3" json:"asset_2,omitempty"` +} + +func (m *TradingPair) Reset() { *m = TradingPair{} } +func (m *TradingPair) String() string { return proto.CompactTextString(m) } +func (*TradingPair) ProtoMessage() {} +func (*TradingPair) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{11} +} +func (m *TradingPair) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TradingPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TradingPair.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TradingPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_TradingPair.Merge(m, src) +} +func (m *TradingPair) XXX_Size() int { + return m.Size() +} +func (m *TradingPair) XXX_DiscardUnknown() { + xxx_messageInfo_TradingPair.DiscardUnknown(m) +} + +var xxx_messageInfo_TradingPair proto.InternalMessageInfo + +func (m *TradingPair) GetAsset_1() *v1alpha1.AssetId { + if m != nil { + return m.Asset_1 + } + return nil +} + +func (m *TradingPair) GetAsset_2() *v1alpha1.AssetId { + if m != nil { + return m.Asset_2 + } + return nil +} + +// Encodes a trading pair starting from asset `start` +// and ending on asset `end`. +type DirectedTradingPair struct { + // The start asset of the pair. + Start *v1alpha1.AssetId `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` + // The end asset of the pair. + End *v1alpha1.AssetId `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` +} + +func (m *DirectedTradingPair) Reset() { *m = DirectedTradingPair{} } +func (m *DirectedTradingPair) String() string { return proto.CompactTextString(m) } +func (*DirectedTradingPair) ProtoMessage() {} +func (*DirectedTradingPair) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{12} +} +func (m *DirectedTradingPair) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DirectedTradingPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DirectedTradingPair.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DirectedTradingPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_DirectedTradingPair.Merge(m, src) +} +func (m *DirectedTradingPair) XXX_Size() int { + return m.Size() +} +func (m *DirectedTradingPair) XXX_DiscardUnknown() { + xxx_messageInfo_DirectedTradingPair.DiscardUnknown(m) +} + +var xxx_messageInfo_DirectedTradingPair proto.InternalMessageInfo + +func (m *DirectedTradingPair) GetStart() *v1alpha1.AssetId { + if m != nil { + return m.Start + } + return nil +} + +func (m *DirectedTradingPair) GetEnd() *v1alpha1.AssetId { + if m != nil { + return m.End + } + return nil +} + +// Records the result of a batch swap on-chain. +// +// Used as a public input to a swap claim proof, as it implies the effective +// clearing price for the batch. +type BatchSwapOutputData struct { + // The total amount of asset 1 that was input to the batch swap. + Delta_1 uint64 `protobuf:"varint,1,opt,name=delta_1,json=delta1,proto3" json:"delta_1,omitempty"` + // The total amount of asset 2 that was input to the batch swap. + Delta_2 uint64 `protobuf:"varint,2,opt,name=delta_2,json=delta2,proto3" json:"delta_2,omitempty"` + // The total amount of asset 1 that was output from the batch swap. + Lambda_1 uint64 `protobuf:"varint,3,opt,name=lambda_1,json=lambda1,proto3" json:"lambda_1,omitempty"` + // The total amount of asset 2 that was output from the batch swap. + Lambda_2 uint64 `protobuf:"varint,4,opt,name=lambda_2,json=lambda2,proto3" json:"lambda_2,omitempty"` + // Whether the swap succeeded or not. + Success bool `protobuf:"varint,5,opt,name=success,proto3" json:"success,omitempty"` + // The height for which the batch swap data is valid. + Height uint64 `protobuf:"varint,6,opt,name=height,proto3" json:"height,omitempty"` + // The trading pair associated with the batch swap. + TradingPair *TradingPair `protobuf:"bytes,7,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` +} + +func (m *BatchSwapOutputData) Reset() { *m = BatchSwapOutputData{} } +func (m *BatchSwapOutputData) String() string { return proto.CompactTextString(m) } +func (*BatchSwapOutputData) ProtoMessage() {} +func (*BatchSwapOutputData) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{13} +} +func (m *BatchSwapOutputData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BatchSwapOutputData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BatchSwapOutputData.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BatchSwapOutputData) XXX_Merge(src proto.Message) { + xxx_messageInfo_BatchSwapOutputData.Merge(m, src) +} +func (m *BatchSwapOutputData) XXX_Size() int { + return m.Size() +} +func (m *BatchSwapOutputData) XXX_DiscardUnknown() { + xxx_messageInfo_BatchSwapOutputData.DiscardUnknown(m) +} + +var xxx_messageInfo_BatchSwapOutputData proto.InternalMessageInfo + +func (m *BatchSwapOutputData) GetDelta_1() uint64 { + if m != nil { + return m.Delta_1 + } + return 0 +} + +func (m *BatchSwapOutputData) GetDelta_2() uint64 { + if m != nil { + return m.Delta_2 + } + return 0 +} + +func (m *BatchSwapOutputData) GetLambda_1() uint64 { + if m != nil { + return m.Lambda_1 + } + return 0 +} + +func (m *BatchSwapOutputData) GetLambda_2() uint64 { + if m != nil { + return m.Lambda_2 + } + return 0 +} + +func (m *BatchSwapOutputData) GetSuccess() bool { + if m != nil { + return m.Success + } + return false +} + +func (m *BatchSwapOutputData) GetHeight() uint64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *BatchSwapOutputData) GetTradingPair() *TradingPair { + if m != nil { + return m.TradingPair + } + return nil +} + +// The trading function for a specific pair. +// For a pair (asset_1, asset_2), a trading function is defined by: +// `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. +// The trading function is frequently referred to as "phi". +type TradingFunction struct { + Component *BareTradingFunction `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"` + Pair *TradingPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` +} + +func (m *TradingFunction) Reset() { *m = TradingFunction{} } +func (m *TradingFunction) String() string { return proto.CompactTextString(m) } +func (*TradingFunction) ProtoMessage() {} +func (*TradingFunction) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{14} +} +func (m *TradingFunction) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TradingFunction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TradingFunction.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TradingFunction) XXX_Merge(src proto.Message) { + xxx_messageInfo_TradingFunction.Merge(m, src) +} +func (m *TradingFunction) XXX_Size() int { + return m.Size() +} +func (m *TradingFunction) XXX_DiscardUnknown() { + xxx_messageInfo_TradingFunction.DiscardUnknown(m) +} + +var xxx_messageInfo_TradingFunction proto.InternalMessageInfo + +func (m *TradingFunction) GetComponent() *BareTradingFunction { + if m != nil { + return m.Component + } + return nil +} + +func (m *TradingFunction) GetPair() *TradingPair { + if m != nil { + return m.Pair + } + return nil +} + +// The minimum amount of data describing a trading function. +// +// This implicitly treats the trading function as being between assets 1 and 2, +// without specifying what those assets are, to avoid duplicating data (each +// asset ID alone is twice the size of the trading function). +type BareTradingFunction struct { + Fee uint32 `protobuf:"varint,1,opt,name=fee,proto3" json:"fee,omitempty"` + // This is not actually an amount, it's an integer the same width as an amount + P *v1alpha1.Amount `protobuf:"bytes,2,opt,name=p,proto3" json:"p,omitempty"` + // This is not actually an amount, it's an integer the same width as an amount + Q *v1alpha1.Amount `protobuf:"bytes,3,opt,name=q,proto3" json:"q,omitempty"` +} + +func (m *BareTradingFunction) Reset() { *m = BareTradingFunction{} } +func (m *BareTradingFunction) String() string { return proto.CompactTextString(m) } +func (*BareTradingFunction) ProtoMessage() {} +func (*BareTradingFunction) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{15} +} +func (m *BareTradingFunction) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BareTradingFunction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BareTradingFunction.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BareTradingFunction) XXX_Merge(src proto.Message) { + xxx_messageInfo_BareTradingFunction.Merge(m, src) +} +func (m *BareTradingFunction) XXX_Size() int { + return m.Size() +} +func (m *BareTradingFunction) XXX_DiscardUnknown() { + xxx_messageInfo_BareTradingFunction.DiscardUnknown(m) +} + +var xxx_messageInfo_BareTradingFunction proto.InternalMessageInfo + +func (m *BareTradingFunction) GetFee() uint32 { + if m != nil { + return m.Fee + } + return 0 +} + +func (m *BareTradingFunction) GetP() *v1alpha1.Amount { + if m != nil { + return m.P + } + return nil +} + +func (m *BareTradingFunction) GetQ() *v1alpha1.Amount { + if m != nil { + return m.Q + } + return nil +} + +// The reserves of a position. +// +// Like a position, this implicitly treats the trading function as being +// between assets 1 and 2, without specifying what those assets are, to avoid +// duplicating data (each asset ID alone is four times the size of the +// reserves). +type Reserves struct { + R1 *v1alpha1.Amount `protobuf:"bytes,1,opt,name=r1,proto3" json:"r1,omitempty"` + R2 *v1alpha1.Amount `protobuf:"bytes,2,opt,name=r2,proto3" json:"r2,omitempty"` +} + +func (m *Reserves) Reset() { *m = Reserves{} } +func (m *Reserves) String() string { return proto.CompactTextString(m) } +func (*Reserves) ProtoMessage() {} +func (*Reserves) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{16} +} +func (m *Reserves) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Reserves) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Reserves.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Reserves) XXX_Merge(src proto.Message) { + xxx_messageInfo_Reserves.Merge(m, src) +} +func (m *Reserves) XXX_Size() int { + return m.Size() +} +func (m *Reserves) XXX_DiscardUnknown() { + xxx_messageInfo_Reserves.DiscardUnknown(m) +} + +var xxx_messageInfo_Reserves proto.InternalMessageInfo + +func (m *Reserves) GetR1() *v1alpha1.Amount { + if m != nil { + return m.R1 + } + return nil +} + +func (m *Reserves) GetR2() *v1alpha1.Amount { + if m != nil { + return m.R2 + } + return nil +} + +// Data identifying a position. +type Position struct { + Phi *TradingFunction `protobuf:"bytes,1,opt,name=phi,proto3" json:"phi,omitempty"` + // A random value used to disambiguate different positions with the exact same + // trading function. The chain should reject newly created positions with the + // same nonce as an existing position. This ensures that `PositionId`s will + // be unique, and allows us to track position ownership with a + // sequence of stateful NFTs based on the `PositionId`. + Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` +} + +func (m *Position) Reset() { *m = Position{} } +func (m *Position) String() string { return proto.CompactTextString(m) } +func (*Position) ProtoMessage() {} +func (*Position) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{17} +} +func (m *Position) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Position) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Position.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Position) XXX_Merge(src proto.Message) { + xxx_messageInfo_Position.Merge(m, src) +} +func (m *Position) XXX_Size() int { + return m.Size() +} +func (m *Position) XXX_DiscardUnknown() { + xxx_messageInfo_Position.DiscardUnknown(m) +} + +var xxx_messageInfo_Position proto.InternalMessageInfo + +func (m *Position) GetPhi() *TradingFunction { + if m != nil { + return m.Phi + } + return nil +} + +func (m *Position) GetNonce() []byte { + if m != nil { + return m.Nonce + } + return nil +} + +// A hash of a `Position`. +type PositionId struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *PositionId) Reset() { *m = PositionId{} } +func (m *PositionId) String() string { return proto.CompactTextString(m) } +func (*PositionId) ProtoMessage() {} +func (*PositionId) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{18} +} +func (m *PositionId) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionId.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionId) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionId.Merge(m, src) +} +func (m *PositionId) XXX_Size() int { + return m.Size() +} +func (m *PositionId) XXX_DiscardUnknown() { + xxx_messageInfo_PositionId.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionId proto.InternalMessageInfo + +func (m *PositionId) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// The state of a position. +type PositionState struct { + State PositionState_PositionStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.dex.v1alpha1.PositionState_PositionStateEnum" json:"state,omitempty"` +} + +func (m *PositionState) Reset() { *m = PositionState{} } +func (m *PositionState) String() string { return proto.CompactTextString(m) } +func (*PositionState) ProtoMessage() {} +func (*PositionState) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{19} +} +func (m *PositionState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionState) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionState.Merge(m, src) +} +func (m *PositionState) XXX_Size() int { + return m.Size() +} +func (m *PositionState) XXX_DiscardUnknown() { + xxx_messageInfo_PositionState.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionState proto.InternalMessageInfo + +func (m *PositionState) GetState() PositionState_PositionStateEnum { + if m != nil { + return m.State + } + return PositionState_POSITION_STATE_ENUM_UNSPECIFIED +} + +// The data recorded about a position on-chain. +type PositionMetadata struct { + Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + State *PositionState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` + Reserves *Reserves `protobuf:"bytes,3,opt,name=reserves,proto3" json:"reserves,omitempty"` +} + +func (m *PositionMetadata) Reset() { *m = PositionMetadata{} } +func (m *PositionMetadata) String() string { return proto.CompactTextString(m) } +func (*PositionMetadata) ProtoMessage() {} +func (*PositionMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{20} +} +func (m *PositionMetadata) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionMetadata.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionMetadata.Merge(m, src) +} +func (m *PositionMetadata) XXX_Size() int { + return m.Size() +} +func (m *PositionMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_PositionMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionMetadata proto.InternalMessageInfo + +func (m *PositionMetadata) GetPosition() *Position { + if m != nil { + return m.Position + } + return nil +} + +func (m *PositionMetadata) GetState() *PositionState { + if m != nil { + return m.State + } + return nil +} + +func (m *PositionMetadata) GetReserves() *Reserves { + if m != nil { + return m.Reserves + } + return nil +} + +// An LPNFT tracking both ownership and state of a position. +// +// Tracking the state as part of the LPNFT means that all LP-related actions can +// be authorized by spending funds: a state transition (e.g., closing a +// position) is modeled as spending an "open position LPNFT" and minting a +// "closed position LPNFT" for the same (globally unique) position ID. +// +// This means that the LP mechanics can be agnostic to the mechanism used to +// record custody and spend authorization. For instance, they can be recorded +// in the shielded pool, where custody is based on off-chain keys, or they could +// be recorded in a programmatic on-chain account (in the future, e.g., to +// support interchain accounts). This also means that LP-related actions don't +// require any cryptographic implementation (proofs, signatures, etc), other +// than hooking into the value commitment mechanism used for transaction +// balances. +type LpNft struct { + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + State *PositionState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` +} + +func (m *LpNft) Reset() { *m = LpNft{} } +func (m *LpNft) String() string { return proto.CompactTextString(m) } +func (*LpNft) ProtoMessage() {} +func (*LpNft) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{21} +} +func (m *LpNft) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *LpNft) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_LpNft.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *LpNft) XXX_Merge(src proto.Message) { + xxx_messageInfo_LpNft.Merge(m, src) +} +func (m *LpNft) XXX_Size() int { + return m.Size() +} +func (m *LpNft) XXX_DiscardUnknown() { + xxx_messageInfo_LpNft.DiscardUnknown(m) +} + +var xxx_messageInfo_LpNft proto.InternalMessageInfo + +func (m *LpNft) GetPositionId() *PositionId { + if m != nil { + return m.PositionId + } + return nil +} + +func (m *LpNft) GetState() *PositionState { + if m != nil { + return m.State + } + return nil +} + +// A transaction action that opens a new position. +// +// This action's contribution to the transaction's value balance is to consume +// the initial reserves and contribute an opened position NFT. +type PositionOpen struct { + // Contains the data defining the position, sufficient to compute its `PositionId`. + // + // Positions are immutable, so the `PositionData` (and hence the `PositionId`) + // are unchanged over the entire lifetime of the position. + Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + // The initial reserves of the position. Unlike the `PositionData`, the + // reserves evolve over time as trades are executed against the position. + InitialReserves *Reserves `protobuf:"bytes,2,opt,name=initial_reserves,json=initialReserves,proto3" json:"initial_reserves,omitempty"` +} + +func (m *PositionOpen) Reset() { *m = PositionOpen{} } +func (m *PositionOpen) String() string { return proto.CompactTextString(m) } +func (*PositionOpen) ProtoMessage() {} +func (*PositionOpen) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{22} +} +func (m *PositionOpen) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionOpen) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionOpen.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionOpen) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionOpen.Merge(m, src) +} +func (m *PositionOpen) XXX_Size() int { + return m.Size() +} +func (m *PositionOpen) XXX_DiscardUnknown() { + xxx_messageInfo_PositionOpen.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionOpen proto.InternalMessageInfo + +func (m *PositionOpen) GetPosition() *Position { + if m != nil { + return m.Position + } + return nil +} + +func (m *PositionOpen) GetInitialReserves() *Reserves { + if m != nil { + return m.InitialReserves + } + return nil +} + +// A transaction action that closes a position. +// +// This action's contribution to the transaction's value balance is to consume +// an opened position NFT and contribute a closed position NFT. +// +// Closing a position does not immediately withdraw funds, because Penumbra +// transactions (like any ZK transaction model) are early-binding: the prover +// must know the state transition they prove knowledge of, and they cannot know +// the final reserves with certainty until after the position has been deactivated. +type PositionClose struct { + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` +} + +func (m *PositionClose) Reset() { *m = PositionClose{} } +func (m *PositionClose) String() string { return proto.CompactTextString(m) } +func (*PositionClose) ProtoMessage() {} +func (*PositionClose) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{23} +} +func (m *PositionClose) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionClose) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionClose.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionClose) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionClose.Merge(m, src) +} +func (m *PositionClose) XXX_Size() int { + return m.Size() +} +func (m *PositionClose) XXX_DiscardUnknown() { + xxx_messageInfo_PositionClose.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionClose proto.InternalMessageInfo + +func (m *PositionClose) GetPositionId() *PositionId { + if m != nil { + return m.PositionId + } + return nil +} + +// A transaction action that withdraws funds from a closed position. +// +// This action's contribution to the transaction's value balance is to consume a +// closed position NFT and contribute a withdrawn position NFT, as well as all +// of the funds that were in the position at the time of closing. +type PositionWithdraw struct { + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + // A transparent (zero blinding factor) commitment to the position's final reserves and fees. + // + // The chain will check this commitment by recomputing it with the on-chain state. + ReservesCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,2,opt,name=reserves_commitment,json=reservesCommitment,proto3" json:"reserves_commitment,omitempty"` +} + +func (m *PositionWithdraw) Reset() { *m = PositionWithdraw{} } +func (m *PositionWithdraw) String() string { return proto.CompactTextString(m) } +func (*PositionWithdraw) ProtoMessage() {} +func (*PositionWithdraw) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{24} +} +func (m *PositionWithdraw) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionWithdraw) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionWithdraw.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionWithdraw) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionWithdraw.Merge(m, src) +} +func (m *PositionWithdraw) XXX_Size() int { + return m.Size() +} +func (m *PositionWithdraw) XXX_DiscardUnknown() { + xxx_messageInfo_PositionWithdraw.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionWithdraw proto.InternalMessageInfo + +func (m *PositionWithdraw) GetPositionId() *PositionId { + if m != nil { + return m.PositionId + } + return nil +} + +func (m *PositionWithdraw) GetReservesCommitment() *v1alpha1.BalanceCommitment { + if m != nil { + return m.ReservesCommitment + } + return nil +} + +// A transaction action that claims retroactive rewards for a historical +// position. +// +// This action's contribution to the transaction's value balance is to consume a +// withdrawn position NFT and contribute its reward balance. +type PositionRewardClaim struct { + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + // A transparent (zero blinding factor) commitment to the position's accumulated rewards. + // + // The chain will check this commitment by recomputing it with the on-chain state. + RewardsCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,2,opt,name=rewards_commitment,json=rewardsCommitment,proto3" json:"rewards_commitment,omitempty"` +} + +func (m *PositionRewardClaim) Reset() { *m = PositionRewardClaim{} } +func (m *PositionRewardClaim) String() string { return proto.CompactTextString(m) } +func (*PositionRewardClaim) ProtoMessage() {} +func (*PositionRewardClaim) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{25} +} +func (m *PositionRewardClaim) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionRewardClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionRewardClaim.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionRewardClaim) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionRewardClaim.Merge(m, src) +} +func (m *PositionRewardClaim) XXX_Size() int { + return m.Size() +} +func (m *PositionRewardClaim) XXX_DiscardUnknown() { + xxx_messageInfo_PositionRewardClaim.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionRewardClaim proto.InternalMessageInfo + +func (m *PositionRewardClaim) GetPositionId() *PositionId { + if m != nil { + return m.PositionId + } + return nil +} + +func (m *PositionRewardClaim) GetRewardsCommitment() *v1alpha1.BalanceCommitment { + if m != nil { + return m.RewardsCommitment + } + return nil +} + +// Contains a path for a trade, including the trading pair (with direction), the trading +// function defining their relationship, and the route taken between the two assets. +type Path struct { + Pair *DirectedTradingPair `protobuf:"bytes,1,opt,name=pair,proto3" json:"pair,omitempty"` + Route []*v1alpha1.AssetId `protobuf:"bytes,2,rep,name=route,proto3" json:"route,omitempty"` + Phi *BareTradingFunction `protobuf:"bytes,3,opt,name=phi,proto3" json:"phi,omitempty"` +} + +func (m *Path) Reset() { *m = Path{} } +func (m *Path) String() string { return proto.CompactTextString(m) } +func (*Path) ProtoMessage() {} +func (*Path) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{26} +} +func (m *Path) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Path) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Path.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Path) XXX_Merge(src proto.Message) { + xxx_messageInfo_Path.Merge(m, src) +} +func (m *Path) XXX_Size() int { + return m.Size() +} +func (m *Path) XXX_DiscardUnknown() { + xxx_messageInfo_Path.DiscardUnknown(m) +} + +var xxx_messageInfo_Path proto.InternalMessageInfo + +func (m *Path) GetPair() *DirectedTradingPair { + if m != nil { + return m.Pair + } + return nil +} + +func (m *Path) GetRoute() []*v1alpha1.AssetId { + if m != nil { + return m.Route + } + return nil +} + +func (m *Path) GetPhi() *BareTradingFunction { + if m != nil { + return m.Phi + } + return nil +} + +// A path and the amount of the assets on either side that were traded. +type Trade struct { + // The path taken by the trade. + Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + // The amount of the start asset being traded. + StartAmount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=start_amount,json=startAmount,proto3" json:"start_amount,omitempty"` + // The amount of end asset being received. + EndAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=end_amount,json=endAmount,proto3" json:"end_amount,omitempty"` +} + +func (m *Trade) Reset() { *m = Trade{} } +func (m *Trade) String() string { return proto.CompactTextString(m) } +func (*Trade) ProtoMessage() {} +func (*Trade) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{27} +} +func (m *Trade) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Trade) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Trade.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Trade) XXX_Merge(src proto.Message) { + xxx_messageInfo_Trade.Merge(m, src) +} +func (m *Trade) XXX_Size() int { + return m.Size() +} +func (m *Trade) XXX_DiscardUnknown() { + xxx_messageInfo_Trade.DiscardUnknown(m) +} + +var xxx_messageInfo_Trade proto.InternalMessageInfo + +func (m *Trade) GetPath() *Path { + if m != nil { + return m.Path + } + return nil +} + +func (m *Trade) GetStartAmount() *v1alpha1.Amount { + if m != nil { + return m.StartAmount + } + return nil +} + +func (m *Trade) GetEndAmount() *v1alpha1.Amount { + if m != nil { + return m.EndAmount + } + return nil +} + +// Contains the entire execution of a particular swap. +type SwapExecution struct { + Trades []*Trade `protobuf:"bytes,1,rep,name=trades,proto3" json:"trades,omitempty"` +} + +func (m *SwapExecution) Reset() { *m = SwapExecution{} } +func (m *SwapExecution) String() string { return proto.CompactTextString(m) } +func (*SwapExecution) ProtoMessage() {} +func (*SwapExecution) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{28} +} +func (m *SwapExecution) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapExecution.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapExecution) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapExecution.Merge(m, src) +} +func (m *SwapExecution) XXX_Size() int { + return m.Size() +} +func (m *SwapExecution) XXX_DiscardUnknown() { + xxx_messageInfo_SwapExecution.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapExecution proto.InternalMessageInfo + +func (m *SwapExecution) GetTrades() []*Trade { + if m != nil { + return m.Trades + } + return nil +} + +// Contains private and public data for withdrawing funds from a closed position. +type PositionWithdrawPlan struct { + Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` +} + +func (m *PositionWithdrawPlan) Reset() { *m = PositionWithdrawPlan{} } +func (m *PositionWithdrawPlan) String() string { return proto.CompactTextString(m) } +func (*PositionWithdrawPlan) ProtoMessage() {} +func (*PositionWithdrawPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{29} +} +func (m *PositionWithdrawPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionWithdrawPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionWithdrawPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionWithdrawPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionWithdrawPlan.Merge(m, src) +} +func (m *PositionWithdrawPlan) XXX_Size() int { + return m.Size() +} +func (m *PositionWithdrawPlan) XXX_DiscardUnknown() { + xxx_messageInfo_PositionWithdrawPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionWithdrawPlan proto.InternalMessageInfo + +func (m *PositionWithdrawPlan) GetReserves() *Reserves { + if m != nil { + return m.Reserves + } + return nil +} + +// Contains private and public data for claiming rewards from a position. +type PositionRewardClaimPlan struct { + Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` +} + +func (m *PositionRewardClaimPlan) Reset() { *m = PositionRewardClaimPlan{} } +func (m *PositionRewardClaimPlan) String() string { return proto.CompactTextString(m) } +func (*PositionRewardClaimPlan) ProtoMessage() {} +func (*PositionRewardClaimPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{30} +} +func (m *PositionRewardClaimPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PositionRewardClaimPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PositionRewardClaimPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PositionRewardClaimPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_PositionRewardClaimPlan.Merge(m, src) +} +func (m *PositionRewardClaimPlan) XXX_Size() int { + return m.Size() +} +func (m *PositionRewardClaimPlan) XXX_DiscardUnknown() { + xxx_messageInfo_PositionRewardClaimPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_PositionRewardClaimPlan proto.InternalMessageInfo + +func (m *PositionRewardClaimPlan) GetReserves() *Reserves { + if m != nil { + return m.Reserves + } + return nil +} + +func init() { + proto.RegisterEnum("penumbra.core.dex.v1alpha1.PositionState_PositionStateEnum", PositionState_PositionStateEnum_name, PositionState_PositionStateEnum_value) + proto.RegisterType((*Swap)(nil), "penumbra.core.dex.v1alpha1.Swap") + proto.RegisterType((*SwapClaim)(nil), "penumbra.core.dex.v1alpha1.SwapClaim") + proto.RegisterType((*SwapClaimBody)(nil), "penumbra.core.dex.v1alpha1.SwapClaimBody") + proto.RegisterType((*SwapBody)(nil), "penumbra.core.dex.v1alpha1.SwapBody") + proto.RegisterType((*SwapPayload)(nil), "penumbra.core.dex.v1alpha1.SwapPayload") + proto.RegisterType((*SwapPlaintext)(nil), "penumbra.core.dex.v1alpha1.SwapPlaintext") + proto.RegisterType((*MockFlowCiphertext)(nil), "penumbra.core.dex.v1alpha1.MockFlowCiphertext") + proto.RegisterType((*SwapPlan)(nil), "penumbra.core.dex.v1alpha1.SwapPlan") + proto.RegisterType((*SwapClaimPlan)(nil), "penumbra.core.dex.v1alpha1.SwapClaimPlan") + proto.RegisterType((*SwapView)(nil), "penumbra.core.dex.v1alpha1.SwapView") + proto.RegisterType((*SwapView_Visible)(nil), "penumbra.core.dex.v1alpha1.SwapView.Visible") + proto.RegisterType((*SwapView_Opaque)(nil), "penumbra.core.dex.v1alpha1.SwapView.Opaque") + proto.RegisterType((*SwapClaimView)(nil), "penumbra.core.dex.v1alpha1.SwapClaimView") + proto.RegisterType((*SwapClaimView_Visible)(nil), "penumbra.core.dex.v1alpha1.SwapClaimView.Visible") + proto.RegisterType((*SwapClaimView_Opaque)(nil), "penumbra.core.dex.v1alpha1.SwapClaimView.Opaque") + proto.RegisterType((*TradingPair)(nil), "penumbra.core.dex.v1alpha1.TradingPair") + proto.RegisterType((*DirectedTradingPair)(nil), "penumbra.core.dex.v1alpha1.DirectedTradingPair") + proto.RegisterType((*BatchSwapOutputData)(nil), "penumbra.core.dex.v1alpha1.BatchSwapOutputData") + proto.RegisterType((*TradingFunction)(nil), "penumbra.core.dex.v1alpha1.TradingFunction") + proto.RegisterType((*BareTradingFunction)(nil), "penumbra.core.dex.v1alpha1.BareTradingFunction") + proto.RegisterType((*Reserves)(nil), "penumbra.core.dex.v1alpha1.Reserves") + proto.RegisterType((*Position)(nil), "penumbra.core.dex.v1alpha1.Position") + proto.RegisterType((*PositionId)(nil), "penumbra.core.dex.v1alpha1.PositionId") + proto.RegisterType((*PositionState)(nil), "penumbra.core.dex.v1alpha1.PositionState") + proto.RegisterType((*PositionMetadata)(nil), "penumbra.core.dex.v1alpha1.PositionMetadata") + proto.RegisterType((*LpNft)(nil), "penumbra.core.dex.v1alpha1.LpNft") + proto.RegisterType((*PositionOpen)(nil), "penumbra.core.dex.v1alpha1.PositionOpen") + proto.RegisterType((*PositionClose)(nil), "penumbra.core.dex.v1alpha1.PositionClose") + proto.RegisterType((*PositionWithdraw)(nil), "penumbra.core.dex.v1alpha1.PositionWithdraw") + proto.RegisterType((*PositionRewardClaim)(nil), "penumbra.core.dex.v1alpha1.PositionRewardClaim") + proto.RegisterType((*Path)(nil), "penumbra.core.dex.v1alpha1.Path") + proto.RegisterType((*Trade)(nil), "penumbra.core.dex.v1alpha1.Trade") + proto.RegisterType((*SwapExecution)(nil), "penumbra.core.dex.v1alpha1.SwapExecution") + proto.RegisterType((*PositionWithdrawPlan)(nil), "penumbra.core.dex.v1alpha1.PositionWithdrawPlan") + proto.RegisterType((*PositionRewardClaimPlan)(nil), "penumbra.core.dex.v1alpha1.PositionRewardClaimPlan") +} + +func init() { + proto.RegisterFile("penumbra/core/dex/v1alpha1/dex.proto", fileDescriptor_d1eba752ca2f0d70) +} + +var fileDescriptor_d1eba752ca2f0d70 = []byte{ + // 1788 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x5f, 0x6f, 0x23, 0x57, + 0x15, 0xcf, 0xd8, 0x4e, 0xec, 0x1c, 0x3b, 0xbb, 0xd9, 0x9b, 0x15, 0x0d, 0x41, 0x4d, 0x77, 0xa7, + 0xdd, 0xb2, 0x6c, 0x91, 0x53, 0x4f, 0x8b, 0x54, 0xb2, 0xb4, 0xdb, 0xf8, 0x4f, 0x1a, 0x6f, 0x1b, + 0x67, 0xb8, 0x49, 0x77, 0xab, 0xb2, 0x62, 0x74, 0x33, 0x73, 0xb3, 0x1e, 0x31, 0x9e, 0x99, 0x9d, + 0x19, 0x27, 0xce, 0x13, 0x12, 0x02, 0xf1, 0x84, 0xa0, 0x1f, 0x00, 0xa1, 0xe5, 0x91, 0xcf, 0x80, + 0xe0, 0x15, 0x21, 0x10, 0xfb, 0x06, 0x6f, 0xa0, 0xdd, 0x37, 0x3e, 0x00, 0x42, 0x82, 0x07, 0x74, + 0xff, 0xd9, 0x93, 0xc4, 0x8e, 0xed, 0x6c, 0x78, 0xe9, 0x9b, 0xef, 0x3d, 0xe7, 0xf7, 0x9b, 0x73, + 0xef, 0xef, 0xde, 0x73, 0xce, 0x4d, 0xe0, 0x8d, 0x90, 0xfa, 0xdd, 0xce, 0x7e, 0x44, 0xd6, 0xec, + 0x20, 0xa2, 0x6b, 0x0e, 0xed, 0xad, 0x1d, 0x56, 0x88, 0x17, 0xb6, 0x49, 0x85, 0x0d, 0xca, 0x61, + 0x14, 0x24, 0x01, 0x5a, 0x51, 0x5e, 0x65, 0xe6, 0x55, 0x66, 0x06, 0xe5, 0xb5, 0x72, 0xe7, 0x24, + 0x83, 0x1d, 0x1d, 0x87, 0x49, 0x30, 0x20, 0x11, 0x63, 0xc1, 0xa3, 0xff, 0x48, 0x83, 0xdc, 0xee, + 0x11, 0x09, 0xd1, 0x87, 0x30, 0x1b, 0x46, 0x41, 0x70, 0xb0, 0xac, 0xdd, 0xd0, 0x6e, 0x17, 0x8d, + 0x3b, 0xe5, 0x93, 0x1f, 0x90, 0x20, 0x45, 0x52, 0xfe, 0xfc, 0x63, 0x86, 0x32, 0x19, 0x02, 0x0b, + 0x20, 0x7a, 0x0f, 0x72, 0xfb, 0x81, 0x73, 0xbc, 0x9c, 0xe3, 0x04, 0x6f, 0x94, 0x47, 0x47, 0x58, + 0x66, 0xd8, 0x6a, 0xe0, 0x1c, 0x63, 0x8e, 0xd0, 0x7f, 0xaa, 0xc1, 0x3c, 0x9b, 0xaa, 0x79, 0xc4, + 0xed, 0xa0, 0xeb, 0xe9, 0x48, 0x4a, 0x8a, 0xfd, 0x7d, 0xc9, 0x9e, 0xe1, 0xec, 0xdf, 0x18, 0xc7, + 0xce, 0xa9, 0x06, 0x9f, 0x40, 0xb7, 0xe0, 0x0a, 0x0d, 0x03, 0xbb, 0x6d, 0x39, 0xdd, 0x88, 0x24, + 0x6e, 0xe0, 0x2f, 0xe7, 0x6f, 0x68, 0xb7, 0x73, 0x78, 0x81, 0xcf, 0xd6, 0xe5, 0xa4, 0xfe, 0xab, + 0x2c, 0x2c, 0x9c, 0x80, 0xa3, 0x4d, 0x98, 0xf7, 0xbb, 0x9e, 0xe7, 0x1e, 0xb8, 0x34, 0x92, 0x7b, + 0x73, 0x7b, 0xcc, 0xde, 0xb4, 0x94, 0x3f, 0x1e, 0x40, 0xd1, 0xbb, 0x90, 0x3d, 0xa0, 0x54, 0x86, + 0xaf, 0x8f, 0x61, 0xd8, 0xa4, 0x14, 0x33, 0x77, 0xf4, 0x7d, 0x58, 0x0a, 0xba, 0x49, 0xd8, 0x4d, + 0xac, 0x8a, 0x65, 0x07, 0x9d, 0x8e, 0x9b, 0x74, 0xa8, 0x9f, 0x2c, 0x67, 0x39, 0x4b, 0x79, 0x0c, + 0xcb, 0x6e, 0x42, 0x12, 0x5a, 0xeb, 0xa3, 0xf0, 0x35, 0x41, 0x55, 0x19, 0x4c, 0xa5, 0xf8, 0x8d, + 0x34, 0x7f, 0xee, 0x65, 0xf8, 0x8d, 0x14, 0xbf, 0x09, 0x45, 0xc9, 0xef, 0x90, 0x84, 0x2c, 0xcf, + 0x71, 0xde, 0xb5, 0xf3, 0xc4, 0xab, 0x92, 0xc4, 0x6e, 0x33, 0x09, 0x76, 0x38, 0xae, 0x4e, 0x12, + 0x82, 0x21, 0xe8, 0xff, 0xd6, 0xff, 0x9d, 0x81, 0x82, 0x3a, 0x3e, 0xe8, 0x3e, 0x94, 0x92, 0x88, + 0x38, 0xae, 0xff, 0xd8, 0x0a, 0x89, 0xab, 0xf4, 0xf9, 0xfa, 0x79, 0xfc, 0x7b, 0xc2, 0xdf, 0x24, + 0x6e, 0x84, 0x8b, 0xc9, 0x60, 0x80, 0x36, 0x60, 0xde, 0xa1, 0x5e, 0x42, 0xac, 0x8a, 0xe5, 0x4a, + 0x99, 0x6e, 0x8d, 0xd9, 0x80, 0x8d, 0x4e, 0xd0, 0xf5, 0x13, 0x9c, 0xe7, 0xb8, 0x4a, 0x73, 0x40, + 0x61, 0x58, 0xae, 0xd4, 0x68, 0x2a, 0x0a, 0xa3, 0x89, 0x1e, 0xc2, 0x95, 0x03, 0x4a, 0xcf, 0x6a, + 0xf1, 0xf6, 0x18, 0x9e, 0x2a, 0xf1, 0x88, 0x6f, 0xa7, 0xd5, 0x58, 0x38, 0xa0, 0xa9, 0x21, 0xda, + 0x80, 0x7c, 0x48, 0x8e, 0xbd, 0x80, 0x38, 0xcb, 0xb3, 0xe3, 0x77, 0x89, 0x5f, 0x6e, 0xe1, 0x8e, + 0x15, 0x4e, 0xff, 0xb1, 0x06, 0xc5, 0x94, 0x01, 0xb5, 0x00, 0x52, 0x71, 0x6a, 0x17, 0x3a, 0x33, + 0x29, 0x06, 0x7e, 0x47, 0x7d, 0x0e, 0xa0, 0x8e, 0x15, 0x1f, 0x91, 0x90, 0xcb, 0x50, 0xc2, 0x0b, + 0xfd, 0x59, 0xf6, 0x75, 0xfd, 0x27, 0xf2, 0x8e, 0x9a, 0x1e, 0x71, 0xfd, 0x84, 0xf6, 0x92, 0x2f, + 0xe1, 0x31, 0xb8, 0x07, 0xf3, 0x36, 0x4b, 0x41, 0x16, 0xcb, 0x19, 0xb9, 0x89, 0x73, 0x46, 0x81, + 0x83, 0x36, 0x29, 0x45, 0x1f, 0xc3, 0x82, 0x20, 0x20, 0x8e, 0x13, 0xd1, 0x38, 0x96, 0xa2, 0xbf, + 0x39, 0x2e, 0x0e, 0xe1, 0x8d, 0x4b, 0x1c, 0x2c, 0x47, 0x2c, 0x23, 0x47, 0x31, 0xa5, 0x0e, 0xbf, + 0xbf, 0x25, 0x2c, 0x06, 0xfa, 0x1d, 0x40, 0xdb, 0x81, 0xfd, 0x83, 0x4d, 0x2f, 0x38, 0xaa, 0xb9, + 0x61, 0x9b, 0x46, 0x5c, 0x8b, 0xeb, 0x30, 0x7b, 0x48, 0xbc, 0x2e, 0xe5, 0x22, 0xe4, 0xb0, 0x18, + 0xe8, 0x3f, 0x14, 0x97, 0xd6, 0xf4, 0x88, 0x8f, 0x4c, 0xb8, 0xc2, 0xc4, 0xb5, 0x42, 0xa5, 0x9f, + 0xd4, 0x6b, 0x6c, 0x4e, 0xef, 0x0b, 0x8e, 0x17, 0xe2, 0x13, 0xfa, 0xdf, 0x84, 0x12, 0xbb, 0x34, + 0xfb, 0x9e, 0xeb, 0x33, 0x1d, 0xe5, 0xb1, 0x29, 0x1e, 0x50, 0x5a, 0x95, 0x53, 0xfa, 0xbf, 0xb4, + 0x54, 0x62, 0xff, 0x3f, 0x85, 0xb1, 0x02, 0x85, 0x30, 0x88, 0x5d, 0x5e, 0x5d, 0x32, 0x7c, 0xf5, + 0xfd, 0xf1, 0xe9, 0x44, 0x98, 0x7d, 0xe9, 0x44, 0x38, 0xa4, 0xa2, 0xe5, 0x86, 0x55, 0xb4, 0xff, + 0xca, 0x7c, 0xf9, 0xc0, 0xa5, 0x47, 0x68, 0x0b, 0xf2, 0x87, 0x6e, 0xec, 0xee, 0x7b, 0x54, 0x2e, + 0xf6, 0x9b, 0xe3, 0x16, 0xcb, 0x60, 0xe5, 0x07, 0x02, 0xb3, 0x35, 0x83, 0x15, 0x1c, 0x35, 0x60, + 0x2e, 0x08, 0xc9, 0x93, 0xae, 0xaa, 0x68, 0x6f, 0x4d, 0x44, 0xb4, 0xc3, 0x21, 0x5b, 0x33, 0x58, + 0x82, 0x57, 0xbe, 0xd0, 0x20, 0x2f, 0xd9, 0xd1, 0xbb, 0x90, 0xe3, 0x97, 0x5e, 0x44, 0x76, 0x63, + 0x1c, 0x21, 0xe6, 0xde, 0x43, 0x64, 0xcc, 0xbe, 0x9c, 0x8c, 0x2b, 0x1f, 0xc0, 0x9c, 0x88, 0xf3, + 0x62, 0x11, 0x55, 0x8b, 0x30, 0xcf, 0x23, 0x3a, 0x74, 0xe9, 0x91, 0xfe, 0xf7, 0x74, 0x43, 0xc1, + 0x35, 0xd8, 0x3e, 0xad, 0x41, 0x65, 0xa2, 0x5e, 0x66, 0x94, 0x10, 0xf7, 0x4f, 0x09, 0xf1, 0xf6, + 0xe4, 0x6c, 0x67, 0xd4, 0xf8, 0x4b, 0x4a, 0x8d, 0x3a, 0x00, 0x5f, 0x05, 0x4f, 0x04, 0x32, 0xd2, + 0x5b, 0x13, 0x71, 0x63, 0xbe, 0x7c, 0xd1, 0xcb, 0x7d, 0x00, 0x05, 0xd5, 0xbf, 0xc8, 0xf8, 0x5e, + 0x1f, 0xd7, 0x3c, 0x05, 0x09, 0xc5, 0x79, 0xd9, 0xa9, 0xa4, 0xf0, 0x86, 0xd4, 0x75, 0x1a, 0xbc, + 0xb1, 0xd2, 0xea, 0x6b, 0x79, 0x29, 0xeb, 0xa9, 0x5e, 0x83, 0xab, 0x03, 0x16, 0xa1, 0xf0, 0xcf, + 0x35, 0x28, 0xa6, 0xaa, 0x09, 0xba, 0x07, 0x79, 0x12, 0xc7, 0x94, 0xad, 0x58, 0x9b, 0x2c, 0xe7, + 0x32, 0xef, 0xa6, 0x83, 0xe7, 0x38, 0xac, 0x32, 0x20, 0x30, 0xe4, 0x96, 0x4d, 0x47, 0x60, 0xe8, + 0x3f, 0xd3, 0x60, 0xa9, 0xee, 0x46, 0xd4, 0x4e, 0xa8, 0x93, 0x8e, 0xec, 0x3b, 0x30, 0x1b, 0x27, + 0x24, 0x4a, 0xa6, 0x8c, 0x4b, 0x80, 0xd0, 0x7b, 0x90, 0xa5, 0xbe, 0x33, 0x65, 0x48, 0x0c, 0xa2, + 0xff, 0x47, 0x83, 0xa5, 0x21, 0xd9, 0x0c, 0xbd, 0x02, 0x79, 0x59, 0x6a, 0x65, 0xb1, 0x98, 0x13, + 0x15, 0x74, 0x60, 0x30, 0x64, 0x1e, 0x15, 0x06, 0x03, 0x7d, 0x15, 0x0a, 0x1e, 0xe9, 0xec, 0x3b, + 0x0c, 0x92, 0xe5, 0x96, 0xbc, 0x18, 0x57, 0x52, 0x26, 0x43, 0x26, 0x42, 0x69, 0x32, 0xd0, 0x32, + 0xe4, 0xe3, 0xae, 0x6d, 0xab, 0x2a, 0x58, 0xc0, 0x6a, 0x88, 0xbe, 0x02, 0x73, 0x6d, 0xea, 0x3e, + 0x6e, 0x27, 0xbc, 0xb2, 0xe5, 0xb0, 0x1c, 0x9d, 0x69, 0x28, 0xf2, 0x17, 0x6f, 0x28, 0xf4, 0x5f, + 0x6a, 0x70, 0x55, 0x1a, 0x37, 0xbb, 0xbe, 0xcd, 0xab, 0xc1, 0x36, 0xcc, 0xdb, 0x41, 0x27, 0x0c, + 0xfc, 0x41, 0xe3, 0x34, 0xa6, 0x16, 0x44, 0xf4, 0x14, 0x07, 0x1e, 0x30, 0xa0, 0xbb, 0x90, 0xe3, + 0x61, 0x66, 0xa6, 0x0b, 0x93, 0x83, 0xf4, 0x2f, 0xb8, 0x3a, 0x67, 0xf8, 0xd1, 0xa2, 0x78, 0xb0, + 0xb0, 0xe8, 0x16, 0xc4, 0x63, 0xe4, 0x1d, 0xd0, 0xc2, 0xe9, 0x5a, 0x22, 0x2d, 0x64, 0xa0, 0x27, + 0xd3, 0x35, 0x41, 0xda, 0x13, 0xbd, 0x07, 0x05, 0x4c, 0x63, 0x1a, 0x1d, 0xd2, 0x18, 0x7d, 0x0b, + 0x32, 0x51, 0x65, 0xc4, 0x85, 0x1d, 0xc1, 0x90, 0x89, 0x2a, 0x1c, 0x66, 0x4c, 0x17, 0x6d, 0x26, + 0x32, 0x74, 0x0b, 0x0a, 0xa6, 0xaa, 0xd9, 0xef, 0x43, 0x36, 0x6c, 0xbb, 0xf2, 0xd3, 0x6f, 0x4d, + 0xb0, 0xab, 0x7d, 0x6d, 0x18, 0x8e, 0x75, 0x42, 0x7e, 0xe0, 0xdb, 0x54, 0xb6, 0x23, 0x62, 0xa0, + 0xeb, 0x00, 0xea, 0x03, 0x4d, 0x87, 0xf9, 0xb8, 0xbe, 0x2f, 0x5f, 0x96, 0x25, 0x2c, 0x06, 0xfa, + 0xd3, 0x0c, 0x2c, 0x28, 0x27, 0xde, 0x30, 0xa3, 0xef, 0xf2, 0xab, 0x9b, 0x08, 0x39, 0xae, 0x18, + 0x77, 0xcf, 0x0b, 0xe6, 0x04, 0xf2, 0xe4, 0xa8, 0xe1, 0x77, 0x3b, 0x58, 0x30, 0xe9, 0xbf, 0xd5, + 0xe0, 0xda, 0x19, 0x23, 0x7a, 0x1d, 0x5e, 0x33, 0x77, 0x76, 0x9b, 0x7b, 0xcd, 0x9d, 0x96, 0xb5, + 0xbb, 0xb7, 0xb1, 0xd7, 0xb0, 0x1a, 0xad, 0x4f, 0xb7, 0xad, 0x4f, 0x5b, 0xbb, 0x66, 0xa3, 0xd6, + 0xdc, 0x6c, 0x36, 0xea, 0x8b, 0x33, 0x68, 0x15, 0x56, 0x86, 0x39, 0xed, 0x98, 0x8d, 0x56, 0xa3, + 0xbe, 0xa8, 0x8d, 0xb2, 0xd7, 0x3e, 0xd9, 0xd9, 0x6d, 0xd4, 0x17, 0x33, 0xe8, 0x26, 0xbc, 0x3a, + 0xcc, 0xfe, 0xb0, 0xb9, 0xb7, 0x55, 0xc7, 0x1b, 0x0f, 0x5b, 0x8b, 0x59, 0xf4, 0x1a, 0x7c, 0x6d, + 0x38, 0xc5, 0x46, 0x73, 0xbb, 0x51, 0x5f, 0xcc, 0xe9, 0x7f, 0xd5, 0x60, 0x51, 0x85, 0xbf, 0x4d, + 0x13, 0xc2, 0xda, 0x2a, 0xf4, 0x61, 0xaa, 0x03, 0xd3, 0xc6, 0xff, 0x19, 0x42, 0xe1, 0x53, 0x7d, + 0xda, 0x3d, 0xb5, 0xd1, 0x13, 0xfc, 0x9d, 0xe1, 0xc4, 0xee, 0xc9, 0x6d, 0x65, 0x21, 0x44, 0xf2, + 0xe8, 0xca, 0x63, 0x7f, 0x6e, 0x08, 0xea, 0x98, 0xe3, 0x3e, 0x8a, 0x5d, 0xc8, 0xd9, 0x4f, 0xc2, + 0xd6, 0x41, 0x82, 0x3e, 0x82, 0xa2, 0x0a, 0xcc, 0x72, 0x9d, 0x11, 0x69, 0x7b, 0x68, 0x48, 0x4d, + 0x07, 0x43, 0x38, 0x38, 0x66, 0x2f, 0xbb, 0x2a, 0xfd, 0xa9, 0x06, 0x25, 0x65, 0xd8, 0x09, 0xa9, + 0x7f, 0x09, 0x3b, 0xbd, 0x03, 0x8b, 0xae, 0xef, 0x26, 0x2e, 0xf1, 0xac, 0xfe, 0x86, 0x65, 0xa6, + 0xd8, 0xb0, 0xab, 0x12, 0xad, 0x26, 0xf4, 0xcf, 0x06, 0x97, 0xa6, 0xe6, 0x05, 0x31, 0xbd, 0xb4, + 0xed, 0xd3, 0x7f, 0x97, 0x3a, 0x6b, 0x0f, 0xdd, 0xa4, 0xed, 0x44, 0xe4, 0xe8, 0xf2, 0xc4, 0x21, + 0xb0, 0xa4, 0x36, 0x20, 0xfd, 0xee, 0xcf, 0x5c, 0xf0, 0xdd, 0x8f, 0x14, 0xd9, 0x60, 0x4e, 0xff, + 0xbd, 0x06, 0x4b, 0x7d, 0x09, 0xe8, 0x11, 0x89, 0x1c, 0xd1, 0x9e, 0x5d, 0xda, 0x1a, 0x2c, 0x40, + 0x11, 0xe7, 0xbd, 0x94, 0x25, 0x5c, 0x93, 0x5c, 0xa9, 0x15, 0xfc, 0x49, 0x83, 0x9c, 0x49, 0x92, + 0x36, 0xaa, 0xc9, 0x5a, 0x37, 0x41, 0xd5, 0x1c, 0xd2, 0x03, 0x89, 0x9a, 0xc7, 0x3a, 0xa1, 0x28, + 0xe8, 0xf2, 0xfb, 0x90, 0x9d, 0xa6, 0x13, 0xe2, 0x20, 0xb4, 0x21, 0xea, 0x42, 0xf6, 0x62, 0x75, + 0x9b, 0x61, 0xf5, 0x3f, 0x6b, 0x30, 0xcb, 0x0c, 0xfc, 0x8d, 0x11, 0x92, 0xa4, 0x3d, 0xc9, 0x1b, + 0x83, 0xad, 0x1f, 0x73, 0x6f, 0xb4, 0x05, 0x25, 0xde, 0x95, 0x59, 0x84, 0x97, 0xae, 0xe9, 0xea, + 0x5c, 0x91, 0x43, 0xc5, 0x80, 0xf5, 0xc5, 0xd4, 0x77, 0x14, 0xcf, 0x54, 0x85, 0x7a, 0x9e, 0xfa, + 0x8e, 0xf8, 0xa9, 0xdf, 0x17, 0xaf, 0x9c, 0x46, 0x8f, 0xda, 0x5d, 0x7e, 0xbb, 0xbf, 0x0d, 0x73, + 0xac, 0x09, 0xa2, 0xf1, 0xb2, 0xc6, 0xb7, 0xf8, 0xe6, 0xb8, 0xf2, 0x49, 0xb1, 0x04, 0xe8, 0x9f, + 0xc1, 0xf5, 0xd3, 0x97, 0x8d, 0x3f, 0xd8, 0xd3, 0x99, 0x55, 0xbb, 0x50, 0x66, 0xfd, 0x1e, 0xbc, + 0x32, 0xe4, 0x16, 0x5c, 0x0e, 0x79, 0xf5, 0x69, 0xe6, 0x0f, 0xcf, 0x57, 0xb5, 0x67, 0xcf, 0x57, + 0xb5, 0x7f, 0x3c, 0x5f, 0xd5, 0x7e, 0xf1, 0x62, 0x75, 0xe6, 0xd9, 0x8b, 0xd5, 0x99, 0xbf, 0xbd, + 0x58, 0x9d, 0x81, 0x55, 0x3b, 0xe8, 0x9c, 0xc3, 0x56, 0x2d, 0xd4, 0x69, 0xcf, 0x8c, 0x82, 0x24, + 0x30, 0xb5, 0xcf, 0xf1, 0x63, 0x37, 0x69, 0x77, 0xf7, 0xcb, 0x76, 0xd0, 0x59, 0xb3, 0x83, 0xb8, + 0x13, 0xc4, 0x6b, 0x11, 0xf5, 0xc8, 0x31, 0x8d, 0xd6, 0x0e, 0x8d, 0xfe, 0x4f, 0xbb, 0x4d, 0x5c, + 0x3f, 0x5e, 0x1b, 0xfd, 0xaf, 0x82, 0xbb, 0x0e, 0xed, 0xa9, 0xdf, 0xbf, 0xce, 0x64, 0xcd, 0x5a, + 0xfd, 0x37, 0x99, 0x15, 0x53, 0x85, 0x50, 0x63, 0x21, 0xd4, 0x69, 0xaf, 0xfc, 0x40, 0xba, 0xfc, + 0x71, 0x60, 0x7c, 0xc4, 0x8c, 0x8f, 0xea, 0xb4, 0xf7, 0x48, 0x19, 0x9f, 0x67, 0xde, 0x1c, 0x6d, + 0x7c, 0xf4, 0x91, 0x59, 0x55, 0xf5, 0xf7, 0x9f, 0x99, 0x57, 0x95, 0xe3, 0xfa, 0x3a, 0xf3, 0x5c, + 0x5f, 0xaf, 0xd3, 0xde, 0xfa, 0xba, 0xf2, 0xdd, 0x9f, 0xe3, 0xff, 0x74, 0x78, 0xe7, 0x7f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xf2, 0x22, 0xe2, 0x77, 0xe4, 0x18, 0x00, 0x00, +} + +func (m *Swap) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Swap) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Swap) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Proof != nil { + { + size, err := m.Proof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapClaim) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EpochDuration != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.EpochDuration)) + i-- + dAtA[i] = 0x38 + } + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Proof) > 0 { + i -= len(m.Proof) + copy(dAtA[i:], m.Proof) + i = encodeVarintDex(dAtA, i, uint64(len(m.Proof))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapClaimBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapClaimBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.OutputData != nil { + { + size, err := m.OutputData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.Output_2Commitment != nil { + { + size, err := m.Output_2Commitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Output_1Commitment != nil { + { + size, err := m.Output_1Commitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Fee != nil { + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Nullifier != nil { + { + size, err := m.Nullifier.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Payload != nil { + { + size, err := m.Payload.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.FeeCommitment != nil { + { + size, err := m.FeeCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Delta_2I != nil { + { + size, err := m.Delta_2I.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Delta_1I != nil { + { + size, err := m.Delta_1I.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.TradingPair != nil { + { + size, err := m.TradingPair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapPayload) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapPayload) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapPayload) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.EncryptedSwap) > 0 { + i -= len(m.EncryptedSwap) + copy(dAtA[i:], m.EncryptedSwap) + i = encodeVarintDex(dAtA, i, uint64(len(m.EncryptedSwap))) + i-- + dAtA[i] = 0x12 + } + if m.Commitment != nil { + { + size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapPlaintext) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapPlaintext) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapPlaintext) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Rseed) > 0 { + i -= len(m.Rseed) + copy(dAtA[i:], m.Rseed) + i = encodeVarintDex(dAtA, i, uint64(len(m.Rseed))) + i-- + dAtA[i] = 0x32 + } + if m.ClaimAddress != nil { + { + size, err := m.ClaimAddress.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.ClaimFee != nil { + { + size, err := m.ClaimFee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Delta_2I != nil { + { + size, err := m.Delta_2I.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Delta_1I != nil { + { + size, err := m.Delta_1I.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.TradingPair != nil { + { + size, err := m.TradingPair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MockFlowCiphertext) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MockFlowCiphertext) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MockFlowCiphertext) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Value)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *SwapPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.FeeBlinding) > 0 { + i -= len(m.FeeBlinding) + copy(dAtA[i:], m.FeeBlinding) + i = encodeVarintDex(dAtA, i, uint64(len(m.FeeBlinding))) + i-- + dAtA[i] = 0x12 + } + if m.SwapPlaintext != nil { + { + size, err := m.SwapPlaintext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapClaimPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapClaimPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EpochDuration != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.EpochDuration)) + i-- + dAtA[i] = 0x20 + } + if m.OutputData != nil { + { + size, err := m.OutputData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Position != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Position)) + i-- + dAtA[i] = 0x10 + } + if m.SwapPlaintext != nil { + { + size, err := m.SwapPlaintext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SwapView != nil { + { + size := m.SwapView.Size() + i -= size + if _, err := m.SwapView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *SwapView_Visible_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapView_Visible_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Visible != nil { + { + size, err := m.Visible.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *SwapView_Opaque_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapView_Opaque_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opaque != nil { + { + size, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *SwapView_Visible) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapView_Visible) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SwapPlaintext != nil { + { + size, err := m.SwapPlaintext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapView_Opaque) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapView_Opaque) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapView_Opaque) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapClaimView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapClaimView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SwapClaimView != nil { + { + size := m.SwapClaimView.Size() + i -= size + if _, err := m.SwapClaimView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *SwapClaimView_Visible_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimView_Visible_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Visible != nil { + { + size, err := m.Visible.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *SwapClaimView_Opaque_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimView_Opaque_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opaque != nil { + { + size, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *SwapClaimView_Visible) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapClaimView_Visible) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Output_2 != nil { + { + size, err := m.Output_2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Output_1 != nil { + { + size, err := m.Output_1.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.SwapClaim != nil { + { + size, err := m.SwapClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapClaimView_Opaque) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapClaimView_Opaque) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimView_Opaque) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SwapClaim != nil { + { + size, err := m.SwapClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TradingPair) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TradingPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TradingPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Asset_2 != nil { + { + size, err := m.Asset_2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Asset_1 != nil { + { + size, err := m.Asset_1.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DirectedTradingPair) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DirectedTradingPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DirectedTradingPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.End != nil { + { + size, err := m.End.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Start != nil { + { + size, err := m.Start.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BatchSwapOutputData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BatchSwapOutputData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.TradingPair != nil { + { + size, err := m.TradingPair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.Height != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x30 + } + if m.Success { + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.Lambda_2 != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Lambda_2)) + i-- + dAtA[i] = 0x20 + } + if m.Lambda_1 != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Lambda_1)) + i-- + dAtA[i] = 0x18 + } + if m.Delta_2 != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Delta_2)) + i-- + dAtA[i] = 0x10 + } + if m.Delta_1 != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Delta_1)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TradingFunction) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TradingFunction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TradingFunction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pair != nil { + { + size, err := m.Pair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Component != nil { + { + size, err := m.Component.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BareTradingFunction) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BareTradingFunction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BareTradingFunction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Q != nil { + { + size, err := m.Q.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.P != nil { + { + size, err := m.P.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Fee != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.Fee)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Reserves) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Reserves) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Reserves) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.R2 != nil { + { + size, err := m.R2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.R1 != nil { + { + size, err := m.R1.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Position) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Position) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Position) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Nonce) > 0 { + i -= len(m.Nonce) + copy(dAtA[i:], m.Nonce) + i = encodeVarintDex(dAtA, i, uint64(len(m.Nonce))) + i-- + dAtA[i] = 0x12 + } + if m.Phi != nil { + { + size, err := m.Phi.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PositionId) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintDex(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PositionState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.State != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.State)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *PositionMetadata) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionMetadata) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Reserves != nil { + { + size, err := m.Reserves.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Position != nil { + { + size, err := m.Position.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *LpNft) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LpNft) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *LpNft) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.PositionId != nil { + { + size, err := m.PositionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PositionOpen) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionOpen) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionOpen) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.InitialReserves != nil { + { + size, err := m.InitialReserves.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Position != nil { + { + size, err := m.Position.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PositionClose) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionClose) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionClose) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PositionId != nil { + { + size, err := m.PositionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PositionWithdraw) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ReservesCommitment != nil { + { + size, err := m.ReservesCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.PositionId != nil { + { + size, err := m.PositionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PositionRewardClaim) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionRewardClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionRewardClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RewardsCommitment != nil { + { + size, err := m.RewardsCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.PositionId != nil { + { + size, err := m.PositionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Path) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Path) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Path) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Phi != nil { + { + size, err := m.Phi.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Route) > 0 { + for iNdEx := len(m.Route) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Route[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Pair != nil { + { + size, err := m.Pair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Trade) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Trade) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Trade) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EndAmount != nil { + { + size, err := m.EndAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.StartAmount != nil { + { + size, err := m.StartAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Path != nil { + { + size, err := m.Path.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapExecution) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapExecution) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Trades) > 0 { + for iNdEx := len(m.Trades) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Trades[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *PositionWithdrawPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionWithdrawPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionWithdrawPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Reserves != nil { + { + size, err := m.Reserves.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PositionRewardClaimPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PositionRewardClaimPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PositionRewardClaimPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Reserves != nil { + { + size, err := m.Reserves.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintDex(dAtA []byte, offset int, v uint64) int { + offset -= sovDex(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Swap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Proof != nil { + l = m.Proof.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Proof) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.EpochDuration != 0 { + n += 1 + sovDex(uint64(m.EpochDuration)) + } + return n +} + +func (m *SwapClaimBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Nullifier != nil { + l = m.Nullifier.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Fee != nil { + l = m.Fee.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Output_1Commitment != nil { + l = m.Output_1Commitment.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Output_2Commitment != nil { + l = m.Output_2Commitment.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.OutputData != nil { + l = m.OutputData.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TradingPair != nil { + l = m.TradingPair.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Delta_1I != nil { + l = m.Delta_1I.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Delta_2I != nil { + l = m.Delta_2I.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.FeeCommitment != nil { + l = m.FeeCommitment.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Payload != nil { + l = m.Payload.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapPayload) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Commitment != nil { + l = m.Commitment.Size() + n += 1 + l + sovDex(uint64(l)) + } + l = len(m.EncryptedSwap) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapPlaintext) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TradingPair != nil { + l = m.TradingPair.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Delta_1I != nil { + l = m.Delta_1I.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Delta_2I != nil { + l = m.Delta_2I.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.ClaimFee != nil { + l = m.ClaimFee.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.ClaimAddress != nil { + l = m.ClaimAddress.Size() + n += 1 + l + sovDex(uint64(l)) + } + l = len(m.Rseed) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *MockFlowCiphertext) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != 0 { + n += 1 + sovDex(uint64(m.Value)) + } + return n +} + +func (m *SwapPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapPlaintext != nil { + l = m.SwapPlaintext.Size() + n += 1 + l + sovDex(uint64(l)) + } + l = len(m.FeeBlinding) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapClaimPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapPlaintext != nil { + l = m.SwapPlaintext.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Position != 0 { + n += 1 + sovDex(uint64(m.Position)) + } + if m.OutputData != nil { + l = m.OutputData.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.EpochDuration != 0 { + n += 1 + sovDex(uint64(m.EpochDuration)) + } + return n +} + +func (m *SwapView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapView != nil { + n += m.SwapView.Size() + } + return n +} + +func (m *SwapView_Visible_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Visible != nil { + l = m.Visible.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} +func (m *SwapView_Opaque_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opaque != nil { + l = m.Opaque.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} +func (m *SwapView_Visible) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.SwapPlaintext != nil { + l = m.SwapPlaintext.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapView_Opaque) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapClaimView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapClaimView != nil { + n += m.SwapClaimView.Size() + } + return n +} + +func (m *SwapClaimView_Visible_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Visible != nil { + l = m.Visible.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} +func (m *SwapClaimView_Opaque_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opaque != nil { + l = m.Opaque.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} +func (m *SwapClaimView_Visible) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapClaim != nil { + l = m.SwapClaim.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Output_1 != nil { + l = m.Output_1.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Output_2 != nil { + l = m.Output_2.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapClaimView_Opaque) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapClaim != nil { + l = m.SwapClaim.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *TradingPair) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Asset_1 != nil { + l = m.Asset_1.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Asset_2 != nil { + l = m.Asset_2.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *DirectedTradingPair) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Start != nil { + l = m.Start.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.End != nil { + l = m.End.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *BatchSwapOutputData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Delta_1 != 0 { + n += 1 + sovDex(uint64(m.Delta_1)) + } + if m.Delta_2 != 0 { + n += 1 + sovDex(uint64(m.Delta_2)) + } + if m.Lambda_1 != 0 { + n += 1 + sovDex(uint64(m.Lambda_1)) + } + if m.Lambda_2 != 0 { + n += 1 + sovDex(uint64(m.Lambda_2)) + } + if m.Success { + n += 2 + } + if m.Height != 0 { + n += 1 + sovDex(uint64(m.Height)) + } + if m.TradingPair != nil { + l = m.TradingPair.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *TradingFunction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Component != nil { + l = m.Component.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Pair != nil { + l = m.Pair.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *BareTradingFunction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Fee != 0 { + n += 1 + sovDex(uint64(m.Fee)) + } + if m.P != nil { + l = m.P.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Q != nil { + l = m.Q.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *Reserves) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.R1 != nil { + l = m.R1.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.R2 != nil { + l = m.R2.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *Position) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Phi != nil { + l = m.Phi.Size() + n += 1 + l + sovDex(uint64(l)) + } + l = len(m.Nonce) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *PositionId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *PositionState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != 0 { + n += 1 + sovDex(uint64(m.State)) + } + return n +} + +func (m *PositionMetadata) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Position != nil { + l = m.Position.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.State != nil { + l = m.State.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Reserves != nil { + l = m.Reserves.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *LpNft) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionId != nil { + l = m.PositionId.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.State != nil { + l = m.State.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *PositionOpen) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Position != nil { + l = m.Position.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.InitialReserves != nil { + l = m.InitialReserves.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *PositionClose) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionId != nil { + l = m.PositionId.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *PositionWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionId != nil { + l = m.PositionId.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.ReservesCommitment != nil { + l = m.ReservesCommitment.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *PositionRewardClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionId != nil { + l = m.PositionId.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.RewardsCommitment != nil { + l = m.RewardsCommitment.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *Path) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pair != nil { + l = m.Pair.Size() + n += 1 + l + sovDex(uint64(l)) + } + if len(m.Route) > 0 { + for _, e := range m.Route { + l = e.Size() + n += 1 + l + sovDex(uint64(l)) + } + } + if m.Phi != nil { + l = m.Phi.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *Trade) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Path != nil { + l = m.Path.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.StartAmount != nil { + l = m.StartAmount.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.EndAmount != nil { + l = m.EndAmount.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *SwapExecution) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Trades) > 0 { + for _, e := range m.Trades { + l = e.Size() + n += 1 + l + sovDex(uint64(l)) + } + } + return n +} + +func (m *PositionWithdrawPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Reserves != nil { + l = m.Reserves.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func (m *PositionRewardClaimPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Reserves != nil { + l = m.Reserves.Size() + n += 1 + l + sovDex(uint64(l)) + } + return n +} + +func sovDex(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozDex(x uint64) (n int) { + return sovDex(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Swap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Swap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Swap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Proof == nil { + m.Proof = &v1alpha1.ZKSwapProof{} + } + if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &SwapBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapClaim) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapClaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapClaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Proof = append(m.Proof[:0], dAtA[iNdEx:postIndex]...) + if m.Proof == nil { + m.Proof = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &SwapClaimBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochDuration", wireType) + } + m.EpochDuration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochDuration |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapClaimBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapClaimBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapClaimBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Nullifier == nil { + m.Nullifier = &v1alpha1.Nullifier{} + } + if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fee == nil { + m.Fee = &v1alpha1.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output_1Commitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Output_1Commitment == nil { + m.Output_1Commitment = &v1alpha1.StateCommitment{} + } + if err := m.Output_1Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output_2Commitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Output_2Commitment == nil { + m.Output_2Commitment = &v1alpha1.StateCommitment{} + } + if err := m.Output_2Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OutputData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OutputData == nil { + m.OutputData = &BatchSwapOutputData{} + } + if err := m.OutputData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradingPair", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TradingPair == nil { + m.TradingPair = &TradingPair{} + } + if err := m.TradingPair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delta_1I", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Delta_1I == nil { + m.Delta_1I = &v1alpha1.Amount{} + } + if err := m.Delta_1I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delta_2I", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Delta_2I == nil { + m.Delta_2I = &v1alpha1.Amount{} + } + if err := m.Delta_2I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FeeCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FeeCommitment == nil { + m.FeeCommitment = &v1alpha1.BalanceCommitment{} + } + if err := m.FeeCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Payload == nil { + m.Payload = &SwapPayload{} + } + if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapPayload) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapPayload: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapPayload: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Commitment == nil { + m.Commitment = &v1alpha1.StateCommitment{} + } + if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EncryptedSwap", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EncryptedSwap = append(m.EncryptedSwap[:0], dAtA[iNdEx:postIndex]...) + if m.EncryptedSwap == nil { + m.EncryptedSwap = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapPlaintext) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapPlaintext: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapPlaintext: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradingPair", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TradingPair == nil { + m.TradingPair = &TradingPair{} + } + if err := m.TradingPair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delta_1I", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Delta_1I == nil { + m.Delta_1I = &v1alpha1.Amount{} + } + if err := m.Delta_1I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delta_2I", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Delta_2I == nil { + m.Delta_2I = &v1alpha1.Amount{} + } + if err := m.Delta_2I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClaimFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClaimFee == nil { + m.ClaimFee = &v1alpha1.Fee{} + } + if err := m.ClaimFee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClaimAddress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClaimAddress == nil { + m.ClaimAddress = &v1alpha1.Address{} + } + if err := m.ClaimAddress.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rseed", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rseed = append(m.Rseed[:0], dAtA[iNdEx:postIndex]...) + if m.Rseed == nil { + m.Rseed = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MockFlowCiphertext) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MockFlowCiphertext: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MockFlowCiphertext: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + m.Value = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Value |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapPlaintext == nil { + m.SwapPlaintext = &SwapPlaintext{} + } + if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FeeBlinding", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FeeBlinding = append(m.FeeBlinding[:0], dAtA[iNdEx:postIndex]...) + if m.FeeBlinding == nil { + m.FeeBlinding = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapClaimPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapClaimPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapClaimPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapPlaintext == nil { + m.SwapPlaintext = &SwapPlaintext{} + } + if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + m.Position = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Position |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OutputData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OutputData == nil { + m.OutputData = &BatchSwapOutputData{} + } + if err := m.OutputData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochDuration", wireType) + } + m.EpochDuration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochDuration |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SwapView_Visible{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.SwapView = &SwapView_Visible_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opaque", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SwapView_Opaque{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.SwapView = &SwapView_Opaque_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapView_Visible) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Visible: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Visible: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Swap == nil { + m.Swap = &Swap{} + } + if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapPlaintext == nil { + m.SwapPlaintext = &SwapPlaintext{} + } + if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapView_Opaque) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Opaque: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Opaque: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Swap == nil { + m.Swap = &Swap{} + } + if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapClaimView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapClaimView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapClaimView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SwapClaimView_Visible{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.SwapClaimView = &SwapClaimView_Visible_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opaque", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SwapClaimView_Opaque{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.SwapClaimView = &SwapClaimView_Opaque_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapClaimView_Visible) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Visible: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Visible: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapClaim == nil { + m.SwapClaim = &SwapClaim{} + } + if err := m.SwapClaim.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output_1", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Output_1 == nil { + m.Output_1 = &v1alpha1.Note{} + } + if err := m.Output_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output_2", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Output_2 == nil { + m.Output_2 = &v1alpha1.Note{} + } + if err := m.Output_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapClaimView_Opaque) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Opaque: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Opaque: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapClaim == nil { + m.SwapClaim = &SwapClaim{} + } + if err := m.SwapClaim.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TradingPair) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TradingPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TradingPair: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asset_1", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Asset_1 == nil { + m.Asset_1 = &v1alpha1.AssetId{} + } + if err := m.Asset_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asset_2", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Asset_2 == nil { + m.Asset_2 = &v1alpha1.AssetId{} + } + if err := m.Asset_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DirectedTradingPair) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DirectedTradingPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DirectedTradingPair: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Start == nil { + m.Start = &v1alpha1.AssetId{} + } + if err := m.Start.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.End == nil { + m.End = &v1alpha1.AssetId{} + } + if err := m.End.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BatchSwapOutputData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BatchSwapOutputData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Delta_1", wireType) + } + m.Delta_1 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Delta_1 |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Delta_2", wireType) + } + m.Delta_2 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Delta_2 |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1", wireType) + } + m.Lambda_1 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lambda_1 |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2", wireType) + } + m.Lambda_2 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lambda_2 |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradingPair", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TradingPair == nil { + m.TradingPair = &TradingPair{} + } + if err := m.TradingPair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TradingFunction) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TradingFunction: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TradingFunction: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Component", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Component == nil { + m.Component = &BareTradingFunction{} + } + if err := m.Component.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pair", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pair == nil { + m.Pair = &TradingPair{} + } + if err := m.Pair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BareTradingFunction) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BareTradingFunction: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BareTradingFunction: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + m.Fee = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Fee |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field P", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.P == nil { + m.P = &v1alpha1.Amount{} + } + if err := m.P.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Q", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Q == nil { + m.Q = &v1alpha1.Amount{} + } + if err := m.Q.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Reserves) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Reserves: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Reserves: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field R1", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.R1 == nil { + m.R1 = &v1alpha1.Amount{} + } + if err := m.R1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field R2", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.R2 == nil { + m.R2 = &v1alpha1.Amount{} + } + if err := m.R2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Position) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Position: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Position: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phi", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Phi == nil { + m.Phi = &TradingFunction{} + } + if err := m.Phi.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nonce = append(m.Nonce[:0], dAtA[iNdEx:postIndex]...) + if m.Nonce == nil { + m.Nonce = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionId) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionId: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionId: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + m.State = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.State |= PositionState_PositionStateEnum(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionMetadata) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionMetadata: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Position == nil { + m.Position = &Position{} + } + if err := m.Position.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.State == nil { + m.State = &PositionState{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reserves", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Reserves == nil { + m.Reserves = &Reserves{} + } + if err := m.Reserves.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LpNft) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LpNft: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LpNft: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PositionId == nil { + m.PositionId = &PositionId{} + } + if err := m.PositionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.State == nil { + m.State = &PositionState{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionOpen) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionOpen: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionOpen: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Position == nil { + m.Position = &Position{} + } + if err := m.Position.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialReserves", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InitialReserves == nil { + m.InitialReserves = &Reserves{} + } + if err := m.InitialReserves.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionClose) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionClose: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionClose: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PositionId == nil { + m.PositionId = &PositionId{} + } + if err := m.PositionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionWithdraw) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionWithdraw: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionWithdraw: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PositionId == nil { + m.PositionId = &PositionId{} + } + if err := m.PositionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReservesCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ReservesCommitment == nil { + m.ReservesCommitment = &v1alpha1.BalanceCommitment{} + } + if err := m.ReservesCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionRewardClaim) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionRewardClaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionRewardClaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PositionId == nil { + m.PositionId = &PositionId{} + } + if err := m.PositionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RewardsCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RewardsCommitment == nil { + m.RewardsCommitment = &v1alpha1.BalanceCommitment{} + } + if err := m.RewardsCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Path) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Path: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Path: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pair", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pair == nil { + m.Pair = &DirectedTradingPair{} + } + if err := m.Pair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Route", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Route = append(m.Route, &v1alpha1.AssetId{}) + if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phi", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Phi == nil { + m.Phi = &BareTradingFunction{} + } + if err := m.Phi.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Trade) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Trade: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Trade: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Path == nil { + m.Path = &Path{} + } + if err := m.Path.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartAmount == nil { + m.StartAmount = &v1alpha1.Amount{} + } + if err := m.StartAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EndAmount == nil { + m.EndAmount = &v1alpha1.Amount{} + } + if err := m.EndAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapExecution) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapExecution: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapExecution: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Trades", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Trades = append(m.Trades, &Trade{}) + if err := m.Trades[len(m.Trades)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionWithdrawPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionWithdrawPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionWithdrawPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reserves", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Reserves == nil { + m.Reserves = &Reserves{} + } + if err := m.Reserves.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PositionRewardClaimPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PositionRewardClaimPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PositionRewardClaimPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reserves", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Reserves == nil { + m.Reserves = &Reserves{} + } + if err := m.Reserves.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDex(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDex + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipDex(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDex + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDex + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDex + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthDex + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupDex + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthDex + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthDex = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowDex = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupDex = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go b/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go new file mode 100644 index 000000000..a359335de --- /dev/null +++ b/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go @@ -0,0 +1,7225 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/governance/v1alpha1/governance.proto + +package governancev1alpha1 + +import ( + fmt "fmt" + types "github.com/cosmos/cosmos-sdk/codec/types" + proto "github.com/cosmos/gogoproto/proto" + v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/chain/v1alpha1" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// A vote. +type Vote_Vote int32 + +const ( + Vote_VOTE_UNSPECIFIED Vote_Vote = 0 + Vote_VOTE_ABSTAIN Vote_Vote = 1 + Vote_VOTE_YES Vote_Vote = 2 + Vote_VOTE_NO Vote_Vote = 3 +) + +var Vote_Vote_name = map[int32]string{ + 0: "VOTE_UNSPECIFIED", + 1: "VOTE_ABSTAIN", + 2: "VOTE_YES", + 3: "VOTE_NO", +} + +var Vote_Vote_value = map[string]int32{ + "VOTE_UNSPECIFIED": 0, + "VOTE_ABSTAIN": 1, + "VOTE_YES": 2, + "VOTE_NO": 3, +} + +func (x Vote_Vote) String() string { + return proto.EnumName(Vote_Vote_name, int32(x)) +} + +func (Vote_Vote) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{11, 0} +} + +type ProposalSubmit struct { + // The proposal to be submitted. + Proposal *Proposal `protobuf:"bytes,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The amount of the proposal deposit. + DepositAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=deposit_amount,json=depositAmount,proto3" json:"deposit_amount,omitempty"` +} + +func (m *ProposalSubmit) Reset() { *m = ProposalSubmit{} } +func (m *ProposalSubmit) String() string { return proto.CompactTextString(m) } +func (*ProposalSubmit) ProtoMessage() {} +func (*ProposalSubmit) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{0} +} +func (m *ProposalSubmit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalSubmit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalSubmit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalSubmit) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalSubmit.Merge(m, src) +} +func (m *ProposalSubmit) XXX_Size() int { + return m.Size() +} +func (m *ProposalSubmit) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalSubmit.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalSubmit proto.InternalMessageInfo + +func (m *ProposalSubmit) GetProposal() *Proposal { + if m != nil { + return m.Proposal + } + return nil +} + +func (m *ProposalSubmit) GetDepositAmount() *v1alpha1.Amount { + if m != nil { + return m.DepositAmount + } + return nil +} + +type ProposalWithdraw struct { + // The proposal to be withdrawn. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The reason for the proposal being withdrawn. + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (m *ProposalWithdraw) Reset() { *m = ProposalWithdraw{} } +func (m *ProposalWithdraw) String() string { return proto.CompactTextString(m) } +func (*ProposalWithdraw) ProtoMessage() {} +func (*ProposalWithdraw) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{1} +} +func (m *ProposalWithdraw) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalWithdraw) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalWithdraw.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalWithdraw) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalWithdraw.Merge(m, src) +} +func (m *ProposalWithdraw) XXX_Size() int { + return m.Size() +} +func (m *ProposalWithdraw) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalWithdraw.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalWithdraw proto.InternalMessageInfo + +func (m *ProposalWithdraw) GetProposal() uint64 { + if m != nil { + return m.Proposal + } + return 0 +} + +func (m *ProposalWithdraw) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +type ProposalDepositClaim struct { + // The proposal to claim the deposit for. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The expected deposit amount. + DepositAmount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=deposit_amount,json=depositAmount,proto3" json:"deposit_amount,omitempty"` + // The outcome of the proposal. + Outcome *ProposalOutcome `protobuf:"bytes,3,opt,name=outcome,proto3" json:"outcome,omitempty"` +} + +func (m *ProposalDepositClaim) Reset() { *m = ProposalDepositClaim{} } +func (m *ProposalDepositClaim) String() string { return proto.CompactTextString(m) } +func (*ProposalDepositClaim) ProtoMessage() {} +func (*ProposalDepositClaim) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{2} +} +func (m *ProposalDepositClaim) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalDepositClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalDepositClaim.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalDepositClaim) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalDepositClaim.Merge(m, src) +} +func (m *ProposalDepositClaim) XXX_Size() int { + return m.Size() +} +func (m *ProposalDepositClaim) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalDepositClaim.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalDepositClaim proto.InternalMessageInfo + +func (m *ProposalDepositClaim) GetProposal() uint64 { + if m != nil { + return m.Proposal + } + return 0 +} + +func (m *ProposalDepositClaim) GetDepositAmount() *v1alpha1.Amount { + if m != nil { + return m.DepositAmount + } + return nil +} + +func (m *ProposalDepositClaim) GetOutcome() *ProposalOutcome { + if m != nil { + return m.Outcome + } + return nil +} + +type ValidatorVote struct { + // The effecting data for the vote. + Body *ValidatorVoteBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The vote authorization signature is authorizing data. + AuthSig *v1alpha1.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` +} + +func (m *ValidatorVote) Reset() { *m = ValidatorVote{} } +func (m *ValidatorVote) String() string { return proto.CompactTextString(m) } +func (*ValidatorVote) ProtoMessage() {} +func (*ValidatorVote) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{3} +} +func (m *ValidatorVote) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorVote.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorVote) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorVote.Merge(m, src) +} +func (m *ValidatorVote) XXX_Size() int { + return m.Size() +} +func (m *ValidatorVote) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorVote.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorVote proto.InternalMessageInfo + +func (m *ValidatorVote) GetBody() *ValidatorVoteBody { + if m != nil { + return m.Body + } + return nil +} + +func (m *ValidatorVote) GetAuthSig() *v1alpha1.SpendAuthSignature { + if m != nil { + return m.AuthSig + } + return nil +} + +type ValidatorVoteBody struct { + // The proposal being voted on. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The vote. + Vote *Vote `protobuf:"bytes,2,opt,name=vote,proto3" json:"vote,omitempty"` + // The validator identity. + IdentityKey *v1alpha1.IdentityKey `protobuf:"bytes,3,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + // The validator governance key. + GovernanceKey *v1alpha1.GovernanceKey `protobuf:"bytes,4,opt,name=governance_key,json=governanceKey,proto3" json:"governance_key,omitempty"` +} + +func (m *ValidatorVoteBody) Reset() { *m = ValidatorVoteBody{} } +func (m *ValidatorVoteBody) String() string { return proto.CompactTextString(m) } +func (*ValidatorVoteBody) ProtoMessage() {} +func (*ValidatorVoteBody) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{4} +} +func (m *ValidatorVoteBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorVoteBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorVoteBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorVoteBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorVoteBody.Merge(m, src) +} +func (m *ValidatorVoteBody) XXX_Size() int { + return m.Size() +} +func (m *ValidatorVoteBody) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorVoteBody.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorVoteBody proto.InternalMessageInfo + +func (m *ValidatorVoteBody) GetProposal() uint64 { + if m != nil { + return m.Proposal + } + return 0 +} + +func (m *ValidatorVoteBody) GetVote() *Vote { + if m != nil { + return m.Vote + } + return nil +} + +func (m *ValidatorVoteBody) GetIdentityKey() *v1alpha1.IdentityKey { + if m != nil { + return m.IdentityKey + } + return nil +} + +func (m *ValidatorVoteBody) GetGovernanceKey() *v1alpha1.GovernanceKey { + if m != nil { + return m.GovernanceKey + } + return nil +} + +type DelegatorVote struct { + // The effecting data for the vote. + Body *DelegatorVoteBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The vote authorization signature is authorizing data. + AuthSig *v1alpha1.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` + // The vote proof is authorizing data. + Proof []byte `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (m *DelegatorVote) Reset() { *m = DelegatorVote{} } +func (m *DelegatorVote) String() string { return proto.CompactTextString(m) } +func (*DelegatorVote) ProtoMessage() {} +func (*DelegatorVote) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{5} +} +func (m *DelegatorVote) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DelegatorVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DelegatorVote.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DelegatorVote) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelegatorVote.Merge(m, src) +} +func (m *DelegatorVote) XXX_Size() int { + return m.Size() +} +func (m *DelegatorVote) XXX_DiscardUnknown() { + xxx_messageInfo_DelegatorVote.DiscardUnknown(m) +} + +var xxx_messageInfo_DelegatorVote proto.InternalMessageInfo + +func (m *DelegatorVote) GetBody() *DelegatorVoteBody { + if m != nil { + return m.Body + } + return nil +} + +func (m *DelegatorVote) GetAuthSig() *v1alpha1.SpendAuthSignature { + if m != nil { + return m.AuthSig + } + return nil +} + +func (m *DelegatorVote) GetProof() []byte { + if m != nil { + return m.Proof + } + return nil +} + +type DelegatorVoteBody struct { + // The proposal being voted on. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The start position of the proposal in the TCT. + StartPosition uint64 `protobuf:"varint,2,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` + // The vote. + Vote *Vote `protobuf:"bytes,3,opt,name=vote,proto3" json:"vote,omitempty"` + // The value of the delegation note. + Value *v1alpha1.Value `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` + // The amount of the delegation note, in unbonded penumbra. + UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + // The nullifier of the input note. + Nullifier []byte `protobuf:"bytes,6,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + // The randomized validating key for the spend authorization signature. + Rk []byte `protobuf:"bytes,7,opt,name=rk,proto3" json:"rk,omitempty"` +} + +func (m *DelegatorVoteBody) Reset() { *m = DelegatorVoteBody{} } +func (m *DelegatorVoteBody) String() string { return proto.CompactTextString(m) } +func (*DelegatorVoteBody) ProtoMessage() {} +func (*DelegatorVoteBody) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{6} +} +func (m *DelegatorVoteBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DelegatorVoteBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DelegatorVoteBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DelegatorVoteBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelegatorVoteBody.Merge(m, src) +} +func (m *DelegatorVoteBody) XXX_Size() int { + return m.Size() +} +func (m *DelegatorVoteBody) XXX_DiscardUnknown() { + xxx_messageInfo_DelegatorVoteBody.DiscardUnknown(m) +} + +var xxx_messageInfo_DelegatorVoteBody proto.InternalMessageInfo + +func (m *DelegatorVoteBody) GetProposal() uint64 { + if m != nil { + return m.Proposal + } + return 0 +} + +func (m *DelegatorVoteBody) GetStartPosition() uint64 { + if m != nil { + return m.StartPosition + } + return 0 +} + +func (m *DelegatorVoteBody) GetVote() *Vote { + if m != nil { + return m.Vote + } + return nil +} + +func (m *DelegatorVoteBody) GetValue() *v1alpha1.Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *DelegatorVoteBody) GetUnbondedAmount() *v1alpha1.Amount { + if m != nil { + return m.UnbondedAmount + } + return nil +} + +func (m *DelegatorVoteBody) GetNullifier() []byte { + if m != nil { + return m.Nullifier + } + return nil +} + +func (m *DelegatorVoteBody) GetRk() []byte { + if m != nil { + return m.Rk + } + return nil +} + +type DelegatorVotePlan struct { + // The proposal to vote on. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The start position of the proposal in the TCT. + StartPosition uint64 `protobuf:"varint,2,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` + // The vote to cast. + Vote *Vote `protobuf:"bytes,3,opt,name=vote,proto3" json:"vote,omitempty"` + // The delegation note to prove that we can vote. + StakedNote *v1alpha1.Note `protobuf:"bytes,4,opt,name=staked_note,json=stakedNote,proto3" json:"staked_note,omitempty"` + // The position of that delegation note. + StakedNotePosition uint64 `protobuf:"varint,5,opt,name=staked_note_position,json=stakedNotePosition,proto3" json:"staked_note_position,omitempty"` + // The unbonded amount equivalent to the delegation note. + UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,6,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + // The randomizer to use for the proof of spend capability. + Randomizer []byte `protobuf:"bytes,7,opt,name=randomizer,proto3" json:"randomizer,omitempty"` +} + +func (m *DelegatorVotePlan) Reset() { *m = DelegatorVotePlan{} } +func (m *DelegatorVotePlan) String() string { return proto.CompactTextString(m) } +func (*DelegatorVotePlan) ProtoMessage() {} +func (*DelegatorVotePlan) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{7} +} +func (m *DelegatorVotePlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DelegatorVotePlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DelegatorVotePlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DelegatorVotePlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelegatorVotePlan.Merge(m, src) +} +func (m *DelegatorVotePlan) XXX_Size() int { + return m.Size() +} +func (m *DelegatorVotePlan) XXX_DiscardUnknown() { + xxx_messageInfo_DelegatorVotePlan.DiscardUnknown(m) +} + +var xxx_messageInfo_DelegatorVotePlan proto.InternalMessageInfo + +func (m *DelegatorVotePlan) GetProposal() uint64 { + if m != nil { + return m.Proposal + } + return 0 +} + +func (m *DelegatorVotePlan) GetStartPosition() uint64 { + if m != nil { + return m.StartPosition + } + return 0 +} + +func (m *DelegatorVotePlan) GetVote() *Vote { + if m != nil { + return m.Vote + } + return nil +} + +func (m *DelegatorVotePlan) GetStakedNote() *v1alpha1.Note { + if m != nil { + return m.StakedNote + } + return nil +} + +func (m *DelegatorVotePlan) GetStakedNotePosition() uint64 { + if m != nil { + return m.StakedNotePosition + } + return 0 +} + +func (m *DelegatorVotePlan) GetUnbondedAmount() *v1alpha1.Amount { + if m != nil { + return m.UnbondedAmount + } + return nil +} + +func (m *DelegatorVotePlan) GetRandomizer() []byte { + if m != nil { + return m.Randomizer + } + return nil +} + +type DaoDeposit struct { + // The value to deposit into the DAO. + Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *DaoDeposit) Reset() { *m = DaoDeposit{} } +func (m *DaoDeposit) String() string { return proto.CompactTextString(m) } +func (*DaoDeposit) ProtoMessage() {} +func (*DaoDeposit) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{8} +} +func (m *DaoDeposit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DaoDeposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DaoDeposit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DaoDeposit) XXX_Merge(src proto.Message) { + xxx_messageInfo_DaoDeposit.Merge(m, src) +} +func (m *DaoDeposit) XXX_Size() int { + return m.Size() +} +func (m *DaoDeposit) XXX_DiscardUnknown() { + xxx_messageInfo_DaoDeposit.DiscardUnknown(m) +} + +var xxx_messageInfo_DaoDeposit proto.InternalMessageInfo + +func (m *DaoDeposit) GetValue() *v1alpha1.Value { + if m != nil { + return m.Value + } + return nil +} + +type DaoSpend struct { + // The value to spend from the DAO. + Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *DaoSpend) Reset() { *m = DaoSpend{} } +func (m *DaoSpend) String() string { return proto.CompactTextString(m) } +func (*DaoSpend) ProtoMessage() {} +func (*DaoSpend) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{9} +} +func (m *DaoSpend) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DaoSpend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DaoSpend.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DaoSpend) XXX_Merge(src proto.Message) { + xxx_messageInfo_DaoSpend.Merge(m, src) +} +func (m *DaoSpend) XXX_Size() int { + return m.Size() +} +func (m *DaoSpend) XXX_DiscardUnknown() { + xxx_messageInfo_DaoSpend.DiscardUnknown(m) +} + +var xxx_messageInfo_DaoSpend proto.InternalMessageInfo + +func (m *DaoSpend) GetValue() *v1alpha1.Value { + if m != nil { + return m.Value + } + return nil +} + +type DaoOutput struct { + // The value to output from the DAO. + Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The address to send the output to. + Address *v1alpha1.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *DaoOutput) Reset() { *m = DaoOutput{} } +func (m *DaoOutput) String() string { return proto.CompactTextString(m) } +func (*DaoOutput) ProtoMessage() {} +func (*DaoOutput) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{10} +} +func (m *DaoOutput) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DaoOutput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DaoOutput.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DaoOutput) XXX_Merge(src proto.Message) { + xxx_messageInfo_DaoOutput.Merge(m, src) +} +func (m *DaoOutput) XXX_Size() int { + return m.Size() +} +func (m *DaoOutput) XXX_DiscardUnknown() { + xxx_messageInfo_DaoOutput.DiscardUnknown(m) +} + +var xxx_messageInfo_DaoOutput proto.InternalMessageInfo + +func (m *DaoOutput) GetValue() *v1alpha1.Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *DaoOutput) GetAddress() *v1alpha1.Address { + if m != nil { + return m.Address + } + return nil +} + +// A vote on a proposal. +type Vote struct { + // The vote. + Vote Vote_Vote `protobuf:"varint,1,opt,name=vote,proto3,enum=penumbra.core.governance.v1alpha1.Vote_Vote" json:"vote,omitempty"` +} + +func (m *Vote) Reset() { *m = Vote{} } +func (m *Vote) String() string { return proto.CompactTextString(m) } +func (*Vote) ProtoMessage() {} +func (*Vote) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{11} +} +func (m *Vote) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Vote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Vote.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Vote) XXX_Merge(src proto.Message) { + xxx_messageInfo_Vote.Merge(m, src) +} +func (m *Vote) XXX_Size() int { + return m.Size() +} +func (m *Vote) XXX_DiscardUnknown() { + xxx_messageInfo_Vote.DiscardUnknown(m) +} + +var xxx_messageInfo_Vote proto.InternalMessageInfo + +func (m *Vote) GetVote() Vote_Vote { + if m != nil { + return m.Vote + } + return Vote_VOTE_UNSPECIFIED +} + +// The current state of a proposal. +type ProposalState struct { + // The state of the proposal. + // + // Types that are valid to be assigned to State: + // *ProposalState_Voting_ + // *ProposalState_Withdrawn_ + // *ProposalState_Finished_ + // *ProposalState_Claimed_ + State isProposalState_State `protobuf_oneof:"state"` +} + +func (m *ProposalState) Reset() { *m = ProposalState{} } +func (m *ProposalState) String() string { return proto.CompactTextString(m) } +func (*ProposalState) ProtoMessage() {} +func (*ProposalState) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{12} +} +func (m *ProposalState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalState) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalState.Merge(m, src) +} +func (m *ProposalState) XXX_Size() int { + return m.Size() +} +func (m *ProposalState) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalState.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalState proto.InternalMessageInfo + +type isProposalState_State interface { + isProposalState_State() + MarshalTo([]byte) (int, error) + Size() int +} + +type ProposalState_Voting_ struct { + Voting *ProposalState_Voting `protobuf:"bytes,2,opt,name=voting,proto3,oneof" json:"voting,omitempty"` +} +type ProposalState_Withdrawn_ struct { + Withdrawn *ProposalState_Withdrawn `protobuf:"bytes,3,opt,name=withdrawn,proto3,oneof" json:"withdrawn,omitempty"` +} +type ProposalState_Finished_ struct { + Finished *ProposalState_Finished `protobuf:"bytes,4,opt,name=finished,proto3,oneof" json:"finished,omitempty"` +} +type ProposalState_Claimed_ struct { + Claimed *ProposalState_Claimed `protobuf:"bytes,5,opt,name=claimed,proto3,oneof" json:"claimed,omitempty"` +} + +func (*ProposalState_Voting_) isProposalState_State() {} +func (*ProposalState_Withdrawn_) isProposalState_State() {} +func (*ProposalState_Finished_) isProposalState_State() {} +func (*ProposalState_Claimed_) isProposalState_State() {} + +func (m *ProposalState) GetState() isProposalState_State { + if m != nil { + return m.State + } + return nil +} + +func (m *ProposalState) GetVoting() *ProposalState_Voting { + if x, ok := m.GetState().(*ProposalState_Voting_); ok { + return x.Voting + } + return nil +} + +func (m *ProposalState) GetWithdrawn() *ProposalState_Withdrawn { + if x, ok := m.GetState().(*ProposalState_Withdrawn_); ok { + return x.Withdrawn + } + return nil +} + +func (m *ProposalState) GetFinished() *ProposalState_Finished { + if x, ok := m.GetState().(*ProposalState_Finished_); ok { + return x.Finished + } + return nil +} + +func (m *ProposalState) GetClaimed() *ProposalState_Claimed { + if x, ok := m.GetState().(*ProposalState_Claimed_); ok { + return x.Claimed + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ProposalState) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ProposalState_Voting_)(nil), + (*ProposalState_Withdrawn_)(nil), + (*ProposalState_Finished_)(nil), + (*ProposalState_Claimed_)(nil), + } +} + +// Voting is in progress and the proposal has not yet concluded voting or been withdrawn. +type ProposalState_Voting struct { +} + +func (m *ProposalState_Voting) Reset() { *m = ProposalState_Voting{} } +func (m *ProposalState_Voting) String() string { return proto.CompactTextString(m) } +func (*ProposalState_Voting) ProtoMessage() {} +func (*ProposalState_Voting) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{12, 0} +} +func (m *ProposalState_Voting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalState_Voting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalState_Voting.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalState_Voting) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalState_Voting.Merge(m, src) +} +func (m *ProposalState_Voting) XXX_Size() int { + return m.Size() +} +func (m *ProposalState_Voting) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalState_Voting.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalState_Voting proto.InternalMessageInfo + +// The proposal has been withdrawn but the voting period is not yet concluded. +type ProposalState_Withdrawn struct { + // The reason for the withdrawal. + Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (m *ProposalState_Withdrawn) Reset() { *m = ProposalState_Withdrawn{} } +func (m *ProposalState_Withdrawn) String() string { return proto.CompactTextString(m) } +func (*ProposalState_Withdrawn) ProtoMessage() {} +func (*ProposalState_Withdrawn) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{12, 1} +} +func (m *ProposalState_Withdrawn) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalState_Withdrawn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalState_Withdrawn.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalState_Withdrawn) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalState_Withdrawn.Merge(m, src) +} +func (m *ProposalState_Withdrawn) XXX_Size() int { + return m.Size() +} +func (m *ProposalState_Withdrawn) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalState_Withdrawn.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalState_Withdrawn proto.InternalMessageInfo + +func (m *ProposalState_Withdrawn) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +// The voting period has ended, and the proposal has been assigned an outcome. +type ProposalState_Finished struct { + Outcome *ProposalOutcome `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` +} + +func (m *ProposalState_Finished) Reset() { *m = ProposalState_Finished{} } +func (m *ProposalState_Finished) String() string { return proto.CompactTextString(m) } +func (*ProposalState_Finished) ProtoMessage() {} +func (*ProposalState_Finished) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{12, 2} +} +func (m *ProposalState_Finished) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalState_Finished) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalState_Finished.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalState_Finished) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalState_Finished.Merge(m, src) +} +func (m *ProposalState_Finished) XXX_Size() int { + return m.Size() +} +func (m *ProposalState_Finished) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalState_Finished.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalState_Finished proto.InternalMessageInfo + +func (m *ProposalState_Finished) GetOutcome() *ProposalOutcome { + if m != nil { + return m.Outcome + } + return nil +} + +// The voting period has ended, and the original proposer has claimed their deposit. +type ProposalState_Claimed struct { + Outcome *ProposalOutcome `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` +} + +func (m *ProposalState_Claimed) Reset() { *m = ProposalState_Claimed{} } +func (m *ProposalState_Claimed) String() string { return proto.CompactTextString(m) } +func (*ProposalState_Claimed) ProtoMessage() {} +func (*ProposalState_Claimed) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{12, 3} +} +func (m *ProposalState_Claimed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalState_Claimed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalState_Claimed.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalState_Claimed) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalState_Claimed.Merge(m, src) +} +func (m *ProposalState_Claimed) XXX_Size() int { + return m.Size() +} +func (m *ProposalState_Claimed) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalState_Claimed.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalState_Claimed proto.InternalMessageInfo + +func (m *ProposalState_Claimed) GetOutcome() *ProposalOutcome { + if m != nil { + return m.Outcome + } + return nil +} + +// The outcome of a concluded proposal. +type ProposalOutcome struct { + // Types that are valid to be assigned to Outcome: + // + // *ProposalOutcome_Passed_ + // *ProposalOutcome_Failed_ + // *ProposalOutcome_Slashed_ + Outcome isProposalOutcome_Outcome `protobuf_oneof:"outcome"` +} + +func (m *ProposalOutcome) Reset() { *m = ProposalOutcome{} } +func (m *ProposalOutcome) String() string { return proto.CompactTextString(m) } +func (*ProposalOutcome) ProtoMessage() {} +func (*ProposalOutcome) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{13} +} +func (m *ProposalOutcome) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalOutcome) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalOutcome.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalOutcome) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalOutcome.Merge(m, src) +} +func (m *ProposalOutcome) XXX_Size() int { + return m.Size() +} +func (m *ProposalOutcome) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalOutcome.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalOutcome proto.InternalMessageInfo + +type isProposalOutcome_Outcome interface { + isProposalOutcome_Outcome() + MarshalTo([]byte) (int, error) + Size() int +} + +type ProposalOutcome_Passed_ struct { + Passed *ProposalOutcome_Passed `protobuf:"bytes,1,opt,name=passed,proto3,oneof" json:"passed,omitempty"` +} +type ProposalOutcome_Failed_ struct { + Failed *ProposalOutcome_Failed `protobuf:"bytes,2,opt,name=failed,proto3,oneof" json:"failed,omitempty"` +} +type ProposalOutcome_Slashed_ struct { + Slashed *ProposalOutcome_Slashed `protobuf:"bytes,3,opt,name=slashed,proto3,oneof" json:"slashed,omitempty"` +} + +func (*ProposalOutcome_Passed_) isProposalOutcome_Outcome() {} +func (*ProposalOutcome_Failed_) isProposalOutcome_Outcome() {} +func (*ProposalOutcome_Slashed_) isProposalOutcome_Outcome() {} + +func (m *ProposalOutcome) GetOutcome() isProposalOutcome_Outcome { + if m != nil { + return m.Outcome + } + return nil +} + +func (m *ProposalOutcome) GetPassed() *ProposalOutcome_Passed { + if x, ok := m.GetOutcome().(*ProposalOutcome_Passed_); ok { + return x.Passed + } + return nil +} + +func (m *ProposalOutcome) GetFailed() *ProposalOutcome_Failed { + if x, ok := m.GetOutcome().(*ProposalOutcome_Failed_); ok { + return x.Failed + } + return nil +} + +func (m *ProposalOutcome) GetSlashed() *ProposalOutcome_Slashed { + if x, ok := m.GetOutcome().(*ProposalOutcome_Slashed_); ok { + return x.Slashed + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ProposalOutcome) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ProposalOutcome_Passed_)(nil), + (*ProposalOutcome_Failed_)(nil), + (*ProposalOutcome_Slashed_)(nil), + } +} + +// The proposal was passed. +type ProposalOutcome_Passed struct { +} + +func (m *ProposalOutcome_Passed) Reset() { *m = ProposalOutcome_Passed{} } +func (m *ProposalOutcome_Passed) String() string { return proto.CompactTextString(m) } +func (*ProposalOutcome_Passed) ProtoMessage() {} +func (*ProposalOutcome_Passed) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{13, 0} +} +func (m *ProposalOutcome_Passed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalOutcome_Passed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalOutcome_Passed.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalOutcome_Passed) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalOutcome_Passed.Merge(m, src) +} +func (m *ProposalOutcome_Passed) XXX_Size() int { + return m.Size() +} +func (m *ProposalOutcome_Passed) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalOutcome_Passed.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalOutcome_Passed proto.InternalMessageInfo + +// The proposal did not pass. +type ProposalOutcome_Failed struct { + // Types that are valid to be assigned to XWithdrawnWithReason: + // + // *ProposalOutcome_Failed_WithdrawnWithReason + XWithdrawnWithReason isProposalOutcome_Failed_XWithdrawnWithReason `protobuf_oneof:"_withdrawn_with_reason"` +} + +func (m *ProposalOutcome_Failed) Reset() { *m = ProposalOutcome_Failed{} } +func (m *ProposalOutcome_Failed) String() string { return proto.CompactTextString(m) } +func (*ProposalOutcome_Failed) ProtoMessage() {} +func (*ProposalOutcome_Failed) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{13, 1} +} +func (m *ProposalOutcome_Failed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalOutcome_Failed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalOutcome_Failed.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalOutcome_Failed) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalOutcome_Failed.Merge(m, src) +} +func (m *ProposalOutcome_Failed) XXX_Size() int { + return m.Size() +} +func (m *ProposalOutcome_Failed) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalOutcome_Failed.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalOutcome_Failed proto.InternalMessageInfo + +type isProposalOutcome_Failed_XWithdrawnWithReason interface { + isProposalOutcome_Failed_XWithdrawnWithReason() + MarshalTo([]byte) (int, error) + Size() int +} + +type ProposalOutcome_Failed_WithdrawnWithReason struct { + WithdrawnWithReason string `protobuf:"bytes,1,opt,name=withdrawn_with_reason,json=withdrawnWithReason,proto3,oneof" json:"withdrawn_with_reason,omitempty"` +} + +func (*ProposalOutcome_Failed_WithdrawnWithReason) isProposalOutcome_Failed_XWithdrawnWithReason() {} + +func (m *ProposalOutcome_Failed) GetXWithdrawnWithReason() isProposalOutcome_Failed_XWithdrawnWithReason { + if m != nil { + return m.XWithdrawnWithReason + } + return nil +} + +func (m *ProposalOutcome_Failed) GetWithdrawnWithReason() string { + if x, ok := m.GetXWithdrawnWithReason().(*ProposalOutcome_Failed_WithdrawnWithReason); ok { + return x.WithdrawnWithReason + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ProposalOutcome_Failed) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ProposalOutcome_Failed_WithdrawnWithReason)(nil), + } +} + +// The proposal did not pass, and was slashed. +type ProposalOutcome_Slashed struct { + // Types that are valid to be assigned to XWithdrawnWithReason: + // + // *ProposalOutcome_Slashed_WithdrawnWithReason + XWithdrawnWithReason isProposalOutcome_Slashed_XWithdrawnWithReason `protobuf_oneof:"_withdrawn_with_reason"` +} + +func (m *ProposalOutcome_Slashed) Reset() { *m = ProposalOutcome_Slashed{} } +func (m *ProposalOutcome_Slashed) String() string { return proto.CompactTextString(m) } +func (*ProposalOutcome_Slashed) ProtoMessage() {} +func (*ProposalOutcome_Slashed) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{13, 2} +} +func (m *ProposalOutcome_Slashed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProposalOutcome_Slashed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProposalOutcome_Slashed.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProposalOutcome_Slashed) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProposalOutcome_Slashed.Merge(m, src) +} +func (m *ProposalOutcome_Slashed) XXX_Size() int { + return m.Size() +} +func (m *ProposalOutcome_Slashed) XXX_DiscardUnknown() { + xxx_messageInfo_ProposalOutcome_Slashed.DiscardUnknown(m) +} + +var xxx_messageInfo_ProposalOutcome_Slashed proto.InternalMessageInfo + +type isProposalOutcome_Slashed_XWithdrawnWithReason interface { + isProposalOutcome_Slashed_XWithdrawnWithReason() + MarshalTo([]byte) (int, error) + Size() int +} + +type ProposalOutcome_Slashed_WithdrawnWithReason struct { + WithdrawnWithReason string `protobuf:"bytes,1,opt,name=withdrawn_with_reason,json=withdrawnWithReason,proto3,oneof" json:"withdrawn_with_reason,omitempty"` +} + +func (*ProposalOutcome_Slashed_WithdrawnWithReason) isProposalOutcome_Slashed_XWithdrawnWithReason() { +} + +func (m *ProposalOutcome_Slashed) GetXWithdrawnWithReason() isProposalOutcome_Slashed_XWithdrawnWithReason { + if m != nil { + return m.XWithdrawnWithReason + } + return nil +} + +func (m *ProposalOutcome_Slashed) GetWithdrawnWithReason() string { + if x, ok := m.GetXWithdrawnWithReason().(*ProposalOutcome_Slashed_WithdrawnWithReason); ok { + return x.WithdrawnWithReason + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ProposalOutcome_Slashed) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ProposalOutcome_Slashed_WithdrawnWithReason)(nil), + } +} + +// A tally of votes on a proposal. +type Tally struct { + // The number of votes in favor of the proposal. + Yes uint64 `protobuf:"varint,1,opt,name=yes,proto3" json:"yes,omitempty"` + // The number of votes against the proposal. + No uint64 `protobuf:"varint,2,opt,name=no,proto3" json:"no,omitempty"` + // The number of abstentions. + Abstain uint64 `protobuf:"varint,3,opt,name=abstain,proto3" json:"abstain,omitempty"` +} + +func (m *Tally) Reset() { *m = Tally{} } +func (m *Tally) String() string { return proto.CompactTextString(m) } +func (*Tally) ProtoMessage() {} +func (*Tally) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{14} +} +func (m *Tally) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Tally) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Tally.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Tally) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tally.Merge(m, src) +} +func (m *Tally) XXX_Size() int { + return m.Size() +} +func (m *Tally) XXX_DiscardUnknown() { + xxx_messageInfo_Tally.DiscardUnknown(m) +} + +var xxx_messageInfo_Tally proto.InternalMessageInfo + +func (m *Tally) GetYes() uint64 { + if m != nil { + return m.Yes + } + return 0 +} + +func (m *Tally) GetNo() uint64 { + if m != nil { + return m.No + } + return 0 +} + +func (m *Tally) GetAbstain() uint64 { + if m != nil { + return m.Abstain + } + return 0 +} + +// A proposal to be voted upon. +type Proposal struct { + // The unique identifier of the proposal. + Id uint64 `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"` + // A short title for the proposal. + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + // A natural-language description of the effect of the proposal and its justification. + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + // The different kinds of proposal. Only one of these should be set. + Signaling *Proposal_Signaling `protobuf:"bytes,5,opt,name=signaling,proto3" json:"signaling,omitempty"` + Emergency *Proposal_Emergency `protobuf:"bytes,6,opt,name=emergency,proto3" json:"emergency,omitempty"` + ParameterChange *Proposal_ParameterChange `protobuf:"bytes,7,opt,name=parameter_change,json=parameterChange,proto3" json:"parameter_change,omitempty"` + DaoSpend *Proposal_DaoSpend `protobuf:"bytes,8,opt,name=dao_spend,json=daoSpend,proto3" json:"dao_spend,omitempty"` +} + +func (m *Proposal) Reset() { *m = Proposal{} } +func (m *Proposal) String() string { return proto.CompactTextString(m) } +func (*Proposal) ProtoMessage() {} +func (*Proposal) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{15} +} +func (m *Proposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Proposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Proposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Proposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_Proposal.Merge(m, src) +} +func (m *Proposal) XXX_Size() int { + return m.Size() +} +func (m *Proposal) XXX_DiscardUnknown() { + xxx_messageInfo_Proposal.DiscardUnknown(m) +} + +var xxx_messageInfo_Proposal proto.InternalMessageInfo + +func (m *Proposal) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *Proposal) GetTitle() string { + if m != nil { + return m.Title + } + return "" +} + +func (m *Proposal) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *Proposal) GetSignaling() *Proposal_Signaling { + if m != nil { + return m.Signaling + } + return nil +} + +func (m *Proposal) GetEmergency() *Proposal_Emergency { + if m != nil { + return m.Emergency + } + return nil +} + +func (m *Proposal) GetParameterChange() *Proposal_ParameterChange { + if m != nil { + return m.ParameterChange + } + return nil +} + +func (m *Proposal) GetDaoSpend() *Proposal_DaoSpend { + if m != nil { + return m.DaoSpend + } + return nil +} + +// A signaling proposal is meant to register a vote on-chain, but does not have an automatic +// effect when passed. +// +// It optionally contains a reference to a commit which contains code to upgrade the chain. +type Proposal_Signaling struct { + // Types that are valid to be assigned to XCommit: + // + // *Proposal_Signaling_Commit + XCommit isProposal_Signaling_XCommit `protobuf_oneof:"_commit"` +} + +func (m *Proposal_Signaling) Reset() { *m = Proposal_Signaling{} } +func (m *Proposal_Signaling) String() string { return proto.CompactTextString(m) } +func (*Proposal_Signaling) ProtoMessage() {} +func (*Proposal_Signaling) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{15, 0} +} +func (m *Proposal_Signaling) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Proposal_Signaling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Proposal_Signaling.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Proposal_Signaling) XXX_Merge(src proto.Message) { + xxx_messageInfo_Proposal_Signaling.Merge(m, src) +} +func (m *Proposal_Signaling) XXX_Size() int { + return m.Size() +} +func (m *Proposal_Signaling) XXX_DiscardUnknown() { + xxx_messageInfo_Proposal_Signaling.DiscardUnknown(m) +} + +var xxx_messageInfo_Proposal_Signaling proto.InternalMessageInfo + +type isProposal_Signaling_XCommit interface { + isProposal_Signaling_XCommit() + MarshalTo([]byte) (int, error) + Size() int +} + +type Proposal_Signaling_Commit struct { + Commit string `protobuf:"bytes,1,opt,name=commit,proto3,oneof" json:"commit,omitempty"` +} + +func (*Proposal_Signaling_Commit) isProposal_Signaling_XCommit() {} + +func (m *Proposal_Signaling) GetXCommit() isProposal_Signaling_XCommit { + if m != nil { + return m.XCommit + } + return nil +} + +func (m *Proposal_Signaling) GetCommit() string { + if x, ok := m.GetXCommit().(*Proposal_Signaling_Commit); ok { + return x.Commit + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Proposal_Signaling) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Proposal_Signaling_Commit)(nil), + } +} + +// An emergency proposal can be passed instantaneously by a 2/3 majority of validators, without +// waiting for the voting period to expire. +// +// If the boolean `halt_chain` is set to `true`, then the chain will halt immediately when the +// proposal is passed. +type Proposal_Emergency struct { + // If `true`, the chain will halt immediately when the proposal is passed. + HaltChain bool `protobuf:"varint,1,opt,name=halt_chain,json=haltChain,proto3" json:"halt_chain,omitempty"` +} + +func (m *Proposal_Emergency) Reset() { *m = Proposal_Emergency{} } +func (m *Proposal_Emergency) String() string { return proto.CompactTextString(m) } +func (*Proposal_Emergency) ProtoMessage() {} +func (*Proposal_Emergency) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{15, 1} +} +func (m *Proposal_Emergency) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Proposal_Emergency) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Proposal_Emergency.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Proposal_Emergency) XXX_Merge(src proto.Message) { + xxx_messageInfo_Proposal_Emergency.Merge(m, src) +} +func (m *Proposal_Emergency) XXX_Size() int { + return m.Size() +} +func (m *Proposal_Emergency) XXX_DiscardUnknown() { + xxx_messageInfo_Proposal_Emergency.DiscardUnknown(m) +} + +var xxx_messageInfo_Proposal_Emergency proto.InternalMessageInfo + +func (m *Proposal_Emergency) GetHaltChain() bool { + if m != nil { + return m.HaltChain + } + return false +} + +// A parameter change proposal describes a replacement of the chain parameters, which should take +// effect when the proposal is passed. +type Proposal_ParameterChange struct { + // The old chain parameters to be replaced: even if the proposal passes, the update will not be + // applied if the chain parameters have changed *at all* from these chain parameters. Usually, + // this should be set to the current chain parameters at time of proposal. + OldParameters *v1alpha11.ChainParameters `protobuf:"bytes,1,opt,name=old_parameters,json=oldParameters,proto3" json:"old_parameters,omitempty"` + // The new chain parameters to be set: the *entire* chain parameters will be replaced with these + // at the time the proposal is passed. + NewParameters *v1alpha11.ChainParameters `protobuf:"bytes,2,opt,name=new_parameters,json=newParameters,proto3" json:"new_parameters,omitempty"` +} + +func (m *Proposal_ParameterChange) Reset() { *m = Proposal_ParameterChange{} } +func (m *Proposal_ParameterChange) String() string { return proto.CompactTextString(m) } +func (*Proposal_ParameterChange) ProtoMessage() {} +func (*Proposal_ParameterChange) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{15, 2} +} +func (m *Proposal_ParameterChange) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Proposal_ParameterChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Proposal_ParameterChange.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Proposal_ParameterChange) XXX_Merge(src proto.Message) { + xxx_messageInfo_Proposal_ParameterChange.Merge(m, src) +} +func (m *Proposal_ParameterChange) XXX_Size() int { + return m.Size() +} +func (m *Proposal_ParameterChange) XXX_DiscardUnknown() { + xxx_messageInfo_Proposal_ParameterChange.DiscardUnknown(m) +} + +var xxx_messageInfo_Proposal_ParameterChange proto.InternalMessageInfo + +func (m *Proposal_ParameterChange) GetOldParameters() *v1alpha11.ChainParameters { + if m != nil { + return m.OldParameters + } + return nil +} + +func (m *Proposal_ParameterChange) GetNewParameters() *v1alpha11.ChainParameters { + if m != nil { + return m.NewParameters + } + return nil +} + +// A DAO spend proposal describes zero or more transactions to execute on behalf of the DAO, with +// access to its funds, and zero or more scheduled transactions from previous passed proposals to +// cancel. +type Proposal_DaoSpend struct { + // The transaction plan to be executed at the time the proposal is passed. This must be a + // transaction plan which can be executed by the DAO, which means it can't require any witness + // data or authorization signatures, but it may use the `DaoSpend` action. + TransactionPlan *types.Any `protobuf:"bytes,2,opt,name=transaction_plan,json=transactionPlan,proto3" json:"transaction_plan,omitempty"` +} + +func (m *Proposal_DaoSpend) Reset() { *m = Proposal_DaoSpend{} } +func (m *Proposal_DaoSpend) String() string { return proto.CompactTextString(m) } +func (*Proposal_DaoSpend) ProtoMessage() {} +func (*Proposal_DaoSpend) Descriptor() ([]byte, []int) { + return fileDescriptor_1bc89f5bf0aed114, []int{15, 3} +} +func (m *Proposal_DaoSpend) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Proposal_DaoSpend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Proposal_DaoSpend.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Proposal_DaoSpend) XXX_Merge(src proto.Message) { + xxx_messageInfo_Proposal_DaoSpend.Merge(m, src) +} +func (m *Proposal_DaoSpend) XXX_Size() int { + return m.Size() +} +func (m *Proposal_DaoSpend) XXX_DiscardUnknown() { + xxx_messageInfo_Proposal_DaoSpend.DiscardUnknown(m) +} + +var xxx_messageInfo_Proposal_DaoSpend proto.InternalMessageInfo + +func (m *Proposal_DaoSpend) GetTransactionPlan() *types.Any { + if m != nil { + return m.TransactionPlan + } + return nil +} + +func init() { + proto.RegisterEnum("penumbra.core.governance.v1alpha1.Vote_Vote", Vote_Vote_name, Vote_Vote_value) + proto.RegisterType((*ProposalSubmit)(nil), "penumbra.core.governance.v1alpha1.ProposalSubmit") + proto.RegisterType((*ProposalWithdraw)(nil), "penumbra.core.governance.v1alpha1.ProposalWithdraw") + proto.RegisterType((*ProposalDepositClaim)(nil), "penumbra.core.governance.v1alpha1.ProposalDepositClaim") + proto.RegisterType((*ValidatorVote)(nil), "penumbra.core.governance.v1alpha1.ValidatorVote") + proto.RegisterType((*ValidatorVoteBody)(nil), "penumbra.core.governance.v1alpha1.ValidatorVoteBody") + proto.RegisterType((*DelegatorVote)(nil), "penumbra.core.governance.v1alpha1.DelegatorVote") + proto.RegisterType((*DelegatorVoteBody)(nil), "penumbra.core.governance.v1alpha1.DelegatorVoteBody") + proto.RegisterType((*DelegatorVotePlan)(nil), "penumbra.core.governance.v1alpha1.DelegatorVotePlan") + proto.RegisterType((*DaoDeposit)(nil), "penumbra.core.governance.v1alpha1.DaoDeposit") + proto.RegisterType((*DaoSpend)(nil), "penumbra.core.governance.v1alpha1.DaoSpend") + proto.RegisterType((*DaoOutput)(nil), "penumbra.core.governance.v1alpha1.DaoOutput") + proto.RegisterType((*Vote)(nil), "penumbra.core.governance.v1alpha1.Vote") + proto.RegisterType((*ProposalState)(nil), "penumbra.core.governance.v1alpha1.ProposalState") + proto.RegisterType((*ProposalState_Voting)(nil), "penumbra.core.governance.v1alpha1.ProposalState.Voting") + proto.RegisterType((*ProposalState_Withdrawn)(nil), "penumbra.core.governance.v1alpha1.ProposalState.Withdrawn") + proto.RegisterType((*ProposalState_Finished)(nil), "penumbra.core.governance.v1alpha1.ProposalState.Finished") + proto.RegisterType((*ProposalState_Claimed)(nil), "penumbra.core.governance.v1alpha1.ProposalState.Claimed") + proto.RegisterType((*ProposalOutcome)(nil), "penumbra.core.governance.v1alpha1.ProposalOutcome") + proto.RegisterType((*ProposalOutcome_Passed)(nil), "penumbra.core.governance.v1alpha1.ProposalOutcome.Passed") + proto.RegisterType((*ProposalOutcome_Failed)(nil), "penumbra.core.governance.v1alpha1.ProposalOutcome.Failed") + proto.RegisterType((*ProposalOutcome_Slashed)(nil), "penumbra.core.governance.v1alpha1.ProposalOutcome.Slashed") + proto.RegisterType((*Tally)(nil), "penumbra.core.governance.v1alpha1.Tally") + proto.RegisterType((*Proposal)(nil), "penumbra.core.governance.v1alpha1.Proposal") + proto.RegisterType((*Proposal_Signaling)(nil), "penumbra.core.governance.v1alpha1.Proposal.Signaling") + proto.RegisterType((*Proposal_Emergency)(nil), "penumbra.core.governance.v1alpha1.Proposal.Emergency") + proto.RegisterType((*Proposal_ParameterChange)(nil), "penumbra.core.governance.v1alpha1.Proposal.ParameterChange") + proto.RegisterType((*Proposal_DaoSpend)(nil), "penumbra.core.governance.v1alpha1.Proposal.DaoSpend") +} + +func init() { + proto.RegisterFile("penumbra/core/governance/v1alpha1/governance.proto", fileDescriptor_1bc89f5bf0aed114) +} + +var fileDescriptor_1bc89f5bf0aed114 = []byte{ + // 1502 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, + 0x16, 0x16, 0x65, 0x59, 0x3f, 0xc7, 0xb6, 0xac, 0xcc, 0xf5, 0x0d, 0x74, 0x75, 0xef, 0x35, 0x12, + 0x25, 0xb9, 0x37, 0x48, 0x1b, 0xa9, 0x71, 0x5a, 0xa4, 0x51, 0x16, 0x8d, 0x25, 0xff, 0x22, 0x89, + 0xad, 0x50, 0xae, 0xd3, 0xa6, 0x06, 0xd8, 0x91, 0x38, 0x96, 0x08, 0x53, 0x33, 0x04, 0x39, 0xb2, + 0xa1, 0x3e, 0x41, 0xbb, 0x0b, 0xd0, 0x37, 0x28, 0x50, 0x14, 0xe8, 0x3b, 0x64, 0x5f, 0x14, 0x68, + 0x91, 0x65, 0xba, 0x2b, 0xec, 0x5d, 0x5f, 0xa1, 0x9b, 0x62, 0x86, 0xc3, 0x1f, 0xdb, 0x69, 0x14, + 0xd9, 0x0d, 0xba, 0xe3, 0x39, 0x3c, 0xdf, 0x77, 0x7e, 0xe6, 0xcc, 0xcc, 0x21, 0x61, 0xc1, 0x21, + 0x74, 0xd0, 0x6f, 0xbb, 0xb8, 0xda, 0x61, 0x2e, 0xa9, 0x76, 0xd9, 0x3e, 0x71, 0x29, 0xa6, 0x1d, + 0x52, 0xdd, 0xbf, 0x85, 0x6d, 0xa7, 0x87, 0x6f, 0xc5, 0x74, 0x15, 0xc7, 0x65, 0x9c, 0xa1, 0xcb, + 0x01, 0xa6, 0x22, 0x30, 0x95, 0xd8, 0xfb, 0x00, 0x53, 0xfa, 0x57, 0x97, 0xb1, 0xae, 0x4d, 0xaa, + 0x12, 0xd0, 0x1e, 0xec, 0x56, 0x31, 0x1d, 0xfa, 0xe8, 0xd2, 0x8d, 0xe3, 0x1e, 0x3b, 0xee, 0xd0, + 0xe1, 0x2c, 0xf2, 0xe6, 0xcb, 0xca, 0xf6, 0xfa, 0x09, 0xdb, 0x1e, 0xb6, 0x68, 0xcc, 0x54, 0x88, + 0xbe, 0x65, 0xf9, 0x3b, 0x0d, 0xf2, 0x4d, 0x97, 0x39, 0xcc, 0xc3, 0x76, 0x6b, 0xd0, 0xee, 0x5b, + 0x1c, 0xad, 0x42, 0xd6, 0x51, 0x9a, 0xa2, 0x76, 0x49, 0xbb, 0x3e, 0xb5, 0xf0, 0x4e, 0x65, 0x64, + 0xe4, 0x95, 0x80, 0x44, 0x0f, 0xc1, 0xe8, 0x21, 0xe4, 0x4d, 0xe2, 0x30, 0xcf, 0xe2, 0x06, 0xee, + 0xb3, 0x01, 0xe5, 0xc5, 0x09, 0x49, 0x77, 0xed, 0x04, 0x9d, 0x0a, 0x3d, 0xa4, 0x5a, 0x94, 0xc6, + 0xfa, 0x8c, 0x02, 0xfb, 0x62, 0x79, 0x05, 0x0a, 0x81, 0x8f, 0x27, 0x16, 0xef, 0x99, 0x2e, 0x3e, + 0x40, 0xa5, 0x13, 0xa1, 0xa6, 0x62, 0xde, 0x2f, 0x42, 0xda, 0x25, 0xd8, 0x63, 0xb4, 0x98, 0xbc, + 0xa4, 0x5d, 0xcf, 0xe9, 0x4a, 0x2a, 0xff, 0xac, 0xc1, 0x5c, 0x40, 0xb4, 0xe4, 0x7b, 0x68, 0xd8, + 0xd8, 0xea, 0xbf, 0x96, 0xec, 0x74, 0x2a, 0xc9, 0xb3, 0xa7, 0x82, 0x1e, 0x42, 0x86, 0x0d, 0x78, + 0x87, 0xf5, 0x89, 0xaa, 0xc8, 0xc2, 0x18, 0x05, 0xde, 0xf4, 0x91, 0x7a, 0x40, 0x21, 0x96, 0x70, + 0x66, 0x1b, 0xdb, 0x96, 0x89, 0x39, 0x73, 0xb7, 0x19, 0x27, 0x68, 0x0d, 0x52, 0x6d, 0x66, 0x0e, + 0xd5, 0xea, 0xbd, 0xff, 0x06, 0xe4, 0xc7, 0xf0, 0x75, 0x66, 0x0e, 0x75, 0xc9, 0x80, 0x1e, 0x42, + 0x16, 0x0f, 0x78, 0xcf, 0xf0, 0xac, 0xae, 0xca, 0xf8, 0xd6, 0x88, 0x8c, 0x5b, 0x0e, 0xa1, 0xe6, + 0xe2, 0x80, 0xf7, 0x5a, 0x56, 0x97, 0x62, 0x3e, 0x70, 0x89, 0x9e, 0xc1, 0xbe, 0x58, 0x7e, 0x96, + 0x84, 0x0b, 0xa7, 0x3c, 0xbd, 0xb6, 0xee, 0xf7, 0x20, 0xb5, 0xcf, 0x38, 0x51, 0xbe, 0xff, 0xff, + 0x26, 0x99, 0x30, 0x4e, 0x74, 0x09, 0x42, 0x8f, 0x60, 0xda, 0x32, 0x09, 0xe5, 0x16, 0x1f, 0x1a, + 0x7b, 0x64, 0xa8, 0x6a, 0x7d, 0x63, 0x44, 0x02, 0xeb, 0x0a, 0xf2, 0x80, 0x0c, 0xf5, 0x29, 0x2b, + 0x12, 0x50, 0x0b, 0xf2, 0x91, 0x43, 0x49, 0x98, 0x92, 0x84, 0xef, 0x8e, 0x20, 0x5c, 0x0d, 0x41, + 0x82, 0x72, 0xa6, 0x1b, 0x17, 0xcb, 0xcf, 0x35, 0x98, 0x59, 0x22, 0x36, 0xe9, 0x9e, 0x63, 0xf1, + 0x8e, 0xe1, 0xdf, 0xd6, 0xe2, 0xa1, 0x39, 0x98, 0x74, 0x5c, 0xc6, 0x76, 0x65, 0x19, 0xa7, 0x75, + 0x5f, 0x28, 0xff, 0x94, 0x84, 0x0b, 0xa7, 0xfc, 0xbf, 0x76, 0x49, 0xaf, 0x41, 0xde, 0xe3, 0xd8, + 0xe5, 0x86, 0xdc, 0x11, 0x96, 0xda, 0x9f, 0x29, 0x7d, 0x46, 0x6a, 0x9b, 0x4a, 0x19, 0xae, 0xfc, + 0xc4, 0x59, 0x56, 0xbe, 0x06, 0x93, 0xfb, 0xd8, 0x1e, 0x10, 0xb5, 0x42, 0x57, 0x47, 0xa4, 0xbd, + 0x2d, 0x6c, 0x75, 0x1f, 0x82, 0x36, 0x60, 0x76, 0x40, 0xdb, 0x8c, 0x9a, 0xc4, 0x0c, 0xf6, 0xfa, + 0xe4, 0x38, 0x7b, 0x3d, 0x1f, 0xa0, 0xd5, 0x66, 0xff, 0x0f, 0xe4, 0xe8, 0xc0, 0xb6, 0xad, 0x5d, + 0x8b, 0xb8, 0xc5, 0xb4, 0xac, 0x5d, 0xa4, 0x40, 0x79, 0x48, 0xba, 0x7b, 0xc5, 0x8c, 0x54, 0x27, + 0xdd, 0xbd, 0xf2, 0xef, 0x27, 0xeb, 0xd9, 0xb4, 0x31, 0xfd, 0xdb, 0xeb, 0xb9, 0x04, 0x53, 0x1e, + 0xc7, 0x7b, 0xc4, 0x34, 0xa8, 0xe0, 0xf0, 0xab, 0x7a, 0x65, 0x44, 0x3d, 0x36, 0x04, 0x1e, 0x7c, + 0x9c, 0x78, 0x46, 0xef, 0xc1, 0x5c, 0x8c, 0x25, 0x8a, 0x77, 0x52, 0xc6, 0x8b, 0x22, 0xcb, 0x30, + 0xe8, 0x57, 0xac, 0x45, 0xfa, 0x3c, 0x6b, 0x31, 0x0f, 0xe0, 0x62, 0x6a, 0xb2, 0xbe, 0xf5, 0x05, + 0x71, 0x55, 0xd5, 0x63, 0x9a, 0xf2, 0x1a, 0xc0, 0x12, 0x66, 0xea, 0x56, 0x88, 0xba, 0x48, 0x1b, + 0xbb, 0x8b, 0xca, 0x2b, 0x90, 0x5d, 0xc2, 0x4c, 0xee, 0xa7, 0x73, 0xf1, 0x7c, 0xa5, 0x41, 0x6e, + 0x09, 0xb3, 0xcd, 0x01, 0x77, 0x06, 0xe7, 0x8a, 0x08, 0xdd, 0x87, 0x0c, 0x36, 0x4d, 0x97, 0x78, + 0x9e, 0x3a, 0x0c, 0xfe, 0x37, 0xaa, 0x86, 0xbe, 0xb5, 0x1e, 0xc0, 0xca, 0x5f, 0x6b, 0x90, 0x92, + 0x47, 0xd4, 0x7d, 0xd5, 0x4b, 0x22, 0x8a, 0xfc, 0xa9, 0xf3, 0xef, 0xcf, 0x7a, 0x29, 0xd6, 0x50, + 0xe5, 0x75, 0xc5, 0x34, 0x07, 0x85, 0xed, 0xcd, 0xad, 0x65, 0xe3, 0xe3, 0x8d, 0x56, 0x73, 0xb9, + 0xb1, 0xbe, 0xb2, 0xbe, 0xbc, 0x54, 0x48, 0xa0, 0x02, 0x4c, 0x4b, 0xed, 0x62, 0xbd, 0xb5, 0xb5, + 0xb8, 0xbe, 0x51, 0xd0, 0xd0, 0x34, 0x64, 0xa5, 0xe6, 0xd3, 0xe5, 0x56, 0x21, 0x89, 0xa6, 0x20, + 0x23, 0xa5, 0x8d, 0xcd, 0xc2, 0x44, 0xf9, 0x65, 0x0a, 0x66, 0xc2, 0x09, 0x86, 0x63, 0x4e, 0xd0, + 0x63, 0x48, 0xef, 0x33, 0x6e, 0xd1, 0xe0, 0xd4, 0xbb, 0x33, 0xc6, 0xed, 0x2a, 0x19, 0x44, 0xa4, + 0x16, 0xed, 0xae, 0x25, 0x74, 0x45, 0x84, 0x9e, 0x42, 0xee, 0x40, 0x0d, 0x1d, 0x54, 0x6d, 0xa1, + 0xda, 0xd8, 0xac, 0xc1, 0xd8, 0x42, 0xd7, 0x12, 0x7a, 0x44, 0x87, 0x9e, 0x40, 0x76, 0xd7, 0xa2, + 0x96, 0xd7, 0x23, 0xa6, 0xda, 0x59, 0x77, 0xc7, 0xa6, 0x5e, 0x51, 0x04, 0x6b, 0x09, 0x3d, 0x24, + 0x43, 0x5b, 0x90, 0xe9, 0x88, 0xc9, 0x86, 0x98, 0xea, 0x04, 0xfb, 0x70, 0x6c, 0xde, 0x86, 0x8f, + 0x5f, 0x4b, 0xe8, 0x01, 0x55, 0x29, 0x0b, 0x69, 0xbf, 0x3c, 0xa5, 0x2b, 0x90, 0x0b, 0x53, 0x8a, + 0x8d, 0x5b, 0x5a, 0x7c, 0xdc, 0x2a, 0x7d, 0x02, 0xd9, 0x20, 0xb8, 0xf8, 0xdc, 0xa3, 0x9d, 0x7b, + 0xee, 0x29, 0x3d, 0x81, 0x8c, 0x0a, 0xef, 0xaf, 0x25, 0xae, 0x67, 0x60, 0xd2, 0x13, 0xd9, 0x97, + 0x8f, 0x26, 0x60, 0xf6, 0x84, 0x15, 0x6a, 0x41, 0xda, 0xc1, 0x9e, 0x47, 0x4c, 0xe5, 0xe9, 0xee, + 0xf8, 0x9e, 0x2a, 0x4d, 0x49, 0x20, 0xda, 0xcb, 0xa7, 0x12, 0xa4, 0xbb, 0xd8, 0xb2, 0x89, 0xa9, + 0x3a, 0xf6, 0x2c, 0xa4, 0x2b, 0x92, 0x40, 0x90, 0xfa, 0x54, 0x68, 0x1b, 0x32, 0x9e, 0x8d, 0x65, + 0x5b, 0x8d, 0xdf, 0xb1, 0x01, 0x6b, 0xcb, 0x67, 0x10, 0x0d, 0xa0, 0xc8, 0x44, 0x03, 0xf8, 0x09, + 0x94, 0x3e, 0x83, 0xb4, 0xef, 0x15, 0xdd, 0x81, 0x7f, 0x86, 0x0d, 0x6d, 0x88, 0x27, 0x23, 0xde, + 0x0c, 0x6b, 0x09, 0xfd, 0x1f, 0xe1, 0x6b, 0xd1, 0x32, 0xba, 0x7c, 0xf9, 0xa5, 0xa6, 0xd5, 0x8b, + 0x70, 0xd1, 0x78, 0x25, 0xb2, 0xb4, 0x03, 0x19, 0xe5, 0xfc, 0x2d, 0xb0, 0xd7, 0x73, 0x61, 0xc7, + 0x94, 0x1b, 0x30, 0xb9, 0x85, 0x6d, 0x7b, 0x88, 0x0a, 0x30, 0x31, 0x24, 0x9e, 0xba, 0x60, 0xc5, + 0xa3, 0xb8, 0x9d, 0x29, 0x53, 0xf7, 0x69, 0x92, 0x32, 0x54, 0x84, 0x0c, 0x6e, 0x7b, 0x1c, 0x5b, + 0xfe, 0x21, 0x90, 0xd2, 0x03, 0xb1, 0xfc, 0x6d, 0x1a, 0xb2, 0x41, 0xed, 0x04, 0xcc, 0xf2, 0xf7, + 0x72, 0x4a, 0x4f, 0x5a, 0xa6, 0x18, 0x9d, 0xb8, 0xc5, 0x6d, 0xa2, 0xb6, 0x86, 0x2f, 0xa0, 0x4b, + 0x30, 0x65, 0x12, 0xaf, 0xe3, 0x5a, 0x4e, 0x78, 0x6b, 0xe7, 0xf4, 0xb8, 0x0a, 0xb5, 0x20, 0xe7, + 0x89, 0x41, 0xcc, 0x16, 0x67, 0x99, 0xbf, 0x85, 0x3f, 0x18, 0x63, 0x0d, 0x2b, 0xad, 0x00, 0xac, + 0x47, 0x3c, 0x82, 0x94, 0xf4, 0x89, 0xdb, 0x25, 0xb4, 0x33, 0x54, 0xb7, 0xe9, 0x58, 0xa4, 0xcb, + 0x01, 0x58, 0x8f, 0x78, 0xd0, 0x2e, 0x14, 0x1c, 0xec, 0xe2, 0x3e, 0xe1, 0xc4, 0x35, 0x3a, 0x3d, + 0x4c, 0xbb, 0x44, 0x5e, 0xaf, 0x53, 0x0b, 0xf7, 0xc6, 0xe1, 0x6e, 0x06, 0x1c, 0x0d, 0x49, 0xa1, + 0xcf, 0x3a, 0xc7, 0x15, 0xe8, 0x31, 0xe4, 0x4c, 0xcc, 0x0c, 0x4f, 0xdc, 0xab, 0xc5, 0xec, 0x1b, + 0x4f, 0xc8, 0xa1, 0x83, 0xe0, 0x4e, 0xd6, 0xb3, 0xa6, 0x7a, 0x2a, 0xdd, 0x86, 0x5c, 0x58, 0x27, + 0xf4, 0x6f, 0x48, 0x77, 0x58, 0xbf, 0x6f, 0xf1, 0xb0, 0xb5, 0x94, 0x2c, 0xba, 0x29, 0x07, 0x19, + 0xc3, 0x97, 0x4a, 0x37, 0x20, 0x17, 0xd6, 0x01, 0xfd, 0x17, 0xa0, 0x87, 0x6d, 0x6e, 0xc8, 0xef, + 0x6a, 0x09, 0xcc, 0xea, 0x39, 0xa1, 0x69, 0x08, 0x45, 0xe9, 0xb9, 0x06, 0xb3, 0x27, 0x12, 0x43, + 0x5b, 0x90, 0x67, 0xb6, 0x69, 0x84, 0xe9, 0x79, 0xea, 0x34, 0xb9, 0x79, 0xf2, 0x4e, 0x96, 0x9f, + 0xea, 0x61, 0x1e, 0x92, 0x30, 0xe4, 0xf2, 0xf4, 0x19, 0x66, 0x9b, 0x91, 0x28, 0x58, 0x29, 0x39, + 0x88, 0xb3, 0x26, 0xcf, 0xc4, 0x4a, 0xc9, 0x41, 0x24, 0x96, 0x1e, 0xc4, 0x46, 0x99, 0x8f, 0xa0, + 0xc0, 0x5d, 0x4c, 0x3d, 0xdc, 0x11, 0x0d, 0x6a, 0x38, 0x36, 0xa6, 0xca, 0xc7, 0x5c, 0xc5, 0xff, + 0x75, 0x51, 0x09, 0x7e, 0x5d, 0x54, 0x16, 0xe9, 0x50, 0x9f, 0x8d, 0x59, 0x8b, 0x49, 0xb6, 0xfe, + 0x4b, 0xf2, 0x87, 0xc3, 0x79, 0xed, 0xc5, 0xe1, 0xbc, 0xf6, 0xeb, 0xe1, 0xbc, 0xf6, 0xec, 0x68, + 0x3e, 0xf1, 0xe2, 0x68, 0x3e, 0xf1, 0xf2, 0x68, 0x3e, 0x01, 0xd7, 0x3a, 0xac, 0x3f, 0x7a, 0x2d, + 0xeb, 0xb3, 0xd1, 0xf7, 0x54, 0x53, 0xb8, 0x6a, 0x6a, 0x4f, 0x3f, 0xef, 0x5a, 0xbc, 0x37, 0x68, + 0x57, 0x3a, 0xac, 0x5f, 0xed, 0x30, 0xaf, 0xcf, 0xbc, 0xaa, 0x4b, 0x6c, 0x3c, 0x24, 0x6e, 0x75, + 0x7f, 0x21, 0x7c, 0x94, 0x59, 0x7b, 0xd5, 0x91, 0x3f, 0x6e, 0xee, 0x45, 0xba, 0x40, 0xf5, 0x4d, + 0x72, 0xa2, 0xd9, 0x58, 0xfd, 0x3e, 0x79, 0xb9, 0x19, 0x84, 0xd7, 0x10, 0xe1, 0x45, 0x91, 0x54, + 0xb6, 0x95, 0xe5, 0x8f, 0x91, 0xcd, 0x8e, 0xb0, 0xd9, 0x89, 0x6c, 0x76, 0x02, 0x9b, 0xc3, 0xe4, + 0xcd, 0x91, 0x36, 0x3b, 0xab, 0xcd, 0xfa, 0x23, 0xc2, 0xb1, 0x89, 0x39, 0xfe, 0x2d, 0x79, 0x35, + 0xb0, 0xaf, 0xd5, 0x04, 0xa0, 0x56, 0x8b, 0x10, 0xb5, 0x5a, 0x00, 0x69, 0xa7, 0x65, 0xe9, 0x6f, + 0xff, 0x11, 0x00, 0x00, 0xff, 0xff, 0x51, 0xcc, 0x13, 0xd4, 0x9c, 0x12, 0x00, 0x00, +} + +func (m *ProposalSubmit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalSubmit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalSubmit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DepositAmount != nil { + { + size, err := m.DepositAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Proposal != nil { + { + size, err := m.Proposal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ProposalWithdraw) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Reason) > 0 { + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x12 + } + if m.Proposal != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Proposal)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ProposalDepositClaim) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalDepositClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalDepositClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Outcome != nil { + { + size, err := m.Outcome.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.DepositAmount != nil { + { + size, err := m.DepositAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Proposal != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Proposal)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ValidatorVote) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AuthSig != nil { + { + size, err := m.AuthSig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidatorVoteBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorVoteBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorVoteBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.GovernanceKey != nil { + { + size, err := m.GovernanceKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.IdentityKey != nil { + { + size, err := m.IdentityKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Vote != nil { + { + size, err := m.Vote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Proposal != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Proposal)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DelegatorVote) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DelegatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Proof) > 0 { + i -= len(m.Proof) + copy(dAtA[i:], m.Proof) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Proof))) + i-- + dAtA[i] = 0x1a + } + if m.AuthSig != nil { + { + size, err := m.AuthSig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DelegatorVoteBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DelegatorVoteBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVoteBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Rk) > 0 { + i -= len(m.Rk) + copy(dAtA[i:], m.Rk) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Rk))) + i-- + dAtA[i] = 0x3a + } + if len(m.Nullifier) > 0 { + i -= len(m.Nullifier) + copy(dAtA[i:], m.Nullifier) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Nullifier))) + i-- + dAtA[i] = 0x32 + } + if m.UnbondedAmount != nil { + { + size, err := m.UnbondedAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Vote != nil { + { + size, err := m.Vote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.StartPosition != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.StartPosition)) + i-- + dAtA[i] = 0x10 + } + if m.Proposal != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Proposal)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DelegatorVotePlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DelegatorVotePlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVotePlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Randomizer) > 0 { + i -= len(m.Randomizer) + copy(dAtA[i:], m.Randomizer) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Randomizer))) + i-- + dAtA[i] = 0x3a + } + if m.UnbondedAmount != nil { + { + size, err := m.UnbondedAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.StakedNotePosition != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.StakedNotePosition)) + i-- + dAtA[i] = 0x28 + } + if m.StakedNote != nil { + { + size, err := m.StakedNote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Vote != nil { + { + size, err := m.Vote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.StartPosition != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.StartPosition)) + i-- + dAtA[i] = 0x10 + } + if m.Proposal != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Proposal)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DaoDeposit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaoDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DaoDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DaoSpend) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaoSpend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DaoSpend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DaoOutput) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaoOutput) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DaoOutput) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Vote) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Vote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Vote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Vote != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Vote)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ProposalState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.State != nil { + { + size := m.State.Size() + i -= size + if _, err := m.State.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ProposalState_Voting_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Voting_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Voting != nil { + { + size, err := m.Voting.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *ProposalState_Withdrawn_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Withdrawn_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Withdrawn != nil { + { + size, err := m.Withdrawn.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *ProposalState_Finished_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Finished_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Finished != nil { + { + size, err := m.Finished.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *ProposalState_Claimed_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Claimed_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Claimed != nil { + { + size, err := m.Claimed.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *ProposalState_Voting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalState_Voting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Voting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *ProposalState_Withdrawn) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalState_Withdrawn) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Withdrawn) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Reason) > 0 { + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ProposalState_Finished) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalState_Finished) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Finished) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Outcome != nil { + { + size, err := m.Outcome.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ProposalState_Claimed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalState_Claimed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalState_Claimed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Outcome != nil { + { + size, err := m.Outcome.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ProposalOutcome) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalOutcome) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Outcome != nil { + { + size := m.Outcome.Size() + i -= size + if _, err := m.Outcome.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ProposalOutcome_Passed_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Passed_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Passed != nil { + { + size, err := m.Passed.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *ProposalOutcome_Failed_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Failed_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Failed != nil { + { + size, err := m.Failed.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *ProposalOutcome_Slashed_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Slashed_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Slashed != nil { + { + size, err := m.Slashed.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *ProposalOutcome_Passed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalOutcome_Passed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Passed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *ProposalOutcome_Failed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalOutcome_Failed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Failed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XWithdrawnWithReason != nil { + { + size := m.XWithdrawnWithReason.Size() + i -= size + if _, err := m.XWithdrawnWithReason.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ProposalOutcome_Failed_WithdrawnWithReason) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Failed_WithdrawnWithReason) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.WithdrawnWithReason) + copy(dAtA[i:], m.WithdrawnWithReason) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.WithdrawnWithReason))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *ProposalOutcome_Slashed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProposalOutcome_Slashed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Slashed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XWithdrawnWithReason != nil { + { + size := m.XWithdrawnWithReason.Size() + i -= size + if _, err := m.XWithdrawnWithReason.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ProposalOutcome_Slashed_WithdrawnWithReason) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProposalOutcome_Slashed_WithdrawnWithReason) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.WithdrawnWithReason) + copy(dAtA[i:], m.WithdrawnWithReason) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.WithdrawnWithReason))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *Tally) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Tally) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tally) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Abstain != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Abstain)) + i-- + dAtA[i] = 0x18 + } + if m.No != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.No)) + i-- + dAtA[i] = 0x10 + } + if m.Yes != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Yes)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Proposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Proposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Proposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DaoSpend != nil { + { + size, err := m.DaoSpend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.ParameterChange != nil { + { + size, err := m.ParameterChange.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.Emergency != nil { + { + size, err := m.Emergency.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.Signaling != nil { + { + size, err := m.Signaling.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Id != 0 { + i = encodeVarintGovernance(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x20 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Proposal_Signaling) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Proposal_Signaling) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Proposal_Signaling) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XCommit != nil { + { + size := m.XCommit.Size() + i -= size + if _, err := m.XCommit.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *Proposal_Signaling_Commit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Proposal_Signaling_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.Commit) + copy(dAtA[i:], m.Commit) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.Commit))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *Proposal_Emergency) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Proposal_Emergency) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Proposal_Emergency) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.HaltChain { + i-- + if m.HaltChain { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Proposal_ParameterChange) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Proposal_ParameterChange) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Proposal_ParameterChange) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NewParameters != nil { + { + size, err := m.NewParameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.OldParameters != nil { + { + size, err := m.OldParameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Proposal_DaoSpend) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Proposal_DaoSpend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Proposal_DaoSpend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.TransactionPlan != nil { + { + size, err := m.TransactionPlan.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func encodeVarintGovernance(dAtA []byte, offset int, v uint64) int { + offset -= sovGovernance(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *ProposalSubmit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Proposal != nil { + l = m.Proposal.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.DepositAmount != nil { + l = m.DepositAmount.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *ProposalWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Proposal != 0 { + n += 1 + sovGovernance(uint64(m.Proposal)) + } + l = len(m.Reason) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *ProposalDepositClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Proposal != 0 { + n += 1 + sovGovernance(uint64(m.Proposal)) + } + if m.DepositAmount != nil { + l = m.DepositAmount.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.Outcome != nil { + l = m.Outcome.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *ValidatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.AuthSig != nil { + l = m.AuthSig.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *ValidatorVoteBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Proposal != 0 { + n += 1 + sovGovernance(uint64(m.Proposal)) + } + if m.Vote != nil { + l = m.Vote.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.IdentityKey != nil { + l = m.IdentityKey.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.GovernanceKey != nil { + l = m.GovernanceKey.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *DelegatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.AuthSig != nil { + l = m.AuthSig.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + l = len(m.Proof) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *DelegatorVoteBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Proposal != 0 { + n += 1 + sovGovernance(uint64(m.Proposal)) + } + if m.StartPosition != 0 { + n += 1 + sovGovernance(uint64(m.StartPosition)) + } + if m.Vote != nil { + l = m.Vote.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.UnbondedAmount != nil { + l = m.UnbondedAmount.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + l = len(m.Nullifier) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + l = len(m.Rk) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *DelegatorVotePlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Proposal != 0 { + n += 1 + sovGovernance(uint64(m.Proposal)) + } + if m.StartPosition != 0 { + n += 1 + sovGovernance(uint64(m.StartPosition)) + } + if m.Vote != nil { + l = m.Vote.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.StakedNote != nil { + l = m.StakedNote.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.StakedNotePosition != 0 { + n += 1 + sovGovernance(uint64(m.StakedNotePosition)) + } + if m.UnbondedAmount != nil { + l = m.UnbondedAmount.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + l = len(m.Randomizer) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *DaoDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *DaoSpend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *DaoOutput) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *Vote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Vote != 0 { + n += 1 + sovGovernance(uint64(m.Vote)) + } + return n +} + +func (m *ProposalState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != nil { + n += m.State.Size() + } + return n +} + +func (m *ProposalState_Voting_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Voting != nil { + l = m.Voting.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} +func (m *ProposalState_Withdrawn_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Withdrawn != nil { + l = m.Withdrawn.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} +func (m *ProposalState_Finished_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Finished != nil { + l = m.Finished.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} +func (m *ProposalState_Claimed_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Claimed != nil { + l = m.Claimed.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} +func (m *ProposalState_Voting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *ProposalState_Withdrawn) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Reason) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *ProposalState_Finished) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Outcome != nil { + l = m.Outcome.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *ProposalState_Claimed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Outcome != nil { + l = m.Outcome.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *ProposalOutcome) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Outcome != nil { + n += m.Outcome.Size() + } + return n +} + +func (m *ProposalOutcome_Passed_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Passed != nil { + l = m.Passed.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} +func (m *ProposalOutcome_Failed_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Failed != nil { + l = m.Failed.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} +func (m *ProposalOutcome_Slashed_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Slashed != nil { + l = m.Slashed.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} +func (m *ProposalOutcome_Passed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *ProposalOutcome_Failed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XWithdrawnWithReason != nil { + n += m.XWithdrawnWithReason.Size() + } + return n +} + +func (m *ProposalOutcome_Failed_WithdrawnWithReason) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WithdrawnWithReason) + n += 1 + l + sovGovernance(uint64(l)) + return n +} +func (m *ProposalOutcome_Slashed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XWithdrawnWithReason != nil { + n += m.XWithdrawnWithReason.Size() + } + return n +} + +func (m *ProposalOutcome_Slashed_WithdrawnWithReason) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WithdrawnWithReason) + n += 1 + l + sovGovernance(uint64(l)) + return n +} +func (m *Tally) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Yes != 0 { + n += 1 + sovGovernance(uint64(m.Yes)) + } + if m.No != 0 { + n += 1 + sovGovernance(uint64(m.No)) + } + if m.Abstain != 0 { + n += 1 + sovGovernance(uint64(m.Abstain)) + } + return n +} + +func (m *Proposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Title) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovGovernance(uint64(m.Id)) + } + if m.Signaling != nil { + l = m.Signaling.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.Emergency != nil { + l = m.Emergency.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.ParameterChange != nil { + l = m.ParameterChange.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.DaoSpend != nil { + l = m.DaoSpend.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *Proposal_Signaling) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XCommit != nil { + n += m.XCommit.Size() + } + return n +} + +func (m *Proposal_Signaling_Commit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Commit) + n += 1 + l + sovGovernance(uint64(l)) + return n +} +func (m *Proposal_Emergency) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.HaltChain { + n += 2 + } + return n +} + +func (m *Proposal_ParameterChange) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OldParameters != nil { + l = m.OldParameters.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + if m.NewParameters != nil { + l = m.NewParameters.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func (m *Proposal_DaoSpend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TransactionPlan != nil { + l = m.TransactionPlan.Size() + n += 1 + l + sovGovernance(uint64(l)) + } + return n +} + +func sovGovernance(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGovernance(x uint64) (n int) { + return sovGovernance(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *ProposalSubmit) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProposalSubmit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProposalSubmit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Proposal == nil { + m.Proposal = &Proposal{} + } + if err := m.Proposal.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DepositAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DepositAmount == nil { + m.DepositAmount = &v1alpha1.Amount{} + } + if err := m.DepositAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalWithdraw) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProposalWithdraw: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProposalWithdraw: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposal", wireType) + } + m.Proposal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Proposal |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalDepositClaim) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProposalDepositClaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProposalDepositClaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposal", wireType) + } + m.Proposal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Proposal |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DepositAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DepositAmount == nil { + m.DepositAmount = &v1alpha1.Amount{} + } + if err := m.DepositAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Outcome", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Outcome == nil { + m.Outcome = &ProposalOutcome{} + } + if err := m.Outcome.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorVote) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorVote: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorVote: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &ValidatorVoteBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthSig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuthSig == nil { + m.AuthSig = &v1alpha1.SpendAuthSignature{} + } + if err := m.AuthSig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorVoteBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorVoteBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorVoteBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposal", wireType) + } + m.Proposal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Proposal |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Vote == nil { + m.Vote = &Vote{} + } + if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdentityKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdentityKey == nil { + m.IdentityKey = &v1alpha1.IdentityKey{} + } + if err := m.IdentityKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GovernanceKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.GovernanceKey == nil { + m.GovernanceKey = &v1alpha1.GovernanceKey{} + } + if err := m.GovernanceKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DelegatorVote) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DelegatorVote: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DelegatorVote: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &DelegatorVoteBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthSig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuthSig == nil { + m.AuthSig = &v1alpha1.SpendAuthSignature{} + } + if err := m.AuthSig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Proof = append(m.Proof[:0], dAtA[iNdEx:postIndex]...) + if m.Proof == nil { + m.Proof = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DelegatorVoteBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DelegatorVoteBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DelegatorVoteBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposal", wireType) + } + m.Proposal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Proposal |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartPosition", wireType) + } + m.StartPosition = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartPosition |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Vote == nil { + m.Vote = &Vote{} + } + if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha1.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondedAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UnbondedAmount == nil { + m.UnbondedAmount = &v1alpha1.Amount{} + } + if err := m.UnbondedAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nullifier = append(m.Nullifier[:0], dAtA[iNdEx:postIndex]...) + if m.Nullifier == nil { + m.Nullifier = []byte{} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rk = append(m.Rk[:0], dAtA[iNdEx:postIndex]...) + if m.Rk == nil { + m.Rk = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DelegatorVotePlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DelegatorVotePlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DelegatorVotePlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposal", wireType) + } + m.Proposal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Proposal |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartPosition", wireType) + } + m.StartPosition = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartPosition |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Vote == nil { + m.Vote = &Vote{} + } + if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StakedNote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StakedNote == nil { + m.StakedNote = &v1alpha1.Note{} + } + if err := m.StakedNote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StakedNotePosition", wireType) + } + m.StakedNotePosition = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StakedNotePosition |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondedAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UnbondedAmount == nil { + m.UnbondedAmount = &v1alpha1.Amount{} + } + if err := m.UnbondedAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Randomizer", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Randomizer = append(m.Randomizer[:0], dAtA[iNdEx:postIndex]...) + if m.Randomizer == nil { + m.Randomizer = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaoDeposit) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaoDeposit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaoDeposit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha1.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaoSpend) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaoSpend: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaoSpend: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha1.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaoOutput) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaoOutput: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaoOutput: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha1.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha1.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Vote) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Vote: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Vote: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType) + } + m.Vote = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Vote |= Vote_Vote(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProposalState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProposalState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Voting", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ProposalState_Voting{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.State = &ProposalState_Voting_{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Withdrawn", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ProposalState_Withdrawn{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.State = &ProposalState_Withdrawn_{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Finished", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ProposalState_Finished{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.State = &ProposalState_Finished_{v} + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Claimed", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ProposalState_Claimed{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.State = &ProposalState_Claimed_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalState_Voting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Voting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Voting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalState_Withdrawn) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Withdrawn: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Withdrawn: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalState_Finished) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Finished: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Finished: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Outcome", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Outcome == nil { + m.Outcome = &ProposalOutcome{} + } + if err := m.Outcome.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalState_Claimed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Claimed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Claimed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Outcome", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Outcome == nil { + m.Outcome = &ProposalOutcome{} + } + if err := m.Outcome.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalOutcome) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProposalOutcome: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProposalOutcome: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Passed", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ProposalOutcome_Passed{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Outcome = &ProposalOutcome_Passed_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ProposalOutcome_Failed{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Outcome = &ProposalOutcome_Failed_{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Slashed", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ProposalOutcome_Slashed{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Outcome = &ProposalOutcome_Slashed_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalOutcome_Passed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Passed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Passed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalOutcome_Failed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Failed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Failed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawnWithReason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.XWithdrawnWithReason = &ProposalOutcome_Failed_WithdrawnWithReason{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProposalOutcome_Slashed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Slashed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Slashed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawnWithReason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.XWithdrawnWithReason = &ProposalOutcome_Slashed_WithdrawnWithReason{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Tally) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Tally: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Tally: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Yes", wireType) + } + m.Yes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Yes |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field No", wireType) + } + m.No = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.No |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Abstain", wireType) + } + m.Abstain = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Abstain |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Proposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Proposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Proposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signaling", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Signaling == nil { + m.Signaling = &Proposal_Signaling{} + } + if err := m.Signaling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Emergency", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Emergency == nil { + m.Emergency = &Proposal_Emergency{} + } + if err := m.Emergency.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ParameterChange", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ParameterChange == nil { + m.ParameterChange = &Proposal_ParameterChange{} + } + if err := m.ParameterChange.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoSpend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DaoSpend == nil { + m.DaoSpend = &Proposal_DaoSpend{} + } + if err := m.DaoSpend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Proposal_Signaling) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Signaling: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Signaling: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.XCommit = &Proposal_Signaling_Commit{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Proposal_Emergency) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Emergency: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Emergency: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HaltChain", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.HaltChain = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Proposal_ParameterChange) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ParameterChange: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ParameterChange: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OldParameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OldParameters == nil { + m.OldParameters = &v1alpha11.ChainParameters{} + } + if err := m.OldParameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewParameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NewParameters == nil { + m.NewParameters = &v1alpha11.ChainParameters{} + } + if err := m.NewParameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Proposal_DaoSpend) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaoSpend: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaoSpend: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransactionPlan", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TransactionPlan == nil { + m.TransactionPlan = &types.Any{} + } + if err := m.TransactionPlan.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovernance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovernance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGovernance(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGovernance + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGovernance + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGovernance + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGovernance + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGovernance + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGovernance + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGovernance = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGovernance = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGovernance = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go b/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go new file mode 100644 index 000000000..1dfe4f580 --- /dev/null +++ b/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go @@ -0,0 +1,2465 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/ibc/v1alpha1/ibc.proto + +package ibcv1alpha1 + +import ( + fmt "fmt" + types "github.com/cosmos/cosmos-sdk/codec/types" + proto "github.com/cosmos/gogoproto/proto" + types1 "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type IbcAction struct { + // + // oneof action { + // .ibc.core.connection.v1.MsgConnectionOpenInit connection_open_init = 1; + // .ibc.core.connection.v1.MsgConnectionOpenTry connection_open_try = 2; + // .ibc.core.connection.v1.MsgConnectionOpenAck connection_open_ack = 3; + // .ibc.core.connection.v1.MsgConnectionOpenConfirm connection_open_confirm = 4; + // + // .ibc.core.channel.v1.MsgChannelOpenInit channel_open_init = 5; + // .ibc.core.channel.v1.MsgChannelOpenTry channel_open_try = 6; + // .ibc.core.channel.v1.MsgChannelOpenAck channel_open_ack = 7; + // .ibc.core.channel.v1.MsgChannelOpenConfirm channel_open_confirm = 8; + // .ibc.core.channel.v1.MsgChannelCloseInit channel_close_init = 9; + // .ibc.core.channel.v1.MsgChannelCloseConfirm channel_close_confirm = 10; + // + // .ibc.core.channel.v1.MsgRecvPacket recv_packet = 11; + // .ibc.core.channel.v1.MsgTimeout timeout = 12; + // .ibc.core.channel.v1.MsgAcknowledgement acknowledgement = 13; + // + // .ibc.core.client.v1.MsgCreateClient create_client = 14; + // .ibc.core.client.v1.MsgUpdateClient update_client = 15; + // .ibc.core.client.v1.MsgUpgradeClient upgrade_client = 16; + // .ibc.core.client.v1.MsgSubmitMisbehaviour submit_misbehaviour = 17; + // } + RawAction *types.Any `protobuf:"bytes,1,opt,name=raw_action,json=rawAction,proto3" json:"raw_action,omitempty"` +} + +func (m *IbcAction) Reset() { *m = IbcAction{} } +func (m *IbcAction) String() string { return proto.CompactTextString(m) } +func (*IbcAction) ProtoMessage() {} +func (*IbcAction) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{0} +} +func (m *IbcAction) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IbcAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IbcAction.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IbcAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_IbcAction.Merge(m, src) +} +func (m *IbcAction) XXX_Size() int { + return m.Size() +} +func (m *IbcAction) XXX_DiscardUnknown() { + xxx_messageInfo_IbcAction.DiscardUnknown(m) +} + +var xxx_messageInfo_IbcAction proto.InternalMessageInfo + +func (m *IbcAction) GetRawAction() *types.Any { + if m != nil { + return m.RawAction + } + return nil +} + +// FungibleTokenPacketData defines a struct for the packet payload +// See FungibleTokenPacketData spec: +// https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures +type FungibleTokenPacketData struct { + // the token denomination to be transferred + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // the token amount to be transferred + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + // the sender address + Sender string `protobuf:"bytes,3,opt,name=sender,proto3" json:"sender,omitempty"` + // the recipient address on the destination chain + Receiver string `protobuf:"bytes,4,opt,name=receiver,proto3" json:"receiver,omitempty"` +} + +func (m *FungibleTokenPacketData) Reset() { *m = FungibleTokenPacketData{} } +func (m *FungibleTokenPacketData) String() string { return proto.CompactTextString(m) } +func (*FungibleTokenPacketData) ProtoMessage() {} +func (*FungibleTokenPacketData) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{1} +} +func (m *FungibleTokenPacketData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FungibleTokenPacketData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FungibleTokenPacketData.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FungibleTokenPacketData) XXX_Merge(src proto.Message) { + xxx_messageInfo_FungibleTokenPacketData.Merge(m, src) +} +func (m *FungibleTokenPacketData) XXX_Size() int { + return m.Size() +} +func (m *FungibleTokenPacketData) XXX_DiscardUnknown() { + xxx_messageInfo_FungibleTokenPacketData.DiscardUnknown(m) +} + +var xxx_messageInfo_FungibleTokenPacketData proto.InternalMessageInfo + +func (m *FungibleTokenPacketData) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *FungibleTokenPacketData) GetAmount() string { + if m != nil { + return m.Amount + } + return "" +} + +func (m *FungibleTokenPacketData) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *FungibleTokenPacketData) GetReceiver() string { + if m != nil { + return m.Receiver + } + return "" +} + +type Ics20Withdrawal struct { + // the chain ID of the destination chain for this ICS20 transfer + DestinationChainId string `protobuf:"bytes,1,opt,name=destination_chain_id,json=destinationChainId,proto3" json:"destination_chain_id,omitempty"` + Denom *v1alpha1.Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Amount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // the address on the destination chain to send the transfer to + DestinationChainAddress string `protobuf:"bytes,4,opt,name=destination_chain_address,json=destinationChainAddress,proto3" json:"destination_chain_address,omitempty"` + // a "sender" penumbra address to use to return funds from this withdrawal. + // this should be an ephemeral address + ReturnAddress *v1alpha1.Address `protobuf:"bytes,5,opt,name=return_address,json=returnAddress,proto3" json:"return_address,omitempty"` + // the height (on Penumbra) at which this transfer expires (and funds are sent + // back to the sender address?). NOTE: if funds are sent back to the sender, + // we MUST verify a nonexistence proof before accepting the timeout, to + // prevent relayer censorship attacks. The core IBC implementation does this + // in its handling of validation of timeouts. + TimeoutHeight uint64 `protobuf:"varint,6,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` + // the timestamp at which this transfer expires. + TimeoutTime uint64 `protobuf:"varint,7,opt,name=timeout_time,json=timeoutTime,proto3" json:"timeout_time,omitempty"` + // the source port that identifies the channel used for the withdrawal + SourcePort string `protobuf:"bytes,8,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"` + // the source channel used for the withdrawal + SourceChannel string `protobuf:"bytes,9,opt,name=source_channel,json=sourceChannel,proto3" json:"source_channel,omitempty"` +} + +func (m *Ics20Withdrawal) Reset() { *m = Ics20Withdrawal{} } +func (m *Ics20Withdrawal) String() string { return proto.CompactTextString(m) } +func (*Ics20Withdrawal) ProtoMessage() {} +func (*Ics20Withdrawal) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{2} +} +func (m *Ics20Withdrawal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Ics20Withdrawal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Ics20Withdrawal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Ics20Withdrawal) XXX_Merge(src proto.Message) { + xxx_messageInfo_Ics20Withdrawal.Merge(m, src) +} +func (m *Ics20Withdrawal) XXX_Size() int { + return m.Size() +} +func (m *Ics20Withdrawal) XXX_DiscardUnknown() { + xxx_messageInfo_Ics20Withdrawal.DiscardUnknown(m) +} + +var xxx_messageInfo_Ics20Withdrawal proto.InternalMessageInfo + +func (m *Ics20Withdrawal) GetDestinationChainId() string { + if m != nil { + return m.DestinationChainId + } + return "" +} + +func (m *Ics20Withdrawal) GetDenom() *v1alpha1.Denom { + if m != nil { + return m.Denom + } + return nil +} + +func (m *Ics20Withdrawal) GetAmount() *v1alpha1.Amount { + if m != nil { + return m.Amount + } + return nil +} + +func (m *Ics20Withdrawal) GetDestinationChainAddress() string { + if m != nil { + return m.DestinationChainAddress + } + return "" +} + +func (m *Ics20Withdrawal) GetReturnAddress() *v1alpha1.Address { + if m != nil { + return m.ReturnAddress + } + return nil +} + +func (m *Ics20Withdrawal) GetTimeoutHeight() uint64 { + if m != nil { + return m.TimeoutHeight + } + return 0 +} + +func (m *Ics20Withdrawal) GetTimeoutTime() uint64 { + if m != nil { + return m.TimeoutTime + } + return 0 +} + +func (m *Ics20Withdrawal) GetSourcePort() string { + if m != nil { + return m.SourcePort + } + return "" +} + +func (m *Ics20Withdrawal) GetSourceChannel() string { + if m != nil { + return m.SourceChannel + } + return "" +} + +type ClientData struct { + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientState *types.Any `protobuf:"bytes,2,opt,name=client_state,json=clientState,proto3" json:"client_state,omitempty"` + ProcessedTime string `protobuf:"bytes,3,opt,name=processed_time,json=processedTime,proto3" json:"processed_time,omitempty"` + ProcessedHeight uint64 `protobuf:"varint,4,opt,name=processed_height,json=processedHeight,proto3" json:"processed_height,omitempty"` +} + +func (m *ClientData) Reset() { *m = ClientData{} } +func (m *ClientData) String() string { return proto.CompactTextString(m) } +func (*ClientData) ProtoMessage() {} +func (*ClientData) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{3} +} +func (m *ClientData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClientData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ClientData.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ClientData) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClientData.Merge(m, src) +} +func (m *ClientData) XXX_Size() int { + return m.Size() +} +func (m *ClientData) XXX_DiscardUnknown() { + xxx_messageInfo_ClientData.DiscardUnknown(m) +} + +var xxx_messageInfo_ClientData proto.InternalMessageInfo + +func (m *ClientData) GetClientId() string { + if m != nil { + return m.ClientId + } + return "" +} + +func (m *ClientData) GetClientState() *types.Any { + if m != nil { + return m.ClientState + } + return nil +} + +func (m *ClientData) GetProcessedTime() string { + if m != nil { + return m.ProcessedTime + } + return "" +} + +func (m *ClientData) GetProcessedHeight() uint64 { + if m != nil { + return m.ProcessedHeight + } + return 0 +} + +type ClientCounter struct { + Counter uint64 `protobuf:"varint,1,opt,name=counter,proto3" json:"counter,omitempty"` +} + +func (m *ClientCounter) Reset() { *m = ClientCounter{} } +func (m *ClientCounter) String() string { return proto.CompactTextString(m) } +func (*ClientCounter) ProtoMessage() {} +func (*ClientCounter) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{4} +} +func (m *ClientCounter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClientCounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ClientCounter.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ClientCounter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClientCounter.Merge(m, src) +} +func (m *ClientCounter) XXX_Size() int { + return m.Size() +} +func (m *ClientCounter) XXX_DiscardUnknown() { + xxx_messageInfo_ClientCounter.DiscardUnknown(m) +} + +var xxx_messageInfo_ClientCounter proto.InternalMessageInfo + +func (m *ClientCounter) GetCounter() uint64 { + if m != nil { + return m.Counter + } + return 0 +} + +type ConsensusState struct { + ConsensusState *types.Any `protobuf:"bytes,1,opt,name=consensus_state,json=consensusState,proto3" json:"consensus_state,omitempty"` +} + +func (m *ConsensusState) Reset() { *m = ConsensusState{} } +func (m *ConsensusState) String() string { return proto.CompactTextString(m) } +func (*ConsensusState) ProtoMessage() {} +func (*ConsensusState) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{5} +} +func (m *ConsensusState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ConsensusState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ConsensusState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ConsensusState) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConsensusState.Merge(m, src) +} +func (m *ConsensusState) XXX_Size() int { + return m.Size() +} +func (m *ConsensusState) XXX_DiscardUnknown() { + xxx_messageInfo_ConsensusState.DiscardUnknown(m) +} + +var xxx_messageInfo_ConsensusState proto.InternalMessageInfo + +func (m *ConsensusState) GetConsensusState() *types.Any { + if m != nil { + return m.ConsensusState + } + return nil +} + +type VerifiedHeights struct { + Heights []*types1.Height `protobuf:"bytes,1,rep,name=heights,proto3" json:"heights,omitempty"` +} + +func (m *VerifiedHeights) Reset() { *m = VerifiedHeights{} } +func (m *VerifiedHeights) String() string { return proto.CompactTextString(m) } +func (*VerifiedHeights) ProtoMessage() {} +func (*VerifiedHeights) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{6} +} +func (m *VerifiedHeights) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *VerifiedHeights) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_VerifiedHeights.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *VerifiedHeights) XXX_Merge(src proto.Message) { + xxx_messageInfo_VerifiedHeights.Merge(m, src) +} +func (m *VerifiedHeights) XXX_Size() int { + return m.Size() +} +func (m *VerifiedHeights) XXX_DiscardUnknown() { + xxx_messageInfo_VerifiedHeights.DiscardUnknown(m) +} + +var xxx_messageInfo_VerifiedHeights proto.InternalMessageInfo + +func (m *VerifiedHeights) GetHeights() []*types1.Height { + if m != nil { + return m.Heights + } + return nil +} + +type ConnectionCounter struct { + Counter uint64 `protobuf:"varint,1,opt,name=counter,proto3" json:"counter,omitempty"` +} + +func (m *ConnectionCounter) Reset() { *m = ConnectionCounter{} } +func (m *ConnectionCounter) String() string { return proto.CompactTextString(m) } +func (*ConnectionCounter) ProtoMessage() {} +func (*ConnectionCounter) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{7} +} +func (m *ConnectionCounter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ConnectionCounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ConnectionCounter.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ConnectionCounter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConnectionCounter.Merge(m, src) +} +func (m *ConnectionCounter) XXX_Size() int { + return m.Size() +} +func (m *ConnectionCounter) XXX_DiscardUnknown() { + xxx_messageInfo_ConnectionCounter.DiscardUnknown(m) +} + +var xxx_messageInfo_ConnectionCounter proto.InternalMessageInfo + +func (m *ConnectionCounter) GetCounter() uint64 { + if m != nil { + return m.Counter + } + return 0 +} + +type ClientConnections struct { + Connections []string `protobuf:"bytes,1,rep,name=connections,proto3" json:"connections,omitempty"` +} + +func (m *ClientConnections) Reset() { *m = ClientConnections{} } +func (m *ClientConnections) String() string { return proto.CompactTextString(m) } +func (*ClientConnections) ProtoMessage() {} +func (*ClientConnections) Descriptor() ([]byte, []int) { + return fileDescriptor_6509740287584c65, []int{8} +} +func (m *ClientConnections) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClientConnections) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ClientConnections.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ClientConnections) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClientConnections.Merge(m, src) +} +func (m *ClientConnections) XXX_Size() int { + return m.Size() +} +func (m *ClientConnections) XXX_DiscardUnknown() { + xxx_messageInfo_ClientConnections.DiscardUnknown(m) +} + +var xxx_messageInfo_ClientConnections proto.InternalMessageInfo + +func (m *ClientConnections) GetConnections() []string { + if m != nil { + return m.Connections + } + return nil +} + +func init() { + proto.RegisterType((*IbcAction)(nil), "penumbra.core.ibc.v1alpha1.IbcAction") + proto.RegisterType((*FungibleTokenPacketData)(nil), "penumbra.core.ibc.v1alpha1.FungibleTokenPacketData") + proto.RegisterType((*Ics20Withdrawal)(nil), "penumbra.core.ibc.v1alpha1.Ics20Withdrawal") + proto.RegisterType((*ClientData)(nil), "penumbra.core.ibc.v1alpha1.ClientData") + proto.RegisterType((*ClientCounter)(nil), "penumbra.core.ibc.v1alpha1.ClientCounter") + proto.RegisterType((*ConsensusState)(nil), "penumbra.core.ibc.v1alpha1.ConsensusState") + proto.RegisterType((*VerifiedHeights)(nil), "penumbra.core.ibc.v1alpha1.VerifiedHeights") + proto.RegisterType((*ConnectionCounter)(nil), "penumbra.core.ibc.v1alpha1.ConnectionCounter") + proto.RegisterType((*ClientConnections)(nil), "penumbra.core.ibc.v1alpha1.ClientConnections") +} + +func init() { + proto.RegisterFile("penumbra/core/ibc/v1alpha1/ibc.proto", fileDescriptor_6509740287584c65) +} + +var fileDescriptor_6509740287584c65 = []byte{ + // 804 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x41, 0x8f, 0x1b, 0x35, + 0x14, 0xde, 0x49, 0xb6, 0xbb, 0x89, 0xd3, 0x24, 0x74, 0xb4, 0xa2, 0xd3, 0x20, 0xd2, 0x30, 0x6a, + 0xab, 0x2d, 0x12, 0x33, 0x4d, 0x0a, 0x42, 0x1a, 0x54, 0x89, 0xec, 0x54, 0x94, 0x39, 0x54, 0x44, + 0x43, 0x55, 0x24, 0x14, 0x29, 0xf2, 0x78, 0xdc, 0xc4, 0x6a, 0xc6, 0x8e, 0x6c, 0x4f, 0x56, 0x11, + 0x7f, 0x82, 0xbf, 0x00, 0x47, 0xce, 0xfc, 0x08, 0xc4, 0xa9, 0x47, 0x24, 0x2e, 0x28, 0x7b, 0xe3, + 0x57, 0x20, 0xdb, 0xe3, 0xa4, 0x0b, 0x6c, 0xf7, 0x34, 0x7e, 0xdf, 0xfb, 0xde, 0x9b, 0xef, 0xb3, + 0x9f, 0x0d, 0xee, 0xad, 0x30, 0x2d, 0x8b, 0x8c, 0xc3, 0x10, 0x31, 0x8e, 0x43, 0x92, 0xa1, 0x70, + 0x3d, 0x84, 0xcb, 0xd5, 0x02, 0x0e, 0x55, 0x10, 0xac, 0x38, 0x93, 0xcc, 0xed, 0x59, 0x56, 0xa0, + 0x58, 0x81, 0x4a, 0x58, 0x56, 0xef, 0xe3, 0xcb, 0x1d, 0x10, 0xdf, 0xac, 0x24, 0xdb, 0x37, 0x31, + 0xb1, 0xe9, 0xd3, 0xbb, 0xab, 0xfa, 0x1b, 0xda, 0x92, 0x60, 0x2a, 0xc3, 0xf5, 0xb0, 0x5a, 0x55, + 0x84, 0x3b, 0x73, 0xc6, 0xe6, 0x4b, 0x1c, 0xea, 0x28, 0x2b, 0x5f, 0x85, 0x90, 0x6e, 0x4c, 0xca, + 0xff, 0x12, 0x34, 0x93, 0x0c, 0x8d, 0x91, 0x24, 0x8c, 0xba, 0x8f, 0x01, 0xe0, 0xf0, 0x7c, 0x06, + 0x75, 0xe4, 0x39, 0x03, 0xe7, 0xb4, 0x35, 0x3a, 0x09, 0x4c, 0x71, 0x60, 0x8b, 0x83, 0x31, 0xdd, + 0xa4, 0x4d, 0x0e, 0xcf, 0x4d, 0x91, 0xff, 0x03, 0xb8, 0xfd, 0x55, 0x49, 0xe7, 0x24, 0x5b, 0xe2, + 0x17, 0xec, 0x35, 0xa6, 0x13, 0x88, 0x5e, 0x63, 0xf9, 0x14, 0x4a, 0xe8, 0x9e, 0x80, 0x1b, 0x39, + 0xa6, 0xac, 0xd0, 0xad, 0x9a, 0xa9, 0x09, 0xdc, 0xf7, 0xc1, 0x11, 0x2c, 0x58, 0x49, 0xa5, 0x57, + 0xd3, 0x70, 0x15, 0x29, 0x5c, 0x60, 0x9a, 0x63, 0xee, 0xd5, 0x0d, 0x6e, 0x22, 0xb7, 0x07, 0x1a, + 0x1c, 0x23, 0x4c, 0xd6, 0x98, 0x7b, 0x87, 0x3a, 0xb3, 0x8b, 0xfd, 0x3f, 0xeb, 0xa0, 0x9b, 0x20, + 0x31, 0x7a, 0xf4, 0x1d, 0x91, 0x8b, 0x9c, 0xc3, 0x73, 0xb8, 0x74, 0x1f, 0x81, 0x93, 0x1c, 0x0b, + 0x49, 0x28, 0x54, 0xfa, 0x66, 0x68, 0x01, 0x09, 0x9d, 0x91, 0xbc, 0x12, 0xe1, 0xbe, 0x95, 0x8b, + 0x55, 0x2a, 0xc9, 0xdd, 0xc8, 0xea, 0xac, 0x69, 0xcb, 0xf7, 0x82, 0xcb, 0x07, 0x53, 0x6d, 0xb6, + 0xdd, 0xfc, 0xe0, 0xa9, 0xe2, 0x5a, 0x37, 0x4f, 0x76, 0x6e, 0xea, 0xba, 0xf8, 0xfe, 0x35, 0xc5, + 0x63, 0x4d, 0xde, 0x99, 0x8e, 0xc0, 0x9d, 0xff, 0x8a, 0x85, 0x79, 0xce, 0xb1, 0x10, 0x95, 0xdb, + 0xdb, 0xff, 0x56, 0x3c, 0x36, 0x69, 0xf7, 0x39, 0xe8, 0x70, 0x2c, 0x4b, 0xbe, 0x2f, 0xb8, 0xa1, + 0x25, 0x3c, 0xb8, 0x4e, 0x82, 0x61, 0xa7, 0x6d, 0x53, 0x6d, 0xdb, 0xdd, 0x07, 0x1d, 0x49, 0x0a, + 0xcc, 0x4a, 0x39, 0x5b, 0x60, 0x32, 0x5f, 0x48, 0xef, 0x68, 0xe0, 0x9c, 0x1e, 0xa6, 0xed, 0x0a, + 0xfd, 0x5a, 0x83, 0xee, 0x47, 0xe0, 0xa6, 0xa5, 0xa9, 0xaf, 0x77, 0xac, 0x49, 0xad, 0x0a, 0x7b, + 0x41, 0x0a, 0xec, 0xde, 0x05, 0x2d, 0xc1, 0x4a, 0x8e, 0xf0, 0x6c, 0xc5, 0xb8, 0xf4, 0x1a, 0xda, + 0x06, 0x30, 0xd0, 0x84, 0x71, 0xa9, 0x7e, 0x55, 0x11, 0xd0, 0x02, 0x52, 0x8a, 0x97, 0x5e, 0x53, + 0x73, 0xda, 0x06, 0x8d, 0x0d, 0xe8, 0xff, 0xea, 0x00, 0x10, 0xeb, 0x41, 0xd6, 0xe3, 0xf4, 0x01, + 0x68, 0x9a, 0xb1, 0xde, 0x9f, 0x66, 0xc3, 0x00, 0x49, 0xee, 0x7e, 0x0e, 0x6e, 0x56, 0x49, 0x21, + 0xa1, 0xc4, 0xd5, 0x51, 0xfe, 0xff, 0xf4, 0xb6, 0x0c, 0xf3, 0x5b, 0x45, 0x54, 0x5a, 0x56, 0x9c, + 0x21, 0x2c, 0x04, 0xce, 0x8d, 0x23, 0x33, 0x7e, 0xed, 0x1d, 0xaa, 0x3d, 0x3d, 0x04, 0xef, 0xed, + 0x69, 0xd5, 0xfe, 0x1c, 0x6a, 0xeb, 0xdd, 0x1d, 0x6e, 0x76, 0xc8, 0x7f, 0x08, 0xda, 0x46, 0x75, + 0xac, 0x8e, 0x18, 0x73, 0xd7, 0x03, 0xc7, 0xc8, 0x2c, 0xb5, 0xec, 0xc3, 0xd4, 0x86, 0xfe, 0x37, + 0xa0, 0x13, 0x33, 0x2a, 0x30, 0x15, 0xa5, 0x30, 0x72, 0x9e, 0x80, 0x2e, 0xb2, 0x48, 0x65, 0xe5, + 0x5d, 0x17, 0xb1, 0x83, 0x2e, 0x95, 0xfb, 0xcf, 0x40, 0xf7, 0x25, 0xe6, 0xe4, 0x15, 0xb1, 0x6a, + 0x84, 0xfb, 0x29, 0x38, 0x36, 0x7a, 0x85, 0xe7, 0x0c, 0xea, 0xa7, 0xad, 0x51, 0x4f, 0x3f, 0x35, + 0x66, 0x34, 0xcc, 0x33, 0xb1, 0x1e, 0x06, 0x86, 0x9d, 0x5a, 0xaa, 0xff, 0x09, 0xb8, 0x15, 0x33, + 0x4a, 0xb1, 0xbe, 0xe4, 0xd7, 0x1b, 0xf9, 0x0c, 0xdc, 0xb2, 0x9e, 0x6d, 0x91, 0x70, 0x07, 0xa0, + 0x85, 0xf6, 0xa1, 0xfe, 0x7b, 0x33, 0x7d, 0x1b, 0x3a, 0xfb, 0xa9, 0xf6, 0xdb, 0xb6, 0xef, 0xbc, + 0xd9, 0xf6, 0x9d, 0xbf, 0xb6, 0x7d, 0xe7, 0xc7, 0x8b, 0xfe, 0xc1, 0x9b, 0x8b, 0xfe, 0xc1, 0x1f, + 0x17, 0xfd, 0x03, 0xd0, 0x47, 0xac, 0x08, 0xae, 0x7e, 0x21, 0xcf, 0x1a, 0x49, 0x86, 0x26, 0x6a, + 0x2b, 0x26, 0xce, 0xf7, 0xe9, 0x9c, 0xc8, 0x45, 0x99, 0x05, 0x88, 0x15, 0x21, 0x62, 0xa2, 0x60, + 0x22, 0xe4, 0x78, 0x09, 0x37, 0x98, 0x87, 0xeb, 0xd1, 0x6e, 0xa9, 0x2f, 0x97, 0x08, 0xaf, 0x7e, + 0x9b, 0xbf, 0x20, 0x19, 0xb2, 0xeb, 0x9f, 0x6b, 0xf5, 0x49, 0x9c, 0xfc, 0x52, 0xeb, 0x4d, 0xac, + 0x84, 0x58, 0x49, 0x48, 0x32, 0x14, 0xbc, 0xac, 0x28, 0xbf, 0xef, 0x93, 0x53, 0x95, 0x9c, 0x26, + 0x19, 0x9a, 0xda, 0xe4, 0xb6, 0xf6, 0xe0, 0xea, 0xe4, 0xf4, 0xd9, 0xe4, 0xec, 0x39, 0x96, 0x30, + 0x87, 0x12, 0xfe, 0x5d, 0xfb, 0xd0, 0x12, 0xa3, 0x48, 0x31, 0xa3, 0x28, 0xc9, 0x50, 0x14, 0x59, + 0x6e, 0x76, 0xa4, 0x0f, 0xfc, 0xf1, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x65, 0x79, 0xa9, 0x19, + 0x55, 0x06, 0x00, 0x00, +} + +func (m *IbcAction) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IbcAction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IbcAction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RawAction != nil { + { + size, err := m.RawAction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIbc(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FungibleTokenPacketData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FungibleTokenPacketData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FungibleTokenPacketData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintIbc(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0x22 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintIbc(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x1a + } + if len(m.Amount) > 0 { + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintIbc(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintIbc(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Ics20Withdrawal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Ics20Withdrawal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.SourceChannel) > 0 { + i -= len(m.SourceChannel) + copy(dAtA[i:], m.SourceChannel) + i = encodeVarintIbc(dAtA, i, uint64(len(m.SourceChannel))) + i-- + dAtA[i] = 0x4a + } + if len(m.SourcePort) > 0 { + i -= len(m.SourcePort) + copy(dAtA[i:], m.SourcePort) + i = encodeVarintIbc(dAtA, i, uint64(len(m.SourcePort))) + i-- + dAtA[i] = 0x42 + } + if m.TimeoutTime != 0 { + i = encodeVarintIbc(dAtA, i, uint64(m.TimeoutTime)) + i-- + dAtA[i] = 0x38 + } + if m.TimeoutHeight != 0 { + i = encodeVarintIbc(dAtA, i, uint64(m.TimeoutHeight)) + i-- + dAtA[i] = 0x30 + } + if m.ReturnAddress != nil { + { + size, err := m.ReturnAddress.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIbc(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.DestinationChainAddress) > 0 { + i -= len(m.DestinationChainAddress) + copy(dAtA[i:], m.DestinationChainAddress) + i = encodeVarintIbc(dAtA, i, uint64(len(m.DestinationChainAddress))) + i-- + dAtA[i] = 0x22 + } + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIbc(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Denom != nil { + { + size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIbc(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.DestinationChainId) > 0 { + i -= len(m.DestinationChainId) + copy(dAtA[i:], m.DestinationChainId) + i = encodeVarintIbc(dAtA, i, uint64(len(m.DestinationChainId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ClientData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClientData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClientData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProcessedHeight != 0 { + i = encodeVarintIbc(dAtA, i, uint64(m.ProcessedHeight)) + i-- + dAtA[i] = 0x20 + } + if len(m.ProcessedTime) > 0 { + i -= len(m.ProcessedTime) + copy(dAtA[i:], m.ProcessedTime) + i = encodeVarintIbc(dAtA, i, uint64(len(m.ProcessedTime))) + i-- + dAtA[i] = 0x1a + } + if m.ClientState != nil { + { + size, err := m.ClientState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIbc(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.ClientId) > 0 { + i -= len(m.ClientId) + copy(dAtA[i:], m.ClientId) + i = encodeVarintIbc(dAtA, i, uint64(len(m.ClientId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ClientCounter) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClientCounter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClientCounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Counter != 0 { + i = encodeVarintIbc(dAtA, i, uint64(m.Counter)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ConsensusState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ConsensusState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ConsensusState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ConsensusState != nil { + { + size, err := m.ConsensusState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIbc(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *VerifiedHeights) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VerifiedHeights) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *VerifiedHeights) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Heights) > 0 { + for iNdEx := len(m.Heights) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Heights[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIbc(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ConnectionCounter) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ConnectionCounter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ConnectionCounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Counter != 0 { + i = encodeVarintIbc(dAtA, i, uint64(m.Counter)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ClientConnections) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClientConnections) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClientConnections) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Connections) > 0 { + for iNdEx := len(m.Connections) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Connections[iNdEx]) + copy(dAtA[i:], m.Connections[iNdEx]) + i = encodeVarintIbc(dAtA, i, uint64(len(m.Connections[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintIbc(dAtA []byte, offset int, v uint64) int { + offset -= sovIbc(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *IbcAction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RawAction != nil { + l = m.RawAction.Size() + n += 1 + l + sovIbc(uint64(l)) + } + return n +} + +func (m *FungibleTokenPacketData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + return n +} + +func (m *Ics20Withdrawal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DestinationChainId) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + if m.Denom != nil { + l = m.Denom.Size() + n += 1 + l + sovIbc(uint64(l)) + } + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovIbc(uint64(l)) + } + l = len(m.DestinationChainAddress) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + if m.ReturnAddress != nil { + l = m.ReturnAddress.Size() + n += 1 + l + sovIbc(uint64(l)) + } + if m.TimeoutHeight != 0 { + n += 1 + sovIbc(uint64(m.TimeoutHeight)) + } + if m.TimeoutTime != 0 { + n += 1 + sovIbc(uint64(m.TimeoutTime)) + } + l = len(m.SourcePort) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + l = len(m.SourceChannel) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + return n +} + +func (m *ClientData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ClientId) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + if m.ClientState != nil { + l = m.ClientState.Size() + n += 1 + l + sovIbc(uint64(l)) + } + l = len(m.ProcessedTime) + if l > 0 { + n += 1 + l + sovIbc(uint64(l)) + } + if m.ProcessedHeight != 0 { + n += 1 + sovIbc(uint64(m.ProcessedHeight)) + } + return n +} + +func (m *ClientCounter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Counter != 0 { + n += 1 + sovIbc(uint64(m.Counter)) + } + return n +} + +func (m *ConsensusState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ConsensusState != nil { + l = m.ConsensusState.Size() + n += 1 + l + sovIbc(uint64(l)) + } + return n +} + +func (m *VerifiedHeights) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Heights) > 0 { + for _, e := range m.Heights { + l = e.Size() + n += 1 + l + sovIbc(uint64(l)) + } + } + return n +} + +func (m *ConnectionCounter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Counter != 0 { + n += 1 + sovIbc(uint64(m.Counter)) + } + return n +} + +func (m *ClientConnections) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Connections) > 0 { + for _, s := range m.Connections { + l = len(s) + n += 1 + l + sovIbc(uint64(l)) + } + } + return n +} + +func sovIbc(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozIbc(x uint64) (n int) { + return sovIbc(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *IbcAction) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IbcAction: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IbcAction: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RawAction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RawAction == nil { + m.RawAction = &types.Any{} + } + if err := m.RawAction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FungibleTokenPacketData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FungibleTokenPacketData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FungibleTokenPacketData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Ics20Withdrawal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Ics20Withdrawal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestinationChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DestinationChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Denom == nil { + m.Denom = &v1alpha1.Denom{} + } + if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Amount == nil { + m.Amount = &v1alpha1.Amount{} + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestinationChainAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DestinationChainAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReturnAddress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ReturnAddress == nil { + m.ReturnAddress = &v1alpha1.Address{} + } + if err := m.ReturnAddress.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeoutHeight", wireType) + } + m.TimeoutHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TimeoutHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeoutTime", wireType) + } + m.TimeoutTime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TimeoutTime |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourcePort", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SourcePort = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourceChannel", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SourceChannel = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClientData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClientData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClientData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClientState == nil { + m.ClientState = &types.Any{} + } + if err := m.ClientState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcessedTime", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProcessedTime = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcessedHeight", wireType) + } + m.ProcessedHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ProcessedHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClientCounter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClientCounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClientCounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Counter", wireType) + } + m.Counter = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Counter |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ConsensusState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ConsensusState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConsensusState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsensusState == nil { + m.ConsensusState = &types.Any{} + } + if err := m.ConsensusState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VerifiedHeights) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VerifiedHeights: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VerifiedHeights: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Heights", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Heights = append(m.Heights, &types1.Height{}) + if err := m.Heights[len(m.Heights)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ConnectionCounter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ConnectionCounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConnectionCounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Counter", wireType) + } + m.Counter = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Counter |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClientConnections) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClientConnections: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClientConnections: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Connections", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIbc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIbc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIbc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Connections = append(m.Connections, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIbc(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthIbc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIbc(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIbc + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIbc + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIbc + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthIbc + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupIbc + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthIbc + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthIbc = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIbc = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupIbc = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go new file mode 100644 index 000000000..d25bee345 --- /dev/null +++ b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go @@ -0,0 +1,6136 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/stake/v1alpha1/stake.proto + +package stakev1alpha1 + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type BondingState_BondingStateEnum int32 + +const ( + BondingState_BONDING_STATE_ENUM_UNSPECIFIED BondingState_BondingStateEnum = 0 + BondingState_BONDING_STATE_ENUM_BONDED BondingState_BondingStateEnum = 1 + BondingState_BONDING_STATE_ENUM_UNBONDING BondingState_BondingStateEnum = 2 + BondingState_BONDING_STATE_ENUM_UNBONDED BondingState_BondingStateEnum = 3 +) + +var BondingState_BondingStateEnum_name = map[int32]string{ + 0: "BONDING_STATE_ENUM_UNSPECIFIED", + 1: "BONDING_STATE_ENUM_BONDED", + 2: "BONDING_STATE_ENUM_UNBONDING", + 3: "BONDING_STATE_ENUM_UNBONDED", +} + +var BondingState_BondingStateEnum_value = map[string]int32{ + "BONDING_STATE_ENUM_UNSPECIFIED": 0, + "BONDING_STATE_ENUM_BONDED": 1, + "BONDING_STATE_ENUM_UNBONDING": 2, + "BONDING_STATE_ENUM_UNBONDED": 3, +} + +func (x BondingState_BondingStateEnum) String() string { + return proto.EnumName(BondingState_BondingStateEnum_name, int32(x)) +} + +func (BondingState_BondingStateEnum) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{6, 0} +} + +type ValidatorState_ValidatorStateEnum int32 + +const ( + ValidatorState_VALIDATOR_STATE_ENUM_UNSPECIFIED ValidatorState_ValidatorStateEnum = 0 + ValidatorState_VALIDATOR_STATE_ENUM_INACTIVE ValidatorState_ValidatorStateEnum = 1 + ValidatorState_VALIDATOR_STATE_ENUM_ACTIVE ValidatorState_ValidatorStateEnum = 2 + ValidatorState_VALIDATOR_STATE_ENUM_JAILED ValidatorState_ValidatorStateEnum = 3 + ValidatorState_VALIDATOR_STATE_ENUM_TOMBSTONED ValidatorState_ValidatorStateEnum = 4 + ValidatorState_VALIDATOR_STATE_ENUM_DISABLED ValidatorState_ValidatorStateEnum = 5 +) + +var ValidatorState_ValidatorStateEnum_name = map[int32]string{ + 0: "VALIDATOR_STATE_ENUM_UNSPECIFIED", + 1: "VALIDATOR_STATE_ENUM_INACTIVE", + 2: "VALIDATOR_STATE_ENUM_ACTIVE", + 3: "VALIDATOR_STATE_ENUM_JAILED", + 4: "VALIDATOR_STATE_ENUM_TOMBSTONED", + 5: "VALIDATOR_STATE_ENUM_DISABLED", +} + +var ValidatorState_ValidatorStateEnum_value = map[string]int32{ + "VALIDATOR_STATE_ENUM_UNSPECIFIED": 0, + "VALIDATOR_STATE_ENUM_INACTIVE": 1, + "VALIDATOR_STATE_ENUM_ACTIVE": 2, + "VALIDATOR_STATE_ENUM_JAILED": 3, + "VALIDATOR_STATE_ENUM_TOMBSTONED": 4, + "VALIDATOR_STATE_ENUM_DISABLED": 5, +} + +func (x ValidatorState_ValidatorStateEnum) String() string { + return proto.EnumName(ValidatorState_ValidatorStateEnum_name, int32(x)) +} + +func (ValidatorState_ValidatorStateEnum) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{7, 0} +} + +// Describes a validator's configuration data. +type Validator struct { + // The validator's identity verification key. + IdentityKey *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + // The validator's consensus pubkey for use in Tendermint (Ed25519). + ConsensusKey []byte `protobuf:"bytes,2,opt,name=consensus_key,json=consensusKey,proto3" json:"consensus_key,omitempty"` + // The validator's (human-readable) name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The validator's website. + Website string `protobuf:"bytes,4,opt,name=website,proto3" json:"website,omitempty"` + // The validator's description. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Whether the validator is enabled or not. + // + // Disabled validators cannot be delegated to, and immediately begin unbonding. + Enabled bool `protobuf:"varint,8,opt,name=enabled,proto3" json:"enabled,omitempty"` + // A list of funding streams describing the validator's commission. + FundingStreams []*FundingStream `protobuf:"bytes,6,rep,name=funding_streams,json=fundingStreams,proto3" json:"funding_streams,omitempty"` + // The sequence number determines which validator data takes priority, and + // prevents replay attacks. The chain only accepts new validator definitions + // with increasing sequence numbers. + SequenceNumber uint32 `protobuf:"varint,7,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // The validator's governance key. + GovernanceKey *v1alpha1.GovernanceKey `protobuf:"bytes,9,opt,name=governance_key,json=governanceKey,proto3" json:"governance_key,omitempty"` +} + +func (m *Validator) Reset() { *m = Validator{} } +func (m *Validator) String() string { return proto.CompactTextString(m) } +func (*Validator) ProtoMessage() {} +func (*Validator) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{0} +} +func (m *Validator) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Validator.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Validator) XXX_Merge(src proto.Message) { + xxx_messageInfo_Validator.Merge(m, src) +} +func (m *Validator) XXX_Size() int { + return m.Size() +} +func (m *Validator) XXX_DiscardUnknown() { + xxx_messageInfo_Validator.DiscardUnknown(m) +} + +var xxx_messageInfo_Validator proto.InternalMessageInfo + +func (m *Validator) GetIdentityKey() *v1alpha1.IdentityKey { + if m != nil { + return m.IdentityKey + } + return nil +} + +func (m *Validator) GetConsensusKey() []byte { + if m != nil { + return m.ConsensusKey + } + return nil +} + +func (m *Validator) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Validator) GetWebsite() string { + if m != nil { + return m.Website + } + return "" +} + +func (m *Validator) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *Validator) GetEnabled() bool { + if m != nil { + return m.Enabled + } + return false +} + +func (m *Validator) GetFundingStreams() []*FundingStream { + if m != nil { + return m.FundingStreams + } + return nil +} + +func (m *Validator) GetSequenceNumber() uint32 { + if m != nil { + return m.SequenceNumber + } + return 0 +} + +func (m *Validator) GetGovernanceKey() *v1alpha1.GovernanceKey { + if m != nil { + return m.GovernanceKey + } + return nil +} + +// For storing the list of keys of known validators. +type ValidatorList struct { + ValidatorKeys []*v1alpha1.IdentityKey `protobuf:"bytes,1,rep,name=validator_keys,json=validatorKeys,proto3" json:"validator_keys,omitempty"` +} + +func (m *ValidatorList) Reset() { *m = ValidatorList{} } +func (m *ValidatorList) String() string { return proto.CompactTextString(m) } +func (*ValidatorList) ProtoMessage() {} +func (*ValidatorList) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{1} +} +func (m *ValidatorList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorList.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorList.Merge(m, src) +} +func (m *ValidatorList) XXX_Size() int { + return m.Size() +} +func (m *ValidatorList) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorList.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorList proto.InternalMessageInfo + +func (m *ValidatorList) GetValidatorKeys() []*v1alpha1.IdentityKey { + if m != nil { + return m.ValidatorKeys + } + return nil +} + +// A portion of a validator's commission. +type FundingStream struct { + // The recipient of the funding stream. + // + // Types that are valid to be assigned to Recipient: + // *FundingStream_ToAddress_ + // *FundingStream_ToDao_ + Recipient isFundingStream_Recipient `protobuf_oneof:"recipient"` +} + +func (m *FundingStream) Reset() { *m = FundingStream{} } +func (m *FundingStream) String() string { return proto.CompactTextString(m) } +func (*FundingStream) ProtoMessage() {} +func (*FundingStream) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{2} +} +func (m *FundingStream) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FundingStream) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FundingStream.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FundingStream) XXX_Merge(src proto.Message) { + xxx_messageInfo_FundingStream.Merge(m, src) +} +func (m *FundingStream) XXX_Size() int { + return m.Size() +} +func (m *FundingStream) XXX_DiscardUnknown() { + xxx_messageInfo_FundingStream.DiscardUnknown(m) +} + +var xxx_messageInfo_FundingStream proto.InternalMessageInfo + +type isFundingStream_Recipient interface { + isFundingStream_Recipient() + MarshalTo([]byte) (int, error) + Size() int +} + +type FundingStream_ToAddress_ struct { + ToAddress *FundingStream_ToAddress `protobuf:"bytes,1,opt,name=to_address,json=toAddress,proto3,oneof" json:"to_address,omitempty"` +} +type FundingStream_ToDao_ struct { + ToDao *FundingStream_ToDao `protobuf:"bytes,2,opt,name=to_dao,json=toDao,proto3,oneof" json:"to_dao,omitempty"` +} + +func (*FundingStream_ToAddress_) isFundingStream_Recipient() {} +func (*FundingStream_ToDao_) isFundingStream_Recipient() {} + +func (m *FundingStream) GetRecipient() isFundingStream_Recipient { + if m != nil { + return m.Recipient + } + return nil +} + +func (m *FundingStream) GetToAddress() *FundingStream_ToAddress { + if x, ok := m.GetRecipient().(*FundingStream_ToAddress_); ok { + return x.ToAddress + } + return nil +} + +func (m *FundingStream) GetToDao() *FundingStream_ToDao { + if x, ok := m.GetRecipient().(*FundingStream_ToDao_); ok { + return x.ToDao + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*FundingStream) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*FundingStream_ToAddress_)(nil), + (*FundingStream_ToDao_)(nil), + } +} + +type FundingStream_ToAddress struct { + // The destination address for the funding stream. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The portion of the staking reward for the entire delegation pool + // allocated to this funding stream, specified in basis points. + RateBps uint32 `protobuf:"varint,2,opt,name=rate_bps,json=rateBps,proto3" json:"rate_bps,omitempty"` +} + +func (m *FundingStream_ToAddress) Reset() { *m = FundingStream_ToAddress{} } +func (m *FundingStream_ToAddress) String() string { return proto.CompactTextString(m) } +func (*FundingStream_ToAddress) ProtoMessage() {} +func (*FundingStream_ToAddress) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{2, 0} +} +func (m *FundingStream_ToAddress) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FundingStream_ToAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FundingStream_ToAddress.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FundingStream_ToAddress) XXX_Merge(src proto.Message) { + xxx_messageInfo_FundingStream_ToAddress.Merge(m, src) +} +func (m *FundingStream_ToAddress) XXX_Size() int { + return m.Size() +} +func (m *FundingStream_ToAddress) XXX_DiscardUnknown() { + xxx_messageInfo_FundingStream_ToAddress.DiscardUnknown(m) +} + +var xxx_messageInfo_FundingStream_ToAddress proto.InternalMessageInfo + +func (m *FundingStream_ToAddress) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +func (m *FundingStream_ToAddress) GetRateBps() uint32 { + if m != nil { + return m.RateBps + } + return 0 +} + +type FundingStream_ToDao struct { + // The portion of the staking reward for the entire delegation pool + // allocated to this funding stream, specified in basis points. + RateBps uint32 `protobuf:"varint,2,opt,name=rate_bps,json=rateBps,proto3" json:"rate_bps,omitempty"` +} + +func (m *FundingStream_ToDao) Reset() { *m = FundingStream_ToDao{} } +func (m *FundingStream_ToDao) String() string { return proto.CompactTextString(m) } +func (*FundingStream_ToDao) ProtoMessage() {} +func (*FundingStream_ToDao) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{2, 1} +} +func (m *FundingStream_ToDao) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FundingStream_ToDao) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FundingStream_ToDao.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FundingStream_ToDao) XXX_Merge(src proto.Message) { + xxx_messageInfo_FundingStream_ToDao.Merge(m, src) +} +func (m *FundingStream_ToDao) XXX_Size() int { + return m.Size() +} +func (m *FundingStream_ToDao) XXX_DiscardUnknown() { + xxx_messageInfo_FundingStream_ToDao.DiscardUnknown(m) +} + +var xxx_messageInfo_FundingStream_ToDao proto.InternalMessageInfo + +func (m *FundingStream_ToDao) GetRateBps() uint32 { + if m != nil { + return m.RateBps + } + return 0 +} + +// Describes the reward and exchange rates and voting power for a validator in some epoch. +type RateData struct { + IdentityKey *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + EpochIndex uint64 `protobuf:"varint,2,opt,name=epoch_index,json=epochIndex,proto3" json:"epoch_index,omitempty"` + ValidatorRewardRate uint64 `protobuf:"varint,4,opt,name=validator_reward_rate,json=validatorRewardRate,proto3" json:"validator_reward_rate,omitempty"` + ValidatorExchangeRate uint64 `protobuf:"varint,5,opt,name=validator_exchange_rate,json=validatorExchangeRate,proto3" json:"validator_exchange_rate,omitempty"` +} + +func (m *RateData) Reset() { *m = RateData{} } +func (m *RateData) String() string { return proto.CompactTextString(m) } +func (*RateData) ProtoMessage() {} +func (*RateData) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{3} +} +func (m *RateData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RateData.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RateData) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateData.Merge(m, src) +} +func (m *RateData) XXX_Size() int { + return m.Size() +} +func (m *RateData) XXX_DiscardUnknown() { + xxx_messageInfo_RateData.DiscardUnknown(m) +} + +var xxx_messageInfo_RateData proto.InternalMessageInfo + +func (m *RateData) GetIdentityKey() *v1alpha1.IdentityKey { + if m != nil { + return m.IdentityKey + } + return nil +} + +func (m *RateData) GetEpochIndex() uint64 { + if m != nil { + return m.EpochIndex + } + return 0 +} + +func (m *RateData) GetValidatorRewardRate() uint64 { + if m != nil { + return m.ValidatorRewardRate + } + return 0 +} + +func (m *RateData) GetValidatorExchangeRate() uint64 { + if m != nil { + return m.ValidatorExchangeRate + } + return 0 +} + +// Describes the base reward and exchange rates in some epoch. +type BaseRateData struct { + EpochIndex uint64 `protobuf:"varint,1,opt,name=epoch_index,json=epochIndex,proto3" json:"epoch_index,omitempty"` + BaseRewardRate uint64 `protobuf:"varint,2,opt,name=base_reward_rate,json=baseRewardRate,proto3" json:"base_reward_rate,omitempty"` + BaseExchangeRate uint64 `protobuf:"varint,3,opt,name=base_exchange_rate,json=baseExchangeRate,proto3" json:"base_exchange_rate,omitempty"` +} + +func (m *BaseRateData) Reset() { *m = BaseRateData{} } +func (m *BaseRateData) String() string { return proto.CompactTextString(m) } +func (*BaseRateData) ProtoMessage() {} +func (*BaseRateData) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{4} +} +func (m *BaseRateData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BaseRateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BaseRateData.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BaseRateData) XXX_Merge(src proto.Message) { + xxx_messageInfo_BaseRateData.Merge(m, src) +} +func (m *BaseRateData) XXX_Size() int { + return m.Size() +} +func (m *BaseRateData) XXX_DiscardUnknown() { + xxx_messageInfo_BaseRateData.DiscardUnknown(m) +} + +var xxx_messageInfo_BaseRateData proto.InternalMessageInfo + +func (m *BaseRateData) GetEpochIndex() uint64 { + if m != nil { + return m.EpochIndex + } + return 0 +} + +func (m *BaseRateData) GetBaseRewardRate() uint64 { + if m != nil { + return m.BaseRewardRate + } + return 0 +} + +func (m *BaseRateData) GetBaseExchangeRate() uint64 { + if m != nil { + return m.BaseExchangeRate + } + return 0 +} + +// Describes the current state of a validator on-chain +type ValidatorStatus struct { + IdentityKey *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + State *ValidatorState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` + VotingPower uint64 `protobuf:"varint,3,opt,name=voting_power,json=votingPower,proto3" json:"voting_power,omitempty"` + BondingState *BondingState `protobuf:"bytes,4,opt,name=bonding_state,json=bondingState,proto3" json:"bonding_state,omitempty"` +} + +func (m *ValidatorStatus) Reset() { *m = ValidatorStatus{} } +func (m *ValidatorStatus) String() string { return proto.CompactTextString(m) } +func (*ValidatorStatus) ProtoMessage() {} +func (*ValidatorStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{5} +} +func (m *ValidatorStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorStatus.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorStatus.Merge(m, src) +} +func (m *ValidatorStatus) XXX_Size() int { + return m.Size() +} +func (m *ValidatorStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorStatus proto.InternalMessageInfo + +func (m *ValidatorStatus) GetIdentityKey() *v1alpha1.IdentityKey { + if m != nil { + return m.IdentityKey + } + return nil +} + +func (m *ValidatorStatus) GetState() *ValidatorState { + if m != nil { + return m.State + } + return nil +} + +func (m *ValidatorStatus) GetVotingPower() uint64 { + if m != nil { + return m.VotingPower + } + return 0 +} + +func (m *ValidatorStatus) GetBondingState() *BondingState { + if m != nil { + return m.BondingState + } + return nil +} + +// Describes the unbonding state of a validator's stake pool. +type BondingState struct { + State BondingState_BondingStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.stake.v1alpha1.BondingState_BondingStateEnum" json:"state,omitempty"` + // Types that are valid to be assigned to XUnbondingEpoch: + // + // *BondingState_UnbondingEpoch + XUnbondingEpoch isBondingState_XUnbondingEpoch `protobuf_oneof:"_unbonding_epoch"` +} + +func (m *BondingState) Reset() { *m = BondingState{} } +func (m *BondingState) String() string { return proto.CompactTextString(m) } +func (*BondingState) ProtoMessage() {} +func (*BondingState) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{6} +} +func (m *BondingState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BondingState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BondingState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BondingState) XXX_Merge(src proto.Message) { + xxx_messageInfo_BondingState.Merge(m, src) +} +func (m *BondingState) XXX_Size() int { + return m.Size() +} +func (m *BondingState) XXX_DiscardUnknown() { + xxx_messageInfo_BondingState.DiscardUnknown(m) +} + +var xxx_messageInfo_BondingState proto.InternalMessageInfo + +type isBondingState_XUnbondingEpoch interface { + isBondingState_XUnbondingEpoch() + MarshalTo([]byte) (int, error) + Size() int +} + +type BondingState_UnbondingEpoch struct { + UnbondingEpoch uint64 `protobuf:"varint,2,opt,name=unbonding_epoch,json=unbondingEpoch,proto3,oneof" json:"unbonding_epoch,omitempty"` +} + +func (*BondingState_UnbondingEpoch) isBondingState_XUnbondingEpoch() {} + +func (m *BondingState) GetXUnbondingEpoch() isBondingState_XUnbondingEpoch { + if m != nil { + return m.XUnbondingEpoch + } + return nil +} + +func (m *BondingState) GetState() BondingState_BondingStateEnum { + if m != nil { + return m.State + } + return BondingState_BONDING_STATE_ENUM_UNSPECIFIED +} + +func (m *BondingState) GetUnbondingEpoch() uint64 { + if x, ok := m.GetXUnbondingEpoch().(*BondingState_UnbondingEpoch); ok { + return x.UnbondingEpoch + } + return 0 +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*BondingState) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*BondingState_UnbondingEpoch)(nil), + } +} + +// Describes the state of a validator +type ValidatorState struct { + State ValidatorState_ValidatorStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.stake.v1alpha1.ValidatorState_ValidatorStateEnum" json:"state,omitempty"` +} + +func (m *ValidatorState) Reset() { *m = ValidatorState{} } +func (m *ValidatorState) String() string { return proto.CompactTextString(m) } +func (*ValidatorState) ProtoMessage() {} +func (*ValidatorState) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{7} +} +func (m *ValidatorState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorState) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorState.Merge(m, src) +} +func (m *ValidatorState) XXX_Size() int { + return m.Size() +} +func (m *ValidatorState) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorState.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorState proto.InternalMessageInfo + +func (m *ValidatorState) GetState() ValidatorState_ValidatorStateEnum { + if m != nil { + return m.State + } + return ValidatorState_VALIDATOR_STATE_ENUM_UNSPECIFIED +} + +// Combines all validator info into a single packet. +type ValidatorInfo struct { + Validator *Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator,omitempty"` + Status *ValidatorStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + RateData *RateData `protobuf:"bytes,3,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` +} + +func (m *ValidatorInfo) Reset() { *m = ValidatorInfo{} } +func (m *ValidatorInfo) String() string { return proto.CompactTextString(m) } +func (*ValidatorInfo) ProtoMessage() {} +func (*ValidatorInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{8} +} +func (m *ValidatorInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorInfo.Merge(m, src) +} +func (m *ValidatorInfo) XXX_Size() int { + return m.Size() +} +func (m *ValidatorInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorInfo proto.InternalMessageInfo + +func (m *ValidatorInfo) GetValidator() *Validator { + if m != nil { + return m.Validator + } + return nil +} + +func (m *ValidatorInfo) GetStatus() *ValidatorStatus { + if m != nil { + return m.Status + } + return nil +} + +func (m *ValidatorInfo) GetRateData() *RateData { + if m != nil { + return m.RateData + } + return nil +} + +// A transaction action (re)defining a validator. +type ValidatorDefinition struct { + // The configuration data for the validator. + Validator *Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator,omitempty"` + // A signature by the validator's identity key over the validator data. + AuthSig []byte `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` +} + +func (m *ValidatorDefinition) Reset() { *m = ValidatorDefinition{} } +func (m *ValidatorDefinition) String() string { return proto.CompactTextString(m) } +func (*ValidatorDefinition) ProtoMessage() {} +func (*ValidatorDefinition) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{9} +} +func (m *ValidatorDefinition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorDefinition.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorDefinition) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorDefinition.Merge(m, src) +} +func (m *ValidatorDefinition) XXX_Size() int { + return m.Size() +} +func (m *ValidatorDefinition) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorDefinition.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorDefinition proto.InternalMessageInfo + +func (m *ValidatorDefinition) GetValidator() *Validator { + if m != nil { + return m.Validator + } + return nil +} + +func (m *ValidatorDefinition) GetAuthSig() []byte { + if m != nil { + return m.AuthSig + } + return nil +} + +// A transaction action adding stake to a validator's delegation pool. +type Delegate struct { + // The identity key of the validator to delegate to. + ValidatorIdentity *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=validator_identity,json=validatorIdentity,proto3" json:"validator_identity,omitempty"` + // The index of the epoch in which this delegation was performed. + // The delegation takes effect in the next epoch. + EpochIndex uint64 `protobuf:"varint,2,opt,name=epoch_index,json=epochIndex,proto3" json:"epoch_index,omitempty"` + // The delegation amount, in units of unbonded stake. + // TODO: use flow aggregation to hide this, replacing it with bytes amount_ciphertext; + UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + // The amount of delegation tokens produced by this action. + // + // This is implied by the validator's exchange rate in the specified epoch + // (and should be checked in transaction validation!), but including it allows + // stateless verification that the transaction is internally consistent. + DelegationAmount *v1alpha1.Amount `protobuf:"bytes,4,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` +} + +func (m *Delegate) Reset() { *m = Delegate{} } +func (m *Delegate) String() string { return proto.CompactTextString(m) } +func (*Delegate) ProtoMessage() {} +func (*Delegate) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{10} +} +func (m *Delegate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Delegate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Delegate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Delegate) XXX_Merge(src proto.Message) { + xxx_messageInfo_Delegate.Merge(m, src) +} +func (m *Delegate) XXX_Size() int { + return m.Size() +} +func (m *Delegate) XXX_DiscardUnknown() { + xxx_messageInfo_Delegate.DiscardUnknown(m) +} + +var xxx_messageInfo_Delegate proto.InternalMessageInfo + +func (m *Delegate) GetValidatorIdentity() *v1alpha1.IdentityKey { + if m != nil { + return m.ValidatorIdentity + } + return nil +} + +func (m *Delegate) GetEpochIndex() uint64 { + if m != nil { + return m.EpochIndex + } + return 0 +} + +func (m *Delegate) GetUnbondedAmount() *v1alpha1.Amount { + if m != nil { + return m.UnbondedAmount + } + return nil +} + +func (m *Delegate) GetDelegationAmount() *v1alpha1.Amount { + if m != nil { + return m.DelegationAmount + } + return nil +} + +// A transaction action withdrawing stake from a validator's delegation pool. +type Undelegate struct { + // The identity key of the validator to undelegate from. + ValidatorIdentity *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=validator_identity,json=validatorIdentity,proto3" json:"validator_identity,omitempty"` + // The index of the epoch in which this undelegation was performed. + StartEpochIndex uint64 `protobuf:"varint,2,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` + // The index of the epoch in which unbonding should complete. + EndEpochIndex uint64 `protobuf:"varint,3,opt,name=end_epoch_index,json=endEpochIndex,proto3" json:"end_epoch_index,omitempty"` + // The amount to undelegate, in units of unbonding tokens. + UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,4,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + // The amount of delegation tokens consumed by this action. + // + // This is implied by the validator's exchange rate in the specified epoch + // (and should be checked in transaction validation!), but including it allows + // stateless verification that the transaction is internally consistent. + DelegationAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` +} + +func (m *Undelegate) Reset() { *m = Undelegate{} } +func (m *Undelegate) String() string { return proto.CompactTextString(m) } +func (*Undelegate) ProtoMessage() {} +func (*Undelegate) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{11} +} +func (m *Undelegate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Undelegate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Undelegate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Undelegate) XXX_Merge(src proto.Message) { + xxx_messageInfo_Undelegate.Merge(m, src) +} +func (m *Undelegate) XXX_Size() int { + return m.Size() +} +func (m *Undelegate) XXX_DiscardUnknown() { + xxx_messageInfo_Undelegate.DiscardUnknown(m) +} + +var xxx_messageInfo_Undelegate proto.InternalMessageInfo + +func (m *Undelegate) GetValidatorIdentity() *v1alpha1.IdentityKey { + if m != nil { + return m.ValidatorIdentity + } + return nil +} + +func (m *Undelegate) GetStartEpochIndex() uint64 { + if m != nil { + return m.StartEpochIndex + } + return 0 +} + +func (m *Undelegate) GetEndEpochIndex() uint64 { + if m != nil { + return m.EndEpochIndex + } + return 0 +} + +func (m *Undelegate) GetUnbondedAmount() *v1alpha1.Amount { + if m != nil { + return m.UnbondedAmount + } + return nil +} + +func (m *Undelegate) GetDelegationAmount() *v1alpha1.Amount { + if m != nil { + return m.DelegationAmount + } + return nil +} + +// A transaction action finishing an undelegation, converting (slashable) +// "unbonding tokens" to (unslashable) staking tokens. +type UndelegateClaim struct { + Body *UndelegateClaimBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + Proof []byte `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (m *UndelegateClaim) Reset() { *m = UndelegateClaim{} } +func (m *UndelegateClaim) String() string { return proto.CompactTextString(m) } +func (*UndelegateClaim) ProtoMessage() {} +func (*UndelegateClaim) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{12} +} +func (m *UndelegateClaim) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UndelegateClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UndelegateClaim.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UndelegateClaim) XXX_Merge(src proto.Message) { + xxx_messageInfo_UndelegateClaim.Merge(m, src) +} +func (m *UndelegateClaim) XXX_Size() int { + return m.Size() +} +func (m *UndelegateClaim) XXX_DiscardUnknown() { + xxx_messageInfo_UndelegateClaim.DiscardUnknown(m) +} + +var xxx_messageInfo_UndelegateClaim proto.InternalMessageInfo + +func (m *UndelegateClaim) GetBody() *UndelegateClaimBody { + if m != nil { + return m.Body + } + return nil +} + +func (m *UndelegateClaim) GetProof() []byte { + if m != nil { + return m.Proof + } + return nil +} + +type UndelegateClaimBody struct { + // The identity key of the validator to finish undelegating from. + ValidatorIdentity *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=validator_identity,json=validatorIdentity,proto3" json:"validator_identity,omitempty"` + // The epoch in which unbonding began, used to verify the penalty. + StartEpochIndex uint64 `protobuf:"varint,2,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` + // The epoch in which unbonding finished, used to verify the penalty. + EndEpochIndex uint64 `protobuf:"varint,3,opt,name=end_epoch_index,json=endEpochIndex,proto3" json:"end_epoch_index,omitempty"` + // The penalty applied to undelegation, in bps^2 (10e-8). + // In the happy path (no slashing), this is 0. + Penalty *Penalty `protobuf:"bytes,4,opt,name=penalty,proto3" json:"penalty,omitempty"` + // The action's contribution to the transaction's value balance. + BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,5,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` +} + +func (m *UndelegateClaimBody) Reset() { *m = UndelegateClaimBody{} } +func (m *UndelegateClaimBody) String() string { return proto.CompactTextString(m) } +func (*UndelegateClaimBody) ProtoMessage() {} +func (*UndelegateClaimBody) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{13} +} +func (m *UndelegateClaimBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UndelegateClaimBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UndelegateClaimBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UndelegateClaimBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_UndelegateClaimBody.Merge(m, src) +} +func (m *UndelegateClaimBody) XXX_Size() int { + return m.Size() +} +func (m *UndelegateClaimBody) XXX_DiscardUnknown() { + xxx_messageInfo_UndelegateClaimBody.DiscardUnknown(m) +} + +var xxx_messageInfo_UndelegateClaimBody proto.InternalMessageInfo + +func (m *UndelegateClaimBody) GetValidatorIdentity() *v1alpha1.IdentityKey { + if m != nil { + return m.ValidatorIdentity + } + return nil +} + +func (m *UndelegateClaimBody) GetStartEpochIndex() uint64 { + if m != nil { + return m.StartEpochIndex + } + return 0 +} + +func (m *UndelegateClaimBody) GetEndEpochIndex() uint64 { + if m != nil { + return m.EndEpochIndex + } + return 0 +} + +func (m *UndelegateClaimBody) GetPenalty() *Penalty { + if m != nil { + return m.Penalty + } + return nil +} + +func (m *UndelegateClaimBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { + if m != nil { + return m.BalanceCommitment + } + return nil +} + +type UndelegateClaimPlan struct { + // The identity key of the validator to finish undelegating from. + ValidatorIdentity *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=validator_identity,json=validatorIdentity,proto3" json:"validator_identity,omitempty"` + // The epoch in which unbonding began, used to verify the penalty. + StartEpochIndex uint64 `protobuf:"varint,2,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` + // The epoch in which unbonding finished, used to verify the penalty. + EndEpochIndex uint64 `protobuf:"varint,3,opt,name=end_epoch_index,json=endEpochIndex,proto3" json:"end_epoch_index,omitempty"` + // The penalty applied to undelegation, in bps^2 (10e-8). + // In the happy path (no slashing), this is 0. + Penalty *Penalty `protobuf:"bytes,4,opt,name=penalty,proto3" json:"penalty,omitempty"` + // The amount of unbonding tokens to claim. + // This is a bare number because its denom is determined by the preceding data. + UnbondingAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unbonding_amount,json=unbondingAmount,proto3" json:"unbonding_amount,omitempty"` + // The blinding factor to use for the balance commitment. + BalanceBlinding []byte `protobuf:"bytes,6,opt,name=balance_blinding,json=balanceBlinding,proto3" json:"balance_blinding,omitempty"` +} + +func (m *UndelegateClaimPlan) Reset() { *m = UndelegateClaimPlan{} } +func (m *UndelegateClaimPlan) String() string { return proto.CompactTextString(m) } +func (*UndelegateClaimPlan) ProtoMessage() {} +func (*UndelegateClaimPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{14} +} +func (m *UndelegateClaimPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UndelegateClaimPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UndelegateClaimPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UndelegateClaimPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_UndelegateClaimPlan.Merge(m, src) +} +func (m *UndelegateClaimPlan) XXX_Size() int { + return m.Size() +} +func (m *UndelegateClaimPlan) XXX_DiscardUnknown() { + xxx_messageInfo_UndelegateClaimPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_UndelegateClaimPlan proto.InternalMessageInfo + +func (m *UndelegateClaimPlan) GetValidatorIdentity() *v1alpha1.IdentityKey { + if m != nil { + return m.ValidatorIdentity + } + return nil +} + +func (m *UndelegateClaimPlan) GetStartEpochIndex() uint64 { + if m != nil { + return m.StartEpochIndex + } + return 0 +} + +func (m *UndelegateClaimPlan) GetEndEpochIndex() uint64 { + if m != nil { + return m.EndEpochIndex + } + return 0 +} + +func (m *UndelegateClaimPlan) GetPenalty() *Penalty { + if m != nil { + return m.Penalty + } + return nil +} + +func (m *UndelegateClaimPlan) GetUnbondingAmount() *v1alpha1.Amount { + if m != nil { + return m.UnbondingAmount + } + return nil +} + +func (m *UndelegateClaimPlan) GetBalanceBlinding() []byte { + if m != nil { + return m.BalanceBlinding + } + return nil +} + +// A list of pending delegations and undelegations. +type DelegationChanges struct { + Delegations []*Delegate `protobuf:"bytes,1,rep,name=delegations,proto3" json:"delegations,omitempty"` + Undelegations []*Undelegate `protobuf:"bytes,2,rep,name=undelegations,proto3" json:"undelegations,omitempty"` +} + +func (m *DelegationChanges) Reset() { *m = DelegationChanges{} } +func (m *DelegationChanges) String() string { return proto.CompactTextString(m) } +func (*DelegationChanges) ProtoMessage() {} +func (*DelegationChanges) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{15} +} +func (m *DelegationChanges) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DelegationChanges) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DelegationChanges.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DelegationChanges) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelegationChanges.Merge(m, src) +} +func (m *DelegationChanges) XXX_Size() int { + return m.Size() +} +func (m *DelegationChanges) XXX_DiscardUnknown() { + xxx_messageInfo_DelegationChanges.DiscardUnknown(m) +} + +var xxx_messageInfo_DelegationChanges proto.InternalMessageInfo + +func (m *DelegationChanges) GetDelegations() []*Delegate { + if m != nil { + return m.Delegations + } + return nil +} + +func (m *DelegationChanges) GetUndelegations() []*Undelegate { + if m != nil { + return m.Undelegations + } + return nil +} + +// Track's a validator's uptime. +type Uptime struct { + AsOfBlockHeight uint64 `protobuf:"varint,1,opt,name=as_of_block_height,json=asOfBlockHeight,proto3" json:"as_of_block_height,omitempty"` + WindowLen uint32 `protobuf:"varint,2,opt,name=window_len,json=windowLen,proto3" json:"window_len,omitempty"` + Bitvec []byte `protobuf:"bytes,3,opt,name=bitvec,proto3" json:"bitvec,omitempty"` +} + +func (m *Uptime) Reset() { *m = Uptime{} } +func (m *Uptime) String() string { return proto.CompactTextString(m) } +func (*Uptime) ProtoMessage() {} +func (*Uptime) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{16} +} +func (m *Uptime) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Uptime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Uptime.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Uptime) XXX_Merge(src proto.Message) { + xxx_messageInfo_Uptime.Merge(m, src) +} +func (m *Uptime) XXX_Size() int { + return m.Size() +} +func (m *Uptime) XXX_DiscardUnknown() { + xxx_messageInfo_Uptime.DiscardUnknown(m) +} + +var xxx_messageInfo_Uptime proto.InternalMessageInfo + +func (m *Uptime) GetAsOfBlockHeight() uint64 { + if m != nil { + return m.AsOfBlockHeight + } + return 0 +} + +func (m *Uptime) GetWindowLen() uint32 { + if m != nil { + return m.WindowLen + } + return 0 +} + +func (m *Uptime) GetBitvec() []byte { + if m != nil { + return m.Bitvec + } + return nil +} + +// Tracks our view of Tendermint's view of the validator set, so we can keep it +// from getting confused. +type CurrentConsensusKeys struct { + ConsensusKeys []*v1alpha1.ConsensusKey `protobuf:"bytes,1,rep,name=consensus_keys,json=consensusKeys,proto3" json:"consensus_keys,omitempty"` +} + +func (m *CurrentConsensusKeys) Reset() { *m = CurrentConsensusKeys{} } +func (m *CurrentConsensusKeys) String() string { return proto.CompactTextString(m) } +func (*CurrentConsensusKeys) ProtoMessage() {} +func (*CurrentConsensusKeys) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{17} +} +func (m *CurrentConsensusKeys) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CurrentConsensusKeys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CurrentConsensusKeys.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CurrentConsensusKeys) XXX_Merge(src proto.Message) { + xxx_messageInfo_CurrentConsensusKeys.Merge(m, src) +} +func (m *CurrentConsensusKeys) XXX_Size() int { + return m.Size() +} +func (m *CurrentConsensusKeys) XXX_DiscardUnknown() { + xxx_messageInfo_CurrentConsensusKeys.DiscardUnknown(m) +} + +var xxx_messageInfo_CurrentConsensusKeys proto.InternalMessageInfo + +func (m *CurrentConsensusKeys) GetConsensusKeys() []*v1alpha1.ConsensusKey { + if m != nil { + return m.ConsensusKeys + } + return nil +} + +// Tracks slashing penalties applied to a validator in some epoch. +type Penalty struct { + Inner uint64 `protobuf:"varint,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *Penalty) Reset() { *m = Penalty{} } +func (m *Penalty) String() string { return proto.CompactTextString(m) } +func (*Penalty) ProtoMessage() {} +func (*Penalty) Descriptor() ([]byte, []int) { + return fileDescriptor_022d012c8e7b3ca5, []int{18} +} +func (m *Penalty) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Penalty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Penalty.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Penalty) XXX_Merge(src proto.Message) { + xxx_messageInfo_Penalty.Merge(m, src) +} +func (m *Penalty) XXX_Size() int { + return m.Size() +} +func (m *Penalty) XXX_DiscardUnknown() { + xxx_messageInfo_Penalty.DiscardUnknown(m) +} + +var xxx_messageInfo_Penalty proto.InternalMessageInfo + +func (m *Penalty) GetInner() uint64 { + if m != nil { + return m.Inner + } + return 0 +} + +func init() { + proto.RegisterEnum("penumbra.core.stake.v1alpha1.BondingState_BondingStateEnum", BondingState_BondingStateEnum_name, BondingState_BondingStateEnum_value) + proto.RegisterEnum("penumbra.core.stake.v1alpha1.ValidatorState_ValidatorStateEnum", ValidatorState_ValidatorStateEnum_name, ValidatorState_ValidatorStateEnum_value) + proto.RegisterType((*Validator)(nil), "penumbra.core.stake.v1alpha1.Validator") + proto.RegisterType((*ValidatorList)(nil), "penumbra.core.stake.v1alpha1.ValidatorList") + proto.RegisterType((*FundingStream)(nil), "penumbra.core.stake.v1alpha1.FundingStream") + proto.RegisterType((*FundingStream_ToAddress)(nil), "penumbra.core.stake.v1alpha1.FundingStream.ToAddress") + proto.RegisterType((*FundingStream_ToDao)(nil), "penumbra.core.stake.v1alpha1.FundingStream.ToDao") + proto.RegisterType((*RateData)(nil), "penumbra.core.stake.v1alpha1.RateData") + proto.RegisterType((*BaseRateData)(nil), "penumbra.core.stake.v1alpha1.BaseRateData") + proto.RegisterType((*ValidatorStatus)(nil), "penumbra.core.stake.v1alpha1.ValidatorStatus") + proto.RegisterType((*BondingState)(nil), "penumbra.core.stake.v1alpha1.BondingState") + proto.RegisterType((*ValidatorState)(nil), "penumbra.core.stake.v1alpha1.ValidatorState") + proto.RegisterType((*ValidatorInfo)(nil), "penumbra.core.stake.v1alpha1.ValidatorInfo") + proto.RegisterType((*ValidatorDefinition)(nil), "penumbra.core.stake.v1alpha1.ValidatorDefinition") + proto.RegisterType((*Delegate)(nil), "penumbra.core.stake.v1alpha1.Delegate") + proto.RegisterType((*Undelegate)(nil), "penumbra.core.stake.v1alpha1.Undelegate") + proto.RegisterType((*UndelegateClaim)(nil), "penumbra.core.stake.v1alpha1.UndelegateClaim") + proto.RegisterType((*UndelegateClaimBody)(nil), "penumbra.core.stake.v1alpha1.UndelegateClaimBody") + proto.RegisterType((*UndelegateClaimPlan)(nil), "penumbra.core.stake.v1alpha1.UndelegateClaimPlan") + proto.RegisterType((*DelegationChanges)(nil), "penumbra.core.stake.v1alpha1.DelegationChanges") + proto.RegisterType((*Uptime)(nil), "penumbra.core.stake.v1alpha1.Uptime") + proto.RegisterType((*CurrentConsensusKeys)(nil), "penumbra.core.stake.v1alpha1.CurrentConsensusKeys") + proto.RegisterType((*Penalty)(nil), "penumbra.core.stake.v1alpha1.Penalty") +} + +func init() { + proto.RegisterFile("penumbra/core/stake/v1alpha1/stake.proto", fileDescriptor_022d012c8e7b3ca5) +} + +var fileDescriptor_022d012c8e7b3ca5 = []byte{ + // 1572 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0x4f, 0x77, 0x3e, 0xfd, 0x1c, 0x7f, 0xa4, 0x66, 0x01, 0xcf, 0x30, 0x93, 0x78, 0x7b, 0x61, + 0xd7, 0xcc, 0x0c, 0x0e, 0x13, 0x04, 0x87, 0xec, 0x61, 0x71, 0xdb, 0xbd, 0x13, 0xef, 0xce, 0x38, + 0xde, 0xb6, 0x13, 0x09, 0x34, 0x52, 0xab, 0xec, 0xae, 0xd8, 0xcd, 0xd8, 0x55, 0xa6, 0xab, 0x9c, + 0xac, 0xaf, 0x5c, 0xe0, 0xc8, 0x71, 0xcf, 0x1c, 0x38, 0xac, 0xc4, 0x81, 0x3f, 0x00, 0xce, 0x88, + 0xd3, 0x72, 0xe3, 0x06, 0xca, 0x48, 0x8b, 0xc4, 0x5f, 0x81, 0xaa, 0xba, 0xab, 0xfd, 0x91, 0xaf, + 0xc9, 0x30, 0x42, 0x42, 0xdc, 0xfa, 0x7d, 0xfd, 0xea, 0xbd, 0xdf, 0xab, 0x57, 0x5d, 0xdd, 0x50, + 0x1a, 0x11, 0x3a, 0x1e, 0x76, 0x42, 0xbc, 0xdb, 0x65, 0x21, 0xd9, 0xe5, 0x02, 0xbf, 0x24, 0xbb, + 0xa7, 0x4f, 0xf0, 0x60, 0xd4, 0xc7, 0x4f, 0x22, 0xb1, 0x3c, 0x0a, 0x99, 0x60, 0xe8, 0xbe, 0xf6, + 0x2c, 0x4b, 0xcf, 0x72, 0x64, 0xd2, 0x9e, 0xf7, 0x1e, 0xce, 0xe3, 0x74, 0xc3, 0xc9, 0x48, 0xb0, + 0x29, 0x50, 0x24, 0x47, 0x48, 0xd6, 0x1f, 0x97, 0x21, 0x75, 0x8c, 0x07, 0x81, 0x8f, 0x05, 0x0b, + 0xd1, 0x73, 0xd8, 0x0c, 0x7c, 0x42, 0x45, 0x20, 0x26, 0xde, 0x4b, 0x32, 0x29, 0x18, 0x45, 0xa3, + 0x94, 0xde, 0x7b, 0x58, 0x9e, 0x5f, 0x2e, 0x06, 0xd0, 0x80, 0xe5, 0x7a, 0x1c, 0xf2, 0x29, 0x99, + 0xb8, 0xe9, 0x60, 0x2a, 0xa0, 0xf7, 0x20, 0xd3, 0x65, 0x94, 0x13, 0xca, 0xc7, 0x5c, 0xe1, 0x99, + 0x45, 0xa3, 0xb4, 0xe9, 0x6e, 0x26, 0x4a, 0xe9, 0x84, 0x60, 0x85, 0xe2, 0x21, 0x29, 0x2c, 0x17, + 0x8d, 0x52, 0xca, 0x55, 0xcf, 0xa8, 0x00, 0xeb, 0x67, 0xa4, 0xc3, 0x03, 0x41, 0x0a, 0x2b, 0x4a, + 0xad, 0x45, 0x54, 0x84, 0xb4, 0x4f, 0x78, 0x37, 0x0c, 0x46, 0x22, 0x60, 0xb4, 0xb0, 0xaa, 0xac, + 0xb3, 0x2a, 0x19, 0x4b, 0x28, 0xee, 0x0c, 0x88, 0x5f, 0xd8, 0x28, 0x1a, 0xa5, 0x0d, 0x57, 0x8b, + 0xa8, 0x0d, 0xb9, 0x93, 0x31, 0xf5, 0x03, 0xda, 0xf3, 0xb8, 0x08, 0x09, 0x1e, 0xf2, 0xc2, 0x5a, + 0x71, 0xb9, 0x94, 0xde, 0x7b, 0x54, 0xbe, 0x8e, 0xcf, 0xf2, 0xc7, 0x51, 0x50, 0x4b, 0xc5, 0xb8, + 0xd9, 0x93, 0x59, 0x91, 0xa3, 0x0f, 0x20, 0xc7, 0xc9, 0x2f, 0xc6, 0x84, 0x76, 0x89, 0x27, 0x41, + 0x48, 0x58, 0x58, 0x2f, 0x1a, 0xa5, 0x8c, 0x9b, 0xd5, 0xea, 0x86, 0xd2, 0xa2, 0x16, 0x64, 0x7b, + 0xec, 0x94, 0x84, 0x14, 0x4b, 0x57, 0x49, 0x47, 0x4a, 0xd1, 0xfb, 0xf8, 0x06, 0x7a, 0x9f, 0x26, + 0x41, 0x92, 0xe0, 0x4c, 0x6f, 0x56, 0xb4, 0x3a, 0x90, 0x49, 0xda, 0xf7, 0x2c, 0xe0, 0x02, 0x7d, + 0x06, 0xd9, 0x53, 0xad, 0x90, 0x8b, 0xf0, 0x82, 0xa1, 0x6a, 0xbc, 0x4d, 0x13, 0x33, 0x09, 0xc2, + 0xa7, 0x64, 0xc2, 0xad, 0xdf, 0x99, 0x90, 0x99, 0xe3, 0x00, 0x1d, 0x03, 0x08, 0xe6, 0x61, 0xdf, + 0x0f, 0x09, 0xe7, 0xf1, 0x2e, 0xf9, 0xd1, 0x2d, 0x48, 0x2c, 0xb7, 0x59, 0x25, 0x0a, 0x3e, 0x58, + 0x72, 0x53, 0x42, 0x0b, 0xe8, 0x13, 0x58, 0x13, 0xcc, 0xf3, 0x31, 0x53, 0x3b, 0x25, 0xbd, 0xf7, + 0xe4, 0x76, 0x98, 0x35, 0xcc, 0x0e, 0x96, 0xdc, 0x55, 0x21, 0x1f, 0xee, 0xfd, 0x04, 0x52, 0xc9, + 0x2a, 0x72, 0x53, 0xcc, 0x66, 0x9b, 0x72, 0xb5, 0x88, 0xee, 0xc2, 0x46, 0x88, 0x05, 0xf1, 0x3a, + 0x23, 0xae, 0x16, 0xcd, 0xb8, 0xeb, 0x52, 0xb6, 0x47, 0xfc, 0x9e, 0x05, 0xab, 0x0a, 0xf3, 0x1a, + 0x1f, 0x3b, 0x0d, 0xa9, 0x90, 0x74, 0x83, 0x51, 0x40, 0xa8, 0xb0, 0xbe, 0x36, 0x60, 0xc3, 0xc5, + 0x82, 0xd4, 0xb0, 0xc0, 0x6f, 0x7b, 0x96, 0x76, 0x20, 0x4d, 0x46, 0xac, 0xdb, 0xf7, 0x02, 0xea, + 0x93, 0xcf, 0x55, 0x1a, 0x2b, 0x2e, 0x28, 0x55, 0x5d, 0x6a, 0xd0, 0x1e, 0x7c, 0x63, 0xda, 0xf8, + 0x90, 0x9c, 0xe1, 0xd0, 0xf7, 0x64, 0x96, 0x6a, 0x82, 0x56, 0xdc, 0x3b, 0x89, 0xd1, 0x55, 0x36, + 0x99, 0x27, 0xfa, 0x31, 0x7c, 0x6b, 0x1a, 0x43, 0x3e, 0xef, 0xf6, 0x31, 0xed, 0x91, 0x28, 0x6a, + 0x55, 0x45, 0x4d, 0x21, 0x9d, 0xd8, 0x2a, 0xe3, 0xac, 0x5f, 0x19, 0xb0, 0x69, 0x63, 0x4e, 0x92, + 0x62, 0x17, 0xb2, 0x33, 0x2e, 0x64, 0x57, 0x82, 0x7c, 0x07, 0x73, 0x32, 0x97, 0x58, 0x54, 0x43, + 0x56, 0xea, 0x67, 0x72, 0x7a, 0x0c, 0x48, 0x79, 0xce, 0xa7, 0xb3, 0xac, 0x7c, 0x15, 0xc6, 0x5c, + 0x26, 0x5f, 0x98, 0x90, 0x4b, 0x06, 0xa0, 0x25, 0xb0, 0x18, 0xf3, 0xb7, 0xcd, 0xbc, 0x0d, 0xab, + 0x5c, 0xe8, 0x7c, 0x2f, 0x8e, 0xeb, 0xc2, 0x9e, 0x9c, 0x4b, 0x86, 0xb8, 0x51, 0x28, 0x7a, 0x17, + 0x36, 0x4f, 0x99, 0x90, 0x27, 0xcf, 0x88, 0x9d, 0x91, 0x30, 0x2e, 0x27, 0x1d, 0xe9, 0x9a, 0x52, + 0x85, 0x0e, 0x21, 0xd3, 0x61, 0xfa, 0x74, 0xd2, 0x7d, 0xbb, 0x98, 0xf6, 0xc2, 0x72, 0x36, 0x8b, + 0x47, 0x40, 0x2e, 0xb6, 0xd9, 0x99, 0x91, 0xac, 0x3f, 0x99, 0xb0, 0x39, 0x6b, 0x46, 0x9f, 0xe9, + 0x42, 0x24, 0x21, 0xd9, 0xbd, 0x0f, 0x5f, 0x1f, 0x79, 0x4e, 0x70, 0xe8, 0x78, 0xa8, 0xeb, 0x7a, + 0x0c, 0xb9, 0x31, 0xd5, 0x69, 0xab, 0x76, 0x47, 0x5d, 0x3d, 0x58, 0x72, 0xb3, 0x89, 0xc1, 0x91, + 0xfa, 0x5f, 0x1b, 0x86, 0xf5, 0x85, 0x01, 0xf9, 0x45, 0x24, 0x64, 0xc1, 0xb6, 0x7d, 0xd8, 0xa8, + 0xd5, 0x1b, 0x4f, 0xbd, 0x56, 0xbb, 0xd2, 0x76, 0x3c, 0xa7, 0x71, 0xf4, 0xdc, 0x3b, 0x6a, 0xb4, + 0x9a, 0x4e, 0xb5, 0xfe, 0x71, 0xdd, 0xa9, 0xe5, 0x97, 0xd0, 0x03, 0xb8, 0x7b, 0x89, 0x8f, 0x54, + 0x39, 0xb5, 0xbc, 0x81, 0x8a, 0x70, 0xff, 0x52, 0x88, 0x58, 0x99, 0x37, 0xd1, 0x0e, 0x7c, 0xfb, + 0x4a, 0x0f, 0xa7, 0x96, 0x5f, 0xb6, 0x11, 0xe4, 0xbd, 0x85, 0x4a, 0xac, 0xbf, 0x9a, 0x90, 0x9d, + 0x6f, 0x27, 0x3a, 0x9a, 0xa7, 0xf0, 0xa3, 0xdb, 0xec, 0x85, 0x05, 0x71, 0x86, 0x46, 0xeb, 0x9f, + 0x06, 0xa0, 0x8b, 0x56, 0xf4, 0x1d, 0x28, 0x1e, 0x57, 0x9e, 0xd5, 0x6b, 0x95, 0xf6, 0xa1, 0x7b, + 0x35, 0x39, 0xef, 0xc2, 0x83, 0x4b, 0xbd, 0xea, 0x8d, 0x4a, 0xb5, 0x5d, 0x3f, 0x76, 0xf2, 0x86, + 0x2c, 0xff, 0x52, 0x97, 0xd8, 0xc1, 0xbc, 0xd2, 0xe1, 0x93, 0x4a, 0xfd, 0x99, 0xe4, 0x07, 0xbd, + 0x07, 0x3b, 0x97, 0x3a, 0xb4, 0x0f, 0x9f, 0xdb, 0xad, 0xf6, 0x61, 0xc3, 0xa9, 0xe5, 0x57, 0xae, + 0xcc, 0xa4, 0x56, 0x6f, 0x55, 0x6c, 0x89, 0xb3, 0x6a, 0x9d, 0x1b, 0x33, 0x2f, 0xac, 0x3a, 0x3d, + 0x61, 0xc8, 0x81, 0x54, 0x72, 0xc8, 0xc4, 0xa3, 0xfa, 0xc1, 0x6b, 0xd2, 0xea, 0x4e, 0x23, 0x91, + 0x03, 0x6b, 0x5c, 0x8d, 0x7f, 0x3c, 0xa6, 0xdf, 0xbf, 0x45, 0x6b, 0xc6, 0xdc, 0x8d, 0x83, 0x51, + 0x15, 0x52, 0xea, 0xa8, 0xf7, 0xb1, 0xc0, 0x6a, 0x4a, 0xd3, 0x7b, 0xef, 0x5f, 0x8f, 0xa4, 0xcf, + 0x40, 0x57, 0xbd, 0x23, 0xe4, 0x93, 0x75, 0x06, 0x77, 0x12, 0xfc, 0x1a, 0x39, 0x09, 0x68, 0xa0, + 0x6e, 0x26, 0x6f, 0xa9, 0xd2, 0xbb, 0xb0, 0x81, 0xc7, 0xa2, 0xef, 0xf1, 0xa0, 0x17, 0x5f, 0xa8, + 0xd6, 0xa5, 0xdc, 0x0a, 0x7a, 0xd6, 0x97, 0x26, 0x6c, 0xd4, 0xc8, 0x80, 0xf4, 0xe4, 0x5e, 0xfd, + 0x29, 0xa0, 0xe9, 0xe1, 0xae, 0x0f, 0xb4, 0x37, 0x38, 0x0c, 0xb7, 0x12, 0x14, 0xad, 0xbd, 0xf9, + 0x65, 0xd4, 0xd0, 0xe7, 0x02, 0xf1, 0x3d, 0x3c, 0x64, 0x63, 0x2a, 0x62, 0x32, 0xbf, 0x7b, 0xc3, + 0xc2, 0x15, 0xe5, 0xac, 0x0f, 0x0f, 0xe2, 0x47, 0x32, 0x72, 0x61, 0xcb, 0x8f, 0xea, 0x0a, 0x18, + 0xd5, 0x88, 0x2b, 0xb7, 0x41, 0xcc, 0x4f, 0xe3, 0x23, 0x8d, 0xf5, 0x77, 0x13, 0xe0, 0x88, 0xfa, + 0xff, 0x05, 0xba, 0x1e, 0xc2, 0x16, 0x17, 0x38, 0x14, 0xde, 0x45, 0xd2, 0x72, 0xca, 0xe0, 0x4c, + 0x99, 0x7b, 0x1f, 0x72, 0x84, 0xfa, 0x73, 0x9e, 0xd1, 0xcb, 0x22, 0x43, 0xa8, 0xef, 0x5c, 0xcb, + 0xf0, 0xca, 0x5b, 0x67, 0x78, 0xf5, 0x3f, 0x63, 0x98, 0x42, 0x6e, 0x4a, 0x70, 0x75, 0x80, 0x83, + 0x21, 0x72, 0x60, 0xa5, 0xc3, 0x7c, 0xcd, 0xeb, 0x0d, 0xf7, 0xbb, 0x85, 0x60, 0x9b, 0xf9, 0x13, + 0x57, 0x85, 0xa3, 0x77, 0x60, 0x75, 0x14, 0x32, 0x76, 0x12, 0x0f, 0x40, 0x24, 0x58, 0x5f, 0x9b, + 0x70, 0xe7, 0x92, 0x98, 0xff, 0xb5, 0xd6, 0x7e, 0x04, 0xeb, 0x23, 0x42, 0xf1, 0x40, 0x4c, 0xae, + 0x68, 0xe9, 0x02, 0x4d, 0xcd, 0xc8, 0xd9, 0xd5, 0x51, 0xc8, 0x93, 0x57, 0xa8, 0x81, 0xfa, 0xcc, + 0xe8, 0xb2, 0xe1, 0x30, 0x10, 0x43, 0x92, 0x34, 0xf3, 0x07, 0x37, 0xd4, 0x6b, 0x47, 0x81, 0xd5, + 0x24, 0xce, 0xdd, 0xea, 0x2c, 0xaa, 0xac, 0x5f, 0x2e, 0x5f, 0x20, 0xba, 0x39, 0xc0, 0xf4, 0xff, + 0x8e, 0xe8, 0x26, 0xe4, 0xa7, 0x97, 0x86, 0x37, 0x99, 0x99, 0xe9, 0xed, 0x29, 0x1e, 0xc3, 0xef, + 0xc9, 0x7b, 0x72, 0xd4, 0xba, 0xce, 0x20, 0x50, 0x96, 0xc2, 0x9a, 0xda, 0xe3, 0xb9, 0x58, 0x6f, + 0xc7, 0x6a, 0xeb, 0xf7, 0x06, 0x6c, 0xd5, 0x92, 0x91, 0xab, 0xaa, 0x3b, 0x31, 0x47, 0x07, 0xf2, + 0x03, 0x59, 0x2b, 0xf5, 0xc7, 0xdf, 0x0d, 0xaf, 0x30, 0xfd, 0xca, 0x70, 0x67, 0x43, 0x51, 0x03, + 0x32, 0x63, 0x3a, 0x8b, 0x65, 0x2a, 0xac, 0xd2, 0xeb, 0xce, 0xac, 0x3b, 0x1f, 0x6e, 0x0d, 0x60, + 0xed, 0x68, 0x24, 0x82, 0x21, 0x41, 0x8f, 0x00, 0x61, 0xee, 0xb1, 0x13, 0xaf, 0x33, 0x60, 0xdd, + 0x97, 0x5e, 0x9f, 0x04, 0xbd, 0xbe, 0x88, 0x3f, 0x1a, 0x72, 0x98, 0x1f, 0x9e, 0xd8, 0x52, 0x7f, + 0xa0, 0xd4, 0xe8, 0x01, 0xc0, 0x59, 0x40, 0x7d, 0x76, 0xe6, 0x0d, 0x08, 0x8d, 0x3f, 0xbf, 0x52, + 0x91, 0xe6, 0x19, 0xa1, 0xe8, 0x9b, 0xb0, 0xd6, 0x09, 0xc4, 0x29, 0xe9, 0xaa, 0x16, 0x6f, 0xba, + 0xb1, 0x64, 0xfd, 0x1c, 0xde, 0xa9, 0x8e, 0xc3, 0x90, 0x50, 0x51, 0x9d, 0xf9, 0xdb, 0xc0, 0x91, + 0x0b, 0xd9, 0xb9, 0x7f, 0x12, 0x9a, 0xa2, 0x47, 0x37, 0x34, 0x6c, 0x16, 0xc5, 0xcd, 0xcc, 0xfe, + 0xc1, 0xe0, 0xd6, 0x0e, 0xac, 0xc7, 0x5b, 0x43, 0x1e, 0x4c, 0x01, 0xa5, 0x24, 0x8c, 0xab, 0x89, + 0x04, 0xfb, 0x0f, 0xe6, 0x9f, 0xcf, 0xb7, 0x8d, 0xaf, 0xce, 0xb7, 0x8d, 0x7f, 0x9c, 0x6f, 0x1b, + 0xbf, 0x79, 0xb5, 0xbd, 0xf4, 0xd5, 0xab, 0xed, 0xa5, 0xbf, 0xbd, 0xda, 0x5e, 0x82, 0x62, 0x97, + 0x0d, 0xaf, 0x65, 0xd4, 0x86, 0x96, 0x94, 0x9b, 0x21, 0x13, 0xac, 0x69, 0xfc, 0xec, 0xb8, 0x17, + 0x88, 0xfe, 0xb8, 0x53, 0xee, 0xb2, 0xe1, 0x6e, 0x97, 0xf1, 0x21, 0xe3, 0xbb, 0x21, 0x19, 0xe0, + 0x09, 0x09, 0x77, 0x4f, 0xf7, 0x92, 0xc7, 0x6e, 0x1f, 0x07, 0x94, 0xef, 0x5e, 0xf7, 0x43, 0xe9, + 0x43, 0x25, 0x6a, 0xe9, 0xb7, 0xe6, 0x72, 0xb3, 0xda, 0xfa, 0xd2, 0xbc, 0xdf, 0xd4, 0xa9, 0x54, + 0x65, 0x2a, 0x6a, 0xe9, 0xf2, 0x71, 0xec, 0xf4, 0x97, 0xa9, 0xf9, 0x85, 0x34, 0xbf, 0x50, 0xe6, + 0x17, 0xda, 0x7c, 0x6e, 0x96, 0xae, 0x33, 0xbf, 0x78, 0xda, 0xb4, 0x9f, 0x13, 0x81, 0xe5, 0xd5, + 0xea, 0x5f, 0xe6, 0x8e, 0x76, 0xdd, 0xdf, 0x97, 0xbe, 0xfb, 0xfb, 0xca, 0x79, 0x7f, 0x5f, 0x7b, + 0x77, 0xd6, 0xd4, 0x0f, 0xaa, 0x1f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x80, 0xfc, 0xaf, 0xcd, + 0x16, 0x13, 0x00, 0x00, +} + +func (m *Validator) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Validator) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.GovernanceKey != nil { + { + size, err := m.GovernanceKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.Enabled { + i-- + if m.Enabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if m.SequenceNumber != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.SequenceNumber)) + i-- + dAtA[i] = 0x38 + } + if len(m.FundingStreams) > 0 { + for iNdEx := len(m.FundingStreams) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.FundingStreams[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintStake(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x2a + } + if len(m.Website) > 0 { + i -= len(m.Website) + copy(dAtA[i:], m.Website) + i = encodeVarintStake(dAtA, i, uint64(len(m.Website))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintStake(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + } + if len(m.ConsensusKey) > 0 { + i -= len(m.ConsensusKey) + copy(dAtA[i:], m.ConsensusKey) + i = encodeVarintStake(dAtA, i, uint64(len(m.ConsensusKey))) + i-- + dAtA[i] = 0x12 + } + if m.IdentityKey != nil { + { + size, err := m.IdentityKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidatorList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ValidatorKeys) > 0 { + for iNdEx := len(m.ValidatorKeys) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ValidatorKeys[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FundingStream) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FundingStream) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FundingStream) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Recipient != nil { + { + size := m.Recipient.Size() + i -= size + if _, err := m.Recipient.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *FundingStream_ToAddress_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FundingStream_ToAddress_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ToAddress != nil { + { + size, err := m.ToAddress.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *FundingStream_ToDao_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FundingStream_ToDao_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ToDao != nil { + { + size, err := m.ToDao.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *FundingStream_ToAddress) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FundingStream_ToAddress) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FundingStream_ToAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RateBps != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.RateBps)) + i-- + dAtA[i] = 0x10 + } + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintStake(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FundingStream_ToDao) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FundingStream_ToDao) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FundingStream_ToDao) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RateBps != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.RateBps)) + i-- + dAtA[i] = 0x10 + } + return len(dAtA) - i, nil +} + +func (m *RateData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RateData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RateData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ValidatorExchangeRate != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.ValidatorExchangeRate)) + i-- + dAtA[i] = 0x28 + } + if m.ValidatorRewardRate != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.ValidatorRewardRate)) + i-- + dAtA[i] = 0x20 + } + if m.EpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.EpochIndex)) + i-- + dAtA[i] = 0x10 + } + if m.IdentityKey != nil { + { + size, err := m.IdentityKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BaseRateData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BaseRateData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BaseRateData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.BaseExchangeRate != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.BaseExchangeRate)) + i-- + dAtA[i] = 0x18 + } + if m.BaseRewardRate != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.BaseRewardRate)) + i-- + dAtA[i] = 0x10 + } + if m.EpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.EpochIndex)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ValidatorStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.BondingState != nil { + { + size, err := m.BondingState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.VotingPower != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.VotingPower)) + i-- + dAtA[i] = 0x18 + } + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.IdentityKey != nil { + { + size, err := m.IdentityKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BondingState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BondingState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BondingState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XUnbondingEpoch != nil { + { + size := m.XUnbondingEpoch.Size() + i -= size + if _, err := m.XUnbondingEpoch.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.State != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.State)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *BondingState_UnbondingEpoch) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BondingState_UnbondingEpoch) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintStake(dAtA, i, uint64(m.UnbondingEpoch)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *ValidatorState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.State != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.State)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ValidatorInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RateData != nil { + { + size, err := m.RateData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Status != nil { + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Validator != nil { + { + size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidatorDefinition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorDefinition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorDefinition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AuthSig) > 0 { + i -= len(m.AuthSig) + copy(dAtA[i:], m.AuthSig) + i = encodeVarintStake(dAtA, i, uint64(len(m.AuthSig))) + i-- + dAtA[i] = 0x12 + } + if m.Validator != nil { + { + size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Delegate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Delegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Delegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DelegationAmount != nil { + { + size, err := m.DelegationAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.UnbondedAmount != nil { + { + size, err := m.UnbondedAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.EpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.EpochIndex)) + i-- + dAtA[i] = 0x10 + } + if m.ValidatorIdentity != nil { + { + size, err := m.ValidatorIdentity.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Undelegate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Undelegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Undelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DelegationAmount != nil { + { + size, err := m.DelegationAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.UnbondedAmount != nil { + { + size, err := m.UnbondedAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.EndEpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.EndEpochIndex)) + i-- + dAtA[i] = 0x18 + } + if m.StartEpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.StartEpochIndex)) + i-- + dAtA[i] = 0x10 + } + if m.ValidatorIdentity != nil { + { + size, err := m.ValidatorIdentity.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UndelegateClaim) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UndelegateClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UndelegateClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Proof) > 0 { + i -= len(m.Proof) + copy(dAtA[i:], m.Proof) + i = encodeVarintStake(dAtA, i, uint64(len(m.Proof))) + i-- + dAtA[i] = 0x12 + } + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UndelegateClaimBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UndelegateClaimBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UndelegateClaimBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.BalanceCommitment != nil { + { + size, err := m.BalanceCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Penalty != nil { + { + size, err := m.Penalty.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.EndEpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.EndEpochIndex)) + i-- + dAtA[i] = 0x18 + } + if m.StartEpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.StartEpochIndex)) + i-- + dAtA[i] = 0x10 + } + if m.ValidatorIdentity != nil { + { + size, err := m.ValidatorIdentity.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UndelegateClaimPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UndelegateClaimPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UndelegateClaimPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.BalanceBlinding) > 0 { + i -= len(m.BalanceBlinding) + copy(dAtA[i:], m.BalanceBlinding) + i = encodeVarintStake(dAtA, i, uint64(len(m.BalanceBlinding))) + i-- + dAtA[i] = 0x32 + } + if m.UnbondingAmount != nil { + { + size, err := m.UnbondingAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Penalty != nil { + { + size, err := m.Penalty.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.EndEpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.EndEpochIndex)) + i-- + dAtA[i] = 0x18 + } + if m.StartEpochIndex != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.StartEpochIndex)) + i-- + dAtA[i] = 0x10 + } + if m.ValidatorIdentity != nil { + { + size, err := m.ValidatorIdentity.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DelegationChanges) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DelegationChanges) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegationChanges) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Undelegations) > 0 { + for iNdEx := len(m.Undelegations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Undelegations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Delegations) > 0 { + for iNdEx := len(m.Delegations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Delegations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Uptime) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Uptime) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Uptime) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Bitvec) > 0 { + i -= len(m.Bitvec) + copy(dAtA[i:], m.Bitvec) + i = encodeVarintStake(dAtA, i, uint64(len(m.Bitvec))) + i-- + dAtA[i] = 0x1a + } + if m.WindowLen != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.WindowLen)) + i-- + dAtA[i] = 0x10 + } + if m.AsOfBlockHeight != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.AsOfBlockHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *CurrentConsensusKeys) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CurrentConsensusKeys) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CurrentConsensusKeys) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ConsensusKeys) > 0 { + for iNdEx := len(m.ConsensusKeys) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ConsensusKeys[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStake(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Penalty) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Penalty) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Penalty) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Inner != 0 { + i = encodeVarintStake(dAtA, i, uint64(m.Inner)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintStake(dAtA []byte, offset int, v uint64) int { + offset -= sovStake(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Validator) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.IdentityKey != nil { + l = m.IdentityKey.Size() + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.ConsensusKey) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.Website) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + if len(m.FundingStreams) > 0 { + for _, e := range m.FundingStreams { + l = e.Size() + n += 1 + l + sovStake(uint64(l)) + } + } + if m.SequenceNumber != 0 { + n += 1 + sovStake(uint64(m.SequenceNumber)) + } + if m.Enabled { + n += 2 + } + if m.GovernanceKey != nil { + l = m.GovernanceKey.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *ValidatorList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ValidatorKeys) > 0 { + for _, e := range m.ValidatorKeys { + l = e.Size() + n += 1 + l + sovStake(uint64(l)) + } + } + return n +} + +func (m *FundingStream) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Recipient != nil { + n += m.Recipient.Size() + } + return n +} + +func (m *FundingStream_ToAddress_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ToAddress != nil { + l = m.ToAddress.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} +func (m *FundingStream_ToDao_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ToDao != nil { + l = m.ToDao.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} +func (m *FundingStream_ToAddress) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + if m.RateBps != 0 { + n += 1 + sovStake(uint64(m.RateBps)) + } + return n +} + +func (m *FundingStream_ToDao) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RateBps != 0 { + n += 1 + sovStake(uint64(m.RateBps)) + } + return n +} + +func (m *RateData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.IdentityKey != nil { + l = m.IdentityKey.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.EpochIndex != 0 { + n += 1 + sovStake(uint64(m.EpochIndex)) + } + if m.ValidatorRewardRate != 0 { + n += 1 + sovStake(uint64(m.ValidatorRewardRate)) + } + if m.ValidatorExchangeRate != 0 { + n += 1 + sovStake(uint64(m.ValidatorExchangeRate)) + } + return n +} + +func (m *BaseRateData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.EpochIndex != 0 { + n += 1 + sovStake(uint64(m.EpochIndex)) + } + if m.BaseRewardRate != 0 { + n += 1 + sovStake(uint64(m.BaseRewardRate)) + } + if m.BaseExchangeRate != 0 { + n += 1 + sovStake(uint64(m.BaseExchangeRate)) + } + return n +} + +func (m *ValidatorStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.IdentityKey != nil { + l = m.IdentityKey.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.State != nil { + l = m.State.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.VotingPower != 0 { + n += 1 + sovStake(uint64(m.VotingPower)) + } + if m.BondingState != nil { + l = m.BondingState.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *BondingState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != 0 { + n += 1 + sovStake(uint64(m.State)) + } + if m.XUnbondingEpoch != nil { + n += m.XUnbondingEpoch.Size() + } + return n +} + +func (m *BondingState_UnbondingEpoch) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovStake(uint64(m.UnbondingEpoch)) + return n +} +func (m *ValidatorState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != 0 { + n += 1 + sovStake(uint64(m.State)) + } + return n +} + +func (m *ValidatorInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Validator != nil { + l = m.Validator.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.Status != nil { + l = m.Status.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.RateData != nil { + l = m.RateData.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *ValidatorDefinition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Validator != nil { + l = m.Validator.Size() + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.AuthSig) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *Delegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorIdentity != nil { + l = m.ValidatorIdentity.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.EpochIndex != 0 { + n += 1 + sovStake(uint64(m.EpochIndex)) + } + if m.UnbondedAmount != nil { + l = m.UnbondedAmount.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.DelegationAmount != nil { + l = m.DelegationAmount.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *Undelegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorIdentity != nil { + l = m.ValidatorIdentity.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.StartEpochIndex != 0 { + n += 1 + sovStake(uint64(m.StartEpochIndex)) + } + if m.EndEpochIndex != 0 { + n += 1 + sovStake(uint64(m.EndEpochIndex)) + } + if m.UnbondedAmount != nil { + l = m.UnbondedAmount.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.DelegationAmount != nil { + l = m.DelegationAmount.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *UndelegateClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.Proof) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *UndelegateClaimBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorIdentity != nil { + l = m.ValidatorIdentity.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.StartEpochIndex != 0 { + n += 1 + sovStake(uint64(m.StartEpochIndex)) + } + if m.EndEpochIndex != 0 { + n += 1 + sovStake(uint64(m.EndEpochIndex)) + } + if m.Penalty != nil { + l = m.Penalty.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.BalanceCommitment != nil { + l = m.BalanceCommitment.Size() + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *UndelegateClaimPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorIdentity != nil { + l = m.ValidatorIdentity.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.StartEpochIndex != 0 { + n += 1 + sovStake(uint64(m.StartEpochIndex)) + } + if m.EndEpochIndex != 0 { + n += 1 + sovStake(uint64(m.EndEpochIndex)) + } + if m.Penalty != nil { + l = m.Penalty.Size() + n += 1 + l + sovStake(uint64(l)) + } + if m.UnbondingAmount != nil { + l = m.UnbondingAmount.Size() + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.BalanceBlinding) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *DelegationChanges) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Delegations) > 0 { + for _, e := range m.Delegations { + l = e.Size() + n += 1 + l + sovStake(uint64(l)) + } + } + if len(m.Undelegations) > 0 { + for _, e := range m.Undelegations { + l = e.Size() + n += 1 + l + sovStake(uint64(l)) + } + } + return n +} + +func (m *Uptime) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AsOfBlockHeight != 0 { + n += 1 + sovStake(uint64(m.AsOfBlockHeight)) + } + if m.WindowLen != 0 { + n += 1 + sovStake(uint64(m.WindowLen)) + } + l = len(m.Bitvec) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + return n +} + +func (m *CurrentConsensusKeys) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ConsensusKeys) > 0 { + for _, e := range m.ConsensusKeys { + l = e.Size() + n += 1 + l + sovStake(uint64(l)) + } + } + return n +} + +func (m *Penalty) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Inner != 0 { + n += 1 + sovStake(uint64(m.Inner)) + } + return n +} + +func sovStake(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozStake(x uint64) (n int) { + return sovStake(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Validator) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Validator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Validator: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdentityKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdentityKey == nil { + m.IdentityKey = &v1alpha1.IdentityKey{} + } + if err := m.IdentityKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConsensusKey = append(m.ConsensusKey[:0], dAtA[iNdEx:postIndex]...) + if m.ConsensusKey == nil { + m.ConsensusKey = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Website", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Website = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FundingStreams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FundingStreams = append(m.FundingStreams, &FundingStream{}) + if err := m.FundingStreams[len(m.FundingStreams)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SequenceNumber", wireType) + } + m.SequenceNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SequenceNumber |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Enabled = bool(v != 0) + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GovernanceKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.GovernanceKey == nil { + m.GovernanceKey = &v1alpha1.GovernanceKey{} + } + if err := m.GovernanceKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorKeys", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorKeys = append(m.ValidatorKeys, &v1alpha1.IdentityKey{}) + if err := m.ValidatorKeys[len(m.ValidatorKeys)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FundingStream) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FundingStream: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FundingStream: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ToAddress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &FundingStream_ToAddress{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Recipient = &FundingStream_ToAddress_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ToDao", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &FundingStream_ToDao{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Recipient = &FundingStream_ToDao_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FundingStream_ToAddress) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ToAddress: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ToAddress: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RateBps", wireType) + } + m.RateBps = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RateBps |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FundingStream_ToDao) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ToDao: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ToDao: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RateBps", wireType) + } + m.RateBps = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RateBps |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RateData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RateData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RateData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdentityKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdentityKey == nil { + m.IdentityKey = &v1alpha1.IdentityKey{} + } + if err := m.IdentityKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochIndex", wireType) + } + m.EpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorRewardRate", wireType) + } + m.ValidatorRewardRate = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ValidatorRewardRate |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorExchangeRate", wireType) + } + m.ValidatorExchangeRate = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ValidatorExchangeRate |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BaseRateData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BaseRateData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BaseRateData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochIndex", wireType) + } + m.EpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseRewardRate", wireType) + } + m.BaseRewardRate = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseRewardRate |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseExchangeRate", wireType) + } + m.BaseExchangeRate = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseExchangeRate |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdentityKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdentityKey == nil { + m.IdentityKey = &v1alpha1.IdentityKey{} + } + if err := m.IdentityKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.State == nil { + m.State = &ValidatorState{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field VotingPower", wireType) + } + m.VotingPower = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.VotingPower |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BondingState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BondingState == nil { + m.BondingState = &BondingState{} + } + if err := m.BondingState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BondingState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BondingState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BondingState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + m.State = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.State |= BondingState_BondingStateEnum(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingEpoch", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.XUnbondingEpoch = &BondingState_UnbondingEpoch{v} + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + m.State = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.State |= ValidatorState_ValidatorStateEnum(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Validator == nil { + m.Validator = &Validator{} + } + if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Status == nil { + m.Status = &ValidatorStatus{} + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RateData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RateData == nil { + m.RateData = &RateData{} + } + if err := m.RateData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorDefinition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorDefinition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorDefinition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Validator == nil { + m.Validator = &Validator{} + } + if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthSig", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AuthSig = append(m.AuthSig[:0], dAtA[iNdEx:postIndex]...) + if m.AuthSig == nil { + m.AuthSig = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Delegate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Delegate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Delegate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorIdentity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ValidatorIdentity == nil { + m.ValidatorIdentity = &v1alpha1.IdentityKey{} + } + if err := m.ValidatorIdentity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochIndex", wireType) + } + m.EpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondedAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UnbondedAmount == nil { + m.UnbondedAmount = &v1alpha1.Amount{} + } + if err := m.UnbondedAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegationAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DelegationAmount == nil { + m.DelegationAmount = &v1alpha1.Amount{} + } + if err := m.DelegationAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Undelegate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Undelegate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Undelegate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorIdentity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ValidatorIdentity == nil { + m.ValidatorIdentity = &v1alpha1.IdentityKey{} + } + if err := m.ValidatorIdentity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartEpochIndex", wireType) + } + m.StartEpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartEpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndEpochIndex", wireType) + } + m.EndEpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EndEpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondedAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UnbondedAmount == nil { + m.UnbondedAmount = &v1alpha1.Amount{} + } + if err := m.UnbondedAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegationAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DelegationAmount == nil { + m.DelegationAmount = &v1alpha1.Amount{} + } + if err := m.DelegationAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UndelegateClaim) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UndelegateClaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UndelegateClaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &UndelegateClaimBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Proof = append(m.Proof[:0], dAtA[iNdEx:postIndex]...) + if m.Proof == nil { + m.Proof = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UndelegateClaimBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UndelegateClaimBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UndelegateClaimBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorIdentity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ValidatorIdentity == nil { + m.ValidatorIdentity = &v1alpha1.IdentityKey{} + } + if err := m.ValidatorIdentity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartEpochIndex", wireType) + } + m.StartEpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartEpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndEpochIndex", wireType) + } + m.EndEpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EndEpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Penalty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Penalty == nil { + m.Penalty = &Penalty{} + } + if err := m.Penalty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BalanceCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BalanceCommitment == nil { + m.BalanceCommitment = &v1alpha1.BalanceCommitment{} + } + if err := m.BalanceCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UndelegateClaimPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UndelegateClaimPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UndelegateClaimPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorIdentity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ValidatorIdentity == nil { + m.ValidatorIdentity = &v1alpha1.IdentityKey{} + } + if err := m.ValidatorIdentity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartEpochIndex", wireType) + } + m.StartEpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartEpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndEpochIndex", wireType) + } + m.EndEpochIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EndEpochIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Penalty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Penalty == nil { + m.Penalty = &Penalty{} + } + if err := m.Penalty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UnbondingAmount == nil { + m.UnbondingAmount = &v1alpha1.Amount{} + } + if err := m.UnbondingAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BalanceBlinding", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BalanceBlinding = append(m.BalanceBlinding[:0], dAtA[iNdEx:postIndex]...) + if m.BalanceBlinding == nil { + m.BalanceBlinding = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DelegationChanges) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DelegationChanges: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DelegationChanges: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delegations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Delegations = append(m.Delegations, &Delegate{}) + if err := m.Delegations[len(m.Delegations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Undelegations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Undelegations = append(m.Undelegations, &Undelegate{}) + if err := m.Undelegations[len(m.Undelegations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Uptime) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Uptime: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Uptime: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AsOfBlockHeight", wireType) + } + m.AsOfBlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AsOfBlockHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowLen", wireType) + } + m.WindowLen = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.WindowLen |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bitvec", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bitvec = append(m.Bitvec[:0], dAtA[iNdEx:postIndex]...) + if m.Bitvec == nil { + m.Bitvec = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CurrentConsensusKeys) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CurrentConsensusKeys: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CurrentConsensusKeys: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusKeys", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConsensusKeys = append(m.ConsensusKeys, &v1alpha1.ConsensusKey{}) + if err := m.ConsensusKeys[len(m.ConsensusKeys)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Penalty) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Penalty: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Penalty: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + m.Inner = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Inner |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipStake(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStake + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipStake(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowStake + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowStake + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowStake + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthStake + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupStake + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthStake + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthStake = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowStake = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupStake = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go new file mode 100644 index 000000000..4b501bab7 --- /dev/null +++ b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go @@ -0,0 +1,14147 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/transaction/v1alpha1/transaction.proto + +package transactionv1alpha1 + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" + v1alpha14 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/governance/v1alpha1" + v1alpha13 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/ibc/v1alpha1" + v1alpha12 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/stake/v1alpha1" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// A Penumbra transaction. +type Transaction struct { + Body *TransactionBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The binding signature is stored separately from the transaction body that it signs. + BindingSig []byte `protobuf:"bytes,2,opt,name=binding_sig,json=bindingSig,proto3" json:"binding_sig,omitempty"` + // The root of some previous state of the state commitment tree, used as an anchor for all + // ZK state transition proofs. + Anchor *v1alpha1.MerkleRoot `protobuf:"bytes,3,opt,name=anchor,proto3" json:"anchor,omitempty"` +} + +func (m *Transaction) Reset() { *m = Transaction{} } +func (m *Transaction) String() string { return proto.CompactTextString(m) } +func (*Transaction) ProtoMessage() {} +func (*Transaction) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{0} +} +func (m *Transaction) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Transaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Transaction.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Transaction) XXX_Merge(src proto.Message) { + xxx_messageInfo_Transaction.Merge(m, src) +} +func (m *Transaction) XXX_Size() int { + return m.Size() +} +func (m *Transaction) XXX_DiscardUnknown() { + xxx_messageInfo_Transaction.DiscardUnknown(m) +} + +var xxx_messageInfo_Transaction proto.InternalMessageInfo + +func (m *Transaction) GetBody() *TransactionBody { + if m != nil { + return m.Body + } + return nil +} + +func (m *Transaction) GetBindingSig() []byte { + if m != nil { + return m.BindingSig + } + return nil +} + +func (m *Transaction) GetAnchor() *v1alpha1.MerkleRoot { + if m != nil { + return m.Anchor + } + return nil +} + +// A transaction ID, the Sha256 hash of a transaction. +type Id struct { + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` +} + +func (m *Id) Reset() { *m = Id{} } +func (m *Id) String() string { return proto.CompactTextString(m) } +func (*Id) ProtoMessage() {} +func (*Id) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{1} +} +func (m *Id) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Id) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Id.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Id) XXX_Merge(src proto.Message) { + xxx_messageInfo_Id.Merge(m, src) +} +func (m *Id) XXX_Size() int { + return m.Size() +} +func (m *Id) XXX_DiscardUnknown() { + xxx_messageInfo_Id.DiscardUnknown(m) +} + +var xxx_messageInfo_Id proto.InternalMessageInfo + +func (m *Id) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +// The body of a transaction. +type TransactionBody struct { + // A list of actions (state changes) performed by this transaction. + Actions []*Action `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` + // The maximum height that this transaction can be included in the chain. + // + // If zero, there is no maximum. + ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` + // The chain this transaction is intended for. Including this prevents + // replaying a transaction on one chain onto a different chain. + ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // The transaction fee. + Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` + // A list of clues for use with Fuzzy Message Detection. + FmdClues []*v1alpha1.Clue `protobuf:"bytes,5,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` + // Types that are valid to be assigned to XEncryptedMemo: + // *TransactionBody_EncryptedMemo + XEncryptedMemo isTransactionBody_XEncryptedMemo `protobuf_oneof:"_encrypted_memo"` +} + +func (m *TransactionBody) Reset() { *m = TransactionBody{} } +func (m *TransactionBody) String() string { return proto.CompactTextString(m) } +func (*TransactionBody) ProtoMessage() {} +func (*TransactionBody) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{2} +} +func (m *TransactionBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionBody.Merge(m, src) +} +func (m *TransactionBody) XXX_Size() int { + return m.Size() +} +func (m *TransactionBody) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionBody.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionBody proto.InternalMessageInfo + +type isTransactionBody_XEncryptedMemo interface { + isTransactionBody_XEncryptedMemo() + MarshalTo([]byte) (int, error) + Size() int +} + +type TransactionBody_EncryptedMemo struct { + EncryptedMemo []byte `protobuf:"bytes,6,opt,name=encrypted_memo,json=encryptedMemo,proto3,oneof" json:"encrypted_memo,omitempty"` +} + +func (*TransactionBody_EncryptedMemo) isTransactionBody_XEncryptedMemo() {} + +func (m *TransactionBody) GetXEncryptedMemo() isTransactionBody_XEncryptedMemo { + if m != nil { + return m.XEncryptedMemo + } + return nil +} + +func (m *TransactionBody) GetActions() []*Action { + if m != nil { + return m.Actions + } + return nil +} + +func (m *TransactionBody) GetExpiryHeight() uint64 { + if m != nil { + return m.ExpiryHeight + } + return 0 +} + +func (m *TransactionBody) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *TransactionBody) GetFee() *v1alpha1.Fee { + if m != nil { + return m.Fee + } + return nil +} + +func (m *TransactionBody) GetFmdClues() []*v1alpha1.Clue { + if m != nil { + return m.FmdClues + } + return nil +} + +func (m *TransactionBody) GetEncryptedMemo() []byte { + if x, ok := m.GetXEncryptedMemo().(*TransactionBody_EncryptedMemo); ok { + return x.EncryptedMemo + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransactionBody) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransactionBody_EncryptedMemo)(nil), + } +} + +// A state change performed by a transaction. +type Action struct { + // Types that are valid to be assigned to Action: + // *Action_Spend + // *Action_Output + // *Action_Swap + // *Action_SwapClaim + // *Action_ValidatorDefinition + // *Action_IbcAction + // *Action_ProposalSubmit + // *Action_ProposalWithdraw + // *Action_ValidatorVote + // *Action_DelegatorVote + // *Action_ProposalDepositClaim + // *Action_PositionOpen + // *Action_PositionClose + // *Action_PositionWithdraw + // *Action_PositionRewardClaim + // *Action_Delegate + // *Action_Undelegate + // *Action_UndelegateClaim + // *Action_DaoSpend + // *Action_DaoOutput + // *Action_DaoDeposit + // *Action_Ics20Withdrawal + Action isAction_Action `protobuf_oneof:"action"` +} + +func (m *Action) Reset() { *m = Action{} } +func (m *Action) String() string { return proto.CompactTextString(m) } +func (*Action) ProtoMessage() {} +func (*Action) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{3} +} +func (m *Action) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Action.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Action) XXX_Merge(src proto.Message) { + xxx_messageInfo_Action.Merge(m, src) +} +func (m *Action) XXX_Size() int { + return m.Size() +} +func (m *Action) XXX_DiscardUnknown() { + xxx_messageInfo_Action.DiscardUnknown(m) +} + +var xxx_messageInfo_Action proto.InternalMessageInfo + +type isAction_Action interface { + isAction_Action() + MarshalTo([]byte) (int, error) + Size() int +} + +type Action_Spend struct { + Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3,oneof" json:"spend,omitempty"` +} +type Action_Output struct { + Output *Output `protobuf:"bytes,2,opt,name=output,proto3,oneof" json:"output,omitempty"` +} +type Action_Swap struct { + Swap *v1alpha11.Swap `protobuf:"bytes,3,opt,name=swap,proto3,oneof" json:"swap,omitempty"` +} +type Action_SwapClaim struct { + SwapClaim *v1alpha11.SwapClaim `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof" json:"swap_claim,omitempty"` +} +type Action_ValidatorDefinition struct { + ValidatorDefinition *v1alpha12.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof" json:"validator_definition,omitempty"` +} +type Action_IbcAction struct { + IbcAction *v1alpha13.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof" json:"ibc_action,omitempty"` +} +type Action_ProposalSubmit struct { + ProposalSubmit *v1alpha14.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof" json:"proposal_submit,omitempty"` +} +type Action_ProposalWithdraw struct { + ProposalWithdraw *v1alpha14.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof" json:"proposal_withdraw,omitempty"` +} +type Action_ValidatorVote struct { + ValidatorVote *v1alpha14.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof" json:"validator_vote,omitempty"` +} +type Action_DelegatorVote struct { + DelegatorVote *v1alpha14.DelegatorVote `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof" json:"delegator_vote,omitempty"` +} +type Action_ProposalDepositClaim struct { + ProposalDepositClaim *v1alpha14.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof" json:"proposal_deposit_claim,omitempty"` +} +type Action_PositionOpen struct { + PositionOpen *v1alpha11.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof" json:"position_open,omitempty"` +} +type Action_PositionClose struct { + PositionClose *v1alpha11.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof" json:"position_close,omitempty"` +} +type Action_PositionWithdraw struct { + PositionWithdraw *v1alpha11.PositionWithdraw `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof" json:"position_withdraw,omitempty"` +} +type Action_PositionRewardClaim struct { + PositionRewardClaim *v1alpha11.PositionRewardClaim `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof" json:"position_reward_claim,omitempty"` +} +type Action_Delegate struct { + Delegate *v1alpha12.Delegate `protobuf:"bytes,40,opt,name=delegate,proto3,oneof" json:"delegate,omitempty"` +} +type Action_Undelegate struct { + Undelegate *v1alpha12.Undelegate `protobuf:"bytes,41,opt,name=undelegate,proto3,oneof" json:"undelegate,omitempty"` +} +type Action_UndelegateClaim struct { + UndelegateClaim *v1alpha12.UndelegateClaim `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof" json:"undelegate_claim,omitempty"` +} +type Action_DaoSpend struct { + DaoSpend *v1alpha14.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof" json:"dao_spend,omitempty"` +} +type Action_DaoOutput struct { + DaoOutput *v1alpha14.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof" json:"dao_output,omitempty"` +} +type Action_DaoDeposit struct { + DaoDeposit *v1alpha14.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof" json:"dao_deposit,omitempty"` +} +type Action_Ics20Withdrawal struct { + Ics20Withdrawal *v1alpha13.Ics20Withdrawal `protobuf:"bytes,200,opt,name=ics20_withdrawal,json=ics20Withdrawal,proto3,oneof" json:"ics20_withdrawal,omitempty"` +} + +func (*Action_Spend) isAction_Action() {} +func (*Action_Output) isAction_Action() {} +func (*Action_Swap) isAction_Action() {} +func (*Action_SwapClaim) isAction_Action() {} +func (*Action_ValidatorDefinition) isAction_Action() {} +func (*Action_IbcAction) isAction_Action() {} +func (*Action_ProposalSubmit) isAction_Action() {} +func (*Action_ProposalWithdraw) isAction_Action() {} +func (*Action_ValidatorVote) isAction_Action() {} +func (*Action_DelegatorVote) isAction_Action() {} +func (*Action_ProposalDepositClaim) isAction_Action() {} +func (*Action_PositionOpen) isAction_Action() {} +func (*Action_PositionClose) isAction_Action() {} +func (*Action_PositionWithdraw) isAction_Action() {} +func (*Action_PositionRewardClaim) isAction_Action() {} +func (*Action_Delegate) isAction_Action() {} +func (*Action_Undelegate) isAction_Action() {} +func (*Action_UndelegateClaim) isAction_Action() {} +func (*Action_DaoSpend) isAction_Action() {} +func (*Action_DaoOutput) isAction_Action() {} +func (*Action_DaoDeposit) isAction_Action() {} +func (*Action_Ics20Withdrawal) isAction_Action() {} + +func (m *Action) GetAction() isAction_Action { + if m != nil { + return m.Action + } + return nil +} + +func (m *Action) GetSpend() *Spend { + if x, ok := m.GetAction().(*Action_Spend); ok { + return x.Spend + } + return nil +} + +func (m *Action) GetOutput() *Output { + if x, ok := m.GetAction().(*Action_Output); ok { + return x.Output + } + return nil +} + +func (m *Action) GetSwap() *v1alpha11.Swap { + if x, ok := m.GetAction().(*Action_Swap); ok { + return x.Swap + } + return nil +} + +func (m *Action) GetSwapClaim() *v1alpha11.SwapClaim { + if x, ok := m.GetAction().(*Action_SwapClaim); ok { + return x.SwapClaim + } + return nil +} + +func (m *Action) GetValidatorDefinition() *v1alpha12.ValidatorDefinition { + if x, ok := m.GetAction().(*Action_ValidatorDefinition); ok { + return x.ValidatorDefinition + } + return nil +} + +func (m *Action) GetIbcAction() *v1alpha13.IbcAction { + if x, ok := m.GetAction().(*Action_IbcAction); ok { + return x.IbcAction + } + return nil +} + +func (m *Action) GetProposalSubmit() *v1alpha14.ProposalSubmit { + if x, ok := m.GetAction().(*Action_ProposalSubmit); ok { + return x.ProposalSubmit + } + return nil +} + +func (m *Action) GetProposalWithdraw() *v1alpha14.ProposalWithdraw { + if x, ok := m.GetAction().(*Action_ProposalWithdraw); ok { + return x.ProposalWithdraw + } + return nil +} + +func (m *Action) GetValidatorVote() *v1alpha14.ValidatorVote { + if x, ok := m.GetAction().(*Action_ValidatorVote); ok { + return x.ValidatorVote + } + return nil +} + +func (m *Action) GetDelegatorVote() *v1alpha14.DelegatorVote { + if x, ok := m.GetAction().(*Action_DelegatorVote); ok { + return x.DelegatorVote + } + return nil +} + +func (m *Action) GetProposalDepositClaim() *v1alpha14.ProposalDepositClaim { + if x, ok := m.GetAction().(*Action_ProposalDepositClaim); ok { + return x.ProposalDepositClaim + } + return nil +} + +func (m *Action) GetPositionOpen() *v1alpha11.PositionOpen { + if x, ok := m.GetAction().(*Action_PositionOpen); ok { + return x.PositionOpen + } + return nil +} + +func (m *Action) GetPositionClose() *v1alpha11.PositionClose { + if x, ok := m.GetAction().(*Action_PositionClose); ok { + return x.PositionClose + } + return nil +} + +func (m *Action) GetPositionWithdraw() *v1alpha11.PositionWithdraw { + if x, ok := m.GetAction().(*Action_PositionWithdraw); ok { + return x.PositionWithdraw + } + return nil +} + +func (m *Action) GetPositionRewardClaim() *v1alpha11.PositionRewardClaim { + if x, ok := m.GetAction().(*Action_PositionRewardClaim); ok { + return x.PositionRewardClaim + } + return nil +} + +func (m *Action) GetDelegate() *v1alpha12.Delegate { + if x, ok := m.GetAction().(*Action_Delegate); ok { + return x.Delegate + } + return nil +} + +func (m *Action) GetUndelegate() *v1alpha12.Undelegate { + if x, ok := m.GetAction().(*Action_Undelegate); ok { + return x.Undelegate + } + return nil +} + +func (m *Action) GetUndelegateClaim() *v1alpha12.UndelegateClaim { + if x, ok := m.GetAction().(*Action_UndelegateClaim); ok { + return x.UndelegateClaim + } + return nil +} + +func (m *Action) GetDaoSpend() *v1alpha14.DaoSpend { + if x, ok := m.GetAction().(*Action_DaoSpend); ok { + return x.DaoSpend + } + return nil +} + +func (m *Action) GetDaoOutput() *v1alpha14.DaoOutput { + if x, ok := m.GetAction().(*Action_DaoOutput); ok { + return x.DaoOutput + } + return nil +} + +func (m *Action) GetDaoDeposit() *v1alpha14.DaoDeposit { + if x, ok := m.GetAction().(*Action_DaoDeposit); ok { + return x.DaoDeposit + } + return nil +} + +func (m *Action) GetIcs20Withdrawal() *v1alpha13.Ics20Withdrawal { + if x, ok := m.GetAction().(*Action_Ics20Withdrawal); ok { + return x.Ics20Withdrawal + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Action) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Action_Spend)(nil), + (*Action_Output)(nil), + (*Action_Swap)(nil), + (*Action_SwapClaim)(nil), + (*Action_ValidatorDefinition)(nil), + (*Action_IbcAction)(nil), + (*Action_ProposalSubmit)(nil), + (*Action_ProposalWithdraw)(nil), + (*Action_ValidatorVote)(nil), + (*Action_DelegatorVote)(nil), + (*Action_ProposalDepositClaim)(nil), + (*Action_PositionOpen)(nil), + (*Action_PositionClose)(nil), + (*Action_PositionWithdraw)(nil), + (*Action_PositionRewardClaim)(nil), + (*Action_Delegate)(nil), + (*Action_Undelegate)(nil), + (*Action_UndelegateClaim)(nil), + (*Action_DaoSpend)(nil), + (*Action_DaoOutput)(nil), + (*Action_DaoDeposit)(nil), + (*Action_Ics20Withdrawal)(nil), + } +} + +// A transaction perspective is a bundle of key material and commitment openings +// that allow generating a view of a transaction from that perspective. +type TransactionPerspective struct { + PayloadKeys []*PayloadKeyWithCommitment `protobuf:"bytes,1,rep,name=payload_keys,json=payloadKeys,proto3" json:"payload_keys,omitempty"` + SpendNullifiers []*NullifierWithNote `protobuf:"bytes,2,rep,name=spend_nullifiers,json=spendNullifiers,proto3" json:"spend_nullifiers,omitempty"` + // The openings of note commitments referred to in the transaction + // but not included in the transaction. + AdviceNotes []*v1alpha1.Note `protobuf:"bytes,3,rep,name=advice_notes,json=adviceNotes,proto3" json:"advice_notes,omitempty"` + // Any relevant address views. + AddressViews []*v1alpha1.AddressView `protobuf:"bytes,4,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` +} + +func (m *TransactionPerspective) Reset() { *m = TransactionPerspective{} } +func (m *TransactionPerspective) String() string { return proto.CompactTextString(m) } +func (*TransactionPerspective) ProtoMessage() {} +func (*TransactionPerspective) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{4} +} +func (m *TransactionPerspective) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPerspective) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPerspective.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPerspective) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPerspective.Merge(m, src) +} +func (m *TransactionPerspective) XXX_Size() int { + return m.Size() +} +func (m *TransactionPerspective) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPerspective.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPerspective proto.InternalMessageInfo + +func (m *TransactionPerspective) GetPayloadKeys() []*PayloadKeyWithCommitment { + if m != nil { + return m.PayloadKeys + } + return nil +} + +func (m *TransactionPerspective) GetSpendNullifiers() []*NullifierWithNote { + if m != nil { + return m.SpendNullifiers + } + return nil +} + +func (m *TransactionPerspective) GetAdviceNotes() []*v1alpha1.Note { + if m != nil { + return m.AdviceNotes + } + return nil +} + +func (m *TransactionPerspective) GetAddressViews() []*v1alpha1.AddressView { + if m != nil { + return m.AddressViews + } + return nil +} + +type PayloadKeyWithCommitment struct { + PayloadKey []byte `protobuf:"bytes,1,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` + Commitment *v1alpha1.StateCommitment `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` +} + +func (m *PayloadKeyWithCommitment) Reset() { *m = PayloadKeyWithCommitment{} } +func (m *PayloadKeyWithCommitment) String() string { return proto.CompactTextString(m) } +func (*PayloadKeyWithCommitment) ProtoMessage() {} +func (*PayloadKeyWithCommitment) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{5} +} +func (m *PayloadKeyWithCommitment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PayloadKeyWithCommitment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PayloadKeyWithCommitment.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PayloadKeyWithCommitment) XXX_Merge(src proto.Message) { + xxx_messageInfo_PayloadKeyWithCommitment.Merge(m, src) +} +func (m *PayloadKeyWithCommitment) XXX_Size() int { + return m.Size() +} +func (m *PayloadKeyWithCommitment) XXX_DiscardUnknown() { + xxx_messageInfo_PayloadKeyWithCommitment.DiscardUnknown(m) +} + +var xxx_messageInfo_PayloadKeyWithCommitment proto.InternalMessageInfo + +func (m *PayloadKeyWithCommitment) GetPayloadKey() []byte { + if m != nil { + return m.PayloadKey + } + return nil +} + +func (m *PayloadKeyWithCommitment) GetCommitment() *v1alpha1.StateCommitment { + if m != nil { + return m.Commitment + } + return nil +} + +type NullifierWithNote struct { + Nullifier *v1alpha1.Nullifier `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` +} + +func (m *NullifierWithNote) Reset() { *m = NullifierWithNote{} } +func (m *NullifierWithNote) String() string { return proto.CompactTextString(m) } +func (*NullifierWithNote) ProtoMessage() {} +func (*NullifierWithNote) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{6} +} +func (m *NullifierWithNote) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NullifierWithNote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NullifierWithNote.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NullifierWithNote) XXX_Merge(src proto.Message) { + xxx_messageInfo_NullifierWithNote.Merge(m, src) +} +func (m *NullifierWithNote) XXX_Size() int { + return m.Size() +} +func (m *NullifierWithNote) XXX_DiscardUnknown() { + xxx_messageInfo_NullifierWithNote.DiscardUnknown(m) +} + +var xxx_messageInfo_NullifierWithNote proto.InternalMessageInfo + +func (m *NullifierWithNote) GetNullifier() *v1alpha1.Nullifier { + if m != nil { + return m.Nullifier + } + return nil +} + +func (m *NullifierWithNote) GetNote() *v1alpha1.Note { + if m != nil { + return m.Note + } + return nil +} + +type TransactionView struct { + // A list views into of actions (state changes) performed by this transaction. + ActionViews []*ActionView `protobuf:"bytes,1,rep,name=action_views,json=actionViews,proto3" json:"action_views,omitempty"` + // The maximum height that this transaction can be included in the chain. + // + // If zero, there is no maximum. + ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` + // The chain this transaction is intended for. Including this prevents + // replaying a transaction on one chain onto a different chain. + ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // The transaction fee. + Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` + // A list of clues for use with Fuzzy Message Detection. + FmdClues []*v1alpha1.Clue `protobuf:"bytes,5,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` + // Types that are valid to be assigned to XMemo: + // + // *TransactionView_Memo + XMemo isTransactionView_XMemo `protobuf_oneof:"_memo"` + // Any relevant address views. + AddressViews []*v1alpha1.AddressView `protobuf:"bytes,400,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` +} + +func (m *TransactionView) Reset() { *m = TransactionView{} } +func (m *TransactionView) String() string { return proto.CompactTextString(m) } +func (*TransactionView) ProtoMessage() {} +func (*TransactionView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{7} +} +func (m *TransactionView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionView) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionView.Merge(m, src) +} +func (m *TransactionView) XXX_Size() int { + return m.Size() +} +func (m *TransactionView) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionView.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionView proto.InternalMessageInfo + +type isTransactionView_XMemo interface { + isTransactionView_XMemo() + MarshalTo([]byte) (int, error) + Size() int +} + +type TransactionView_Memo struct { + Memo []byte `protobuf:"bytes,6,opt,name=memo,proto3,oneof" json:"memo,omitempty"` +} + +func (*TransactionView_Memo) isTransactionView_XMemo() {} + +func (m *TransactionView) GetXMemo() isTransactionView_XMemo { + if m != nil { + return m.XMemo + } + return nil +} + +func (m *TransactionView) GetActionViews() []*ActionView { + if m != nil { + return m.ActionViews + } + return nil +} + +func (m *TransactionView) GetExpiryHeight() uint64 { + if m != nil { + return m.ExpiryHeight + } + return 0 +} + +func (m *TransactionView) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *TransactionView) GetFee() *v1alpha1.Fee { + if m != nil { + return m.Fee + } + return nil +} + +func (m *TransactionView) GetFmdClues() []*v1alpha1.Clue { + if m != nil { + return m.FmdClues + } + return nil +} + +func (m *TransactionView) GetMemo() []byte { + if x, ok := m.GetXMemo().(*TransactionView_Memo); ok { + return x.Memo + } + return nil +} + +func (m *TransactionView) GetAddressViews() []*v1alpha1.AddressView { + if m != nil { + return m.AddressViews + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransactionView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransactionView_Memo)(nil), + } +} + +// A view of a specific state change action performed by a transaction. +type ActionView struct { + // Types that are valid to be assigned to ActionView: + // + // *ActionView_Spend + // *ActionView_Output + // *ActionView_Swap + // *ActionView_SwapClaim + // *ActionView_ValidatorDefinition + // *ActionView_IbcAction + // *ActionView_ProposalSubmit + // *ActionView_ProposalWithdraw + // *ActionView_ValidatorVote + // *ActionView_DelegatorVote + // *ActionView_ProposalDepositClaim + // *ActionView_PositionOpen + // *ActionView_PositionClose + // *ActionView_PositionWithdraw + // *ActionView_PositionRewardClaim + // *ActionView_Delegate + // *ActionView_Undelegate + // *ActionView_DaoSpend + // *ActionView_DaoOutput + // *ActionView_DaoDeposit + // *ActionView_UndelegateClaim + // *ActionView_Ics20Withdrawal + ActionView isActionView_ActionView `protobuf_oneof:"action_view"` +} + +func (m *ActionView) Reset() { *m = ActionView{} } +func (m *ActionView) String() string { return proto.CompactTextString(m) } +func (*ActionView) ProtoMessage() {} +func (*ActionView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{8} +} +func (m *ActionView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ActionView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ActionView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ActionView) XXX_Merge(src proto.Message) { + xxx_messageInfo_ActionView.Merge(m, src) +} +func (m *ActionView) XXX_Size() int { + return m.Size() +} +func (m *ActionView) XXX_DiscardUnknown() { + xxx_messageInfo_ActionView.DiscardUnknown(m) +} + +var xxx_messageInfo_ActionView proto.InternalMessageInfo + +type isActionView_ActionView interface { + isActionView_ActionView() + MarshalTo([]byte) (int, error) + Size() int +} + +type ActionView_Spend struct { + Spend *SpendView `protobuf:"bytes,1,opt,name=spend,proto3,oneof" json:"spend,omitempty"` +} +type ActionView_Output struct { + Output *OutputView `protobuf:"bytes,2,opt,name=output,proto3,oneof" json:"output,omitempty"` +} +type ActionView_Swap struct { + Swap *v1alpha11.SwapView `protobuf:"bytes,3,opt,name=swap,proto3,oneof" json:"swap,omitempty"` +} +type ActionView_SwapClaim struct { + SwapClaim *v1alpha11.SwapClaimView `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof" json:"swap_claim,omitempty"` +} +type ActionView_ValidatorDefinition struct { + ValidatorDefinition *v1alpha12.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof" json:"validator_definition,omitempty"` +} +type ActionView_IbcAction struct { + IbcAction *v1alpha13.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof" json:"ibc_action,omitempty"` +} +type ActionView_ProposalSubmit struct { + ProposalSubmit *v1alpha14.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof" json:"proposal_submit,omitempty"` +} +type ActionView_ProposalWithdraw struct { + ProposalWithdraw *v1alpha14.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof" json:"proposal_withdraw,omitempty"` +} +type ActionView_ValidatorVote struct { + ValidatorVote *v1alpha14.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof" json:"validator_vote,omitempty"` +} +type ActionView_DelegatorVote struct { + DelegatorVote *DelegatorVoteView `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof" json:"delegator_vote,omitempty"` +} +type ActionView_ProposalDepositClaim struct { + ProposalDepositClaim *v1alpha14.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof" json:"proposal_deposit_claim,omitempty"` +} +type ActionView_PositionOpen struct { + PositionOpen *v1alpha11.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof" json:"position_open,omitempty"` +} +type ActionView_PositionClose struct { + PositionClose *v1alpha11.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof" json:"position_close,omitempty"` +} +type ActionView_PositionWithdraw struct { + PositionWithdraw *v1alpha11.PositionWithdraw `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof" json:"position_withdraw,omitempty"` +} +type ActionView_PositionRewardClaim struct { + PositionRewardClaim *v1alpha11.PositionRewardClaim `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof" json:"position_reward_claim,omitempty"` +} +type ActionView_Delegate struct { + Delegate *v1alpha12.Delegate `protobuf:"bytes,41,opt,name=delegate,proto3,oneof" json:"delegate,omitempty"` +} +type ActionView_Undelegate struct { + Undelegate *v1alpha12.Undelegate `protobuf:"bytes,42,opt,name=undelegate,proto3,oneof" json:"undelegate,omitempty"` +} +type ActionView_DaoSpend struct { + DaoSpend *v1alpha14.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof" json:"dao_spend,omitempty"` +} +type ActionView_DaoOutput struct { + DaoOutput *v1alpha14.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof" json:"dao_output,omitempty"` +} +type ActionView_DaoDeposit struct { + DaoDeposit *v1alpha14.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof" json:"dao_deposit,omitempty"` +} +type ActionView_UndelegateClaim struct { + UndelegateClaim *v1alpha12.UndelegateClaim `protobuf:"bytes,43,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof" json:"undelegate_claim,omitempty"` +} +type ActionView_Ics20Withdrawal struct { + Ics20Withdrawal *v1alpha13.Ics20Withdrawal `protobuf:"bytes,200,opt,name=ics20_withdrawal,json=ics20Withdrawal,proto3,oneof" json:"ics20_withdrawal,omitempty"` +} + +func (*ActionView_Spend) isActionView_ActionView() {} +func (*ActionView_Output) isActionView_ActionView() {} +func (*ActionView_Swap) isActionView_ActionView() {} +func (*ActionView_SwapClaim) isActionView_ActionView() {} +func (*ActionView_ValidatorDefinition) isActionView_ActionView() {} +func (*ActionView_IbcAction) isActionView_ActionView() {} +func (*ActionView_ProposalSubmit) isActionView_ActionView() {} +func (*ActionView_ProposalWithdraw) isActionView_ActionView() {} +func (*ActionView_ValidatorVote) isActionView_ActionView() {} +func (*ActionView_DelegatorVote) isActionView_ActionView() {} +func (*ActionView_ProposalDepositClaim) isActionView_ActionView() {} +func (*ActionView_PositionOpen) isActionView_ActionView() {} +func (*ActionView_PositionClose) isActionView_ActionView() {} +func (*ActionView_PositionWithdraw) isActionView_ActionView() {} +func (*ActionView_PositionRewardClaim) isActionView_ActionView() {} +func (*ActionView_Delegate) isActionView_ActionView() {} +func (*ActionView_Undelegate) isActionView_ActionView() {} +func (*ActionView_DaoSpend) isActionView_ActionView() {} +func (*ActionView_DaoOutput) isActionView_ActionView() {} +func (*ActionView_DaoDeposit) isActionView_ActionView() {} +func (*ActionView_UndelegateClaim) isActionView_ActionView() {} +func (*ActionView_Ics20Withdrawal) isActionView_ActionView() {} + +func (m *ActionView) GetActionView() isActionView_ActionView { + if m != nil { + return m.ActionView + } + return nil +} + +func (m *ActionView) GetSpend() *SpendView { + if x, ok := m.GetActionView().(*ActionView_Spend); ok { + return x.Spend + } + return nil +} + +func (m *ActionView) GetOutput() *OutputView { + if x, ok := m.GetActionView().(*ActionView_Output); ok { + return x.Output + } + return nil +} + +func (m *ActionView) GetSwap() *v1alpha11.SwapView { + if x, ok := m.GetActionView().(*ActionView_Swap); ok { + return x.Swap + } + return nil +} + +func (m *ActionView) GetSwapClaim() *v1alpha11.SwapClaimView { + if x, ok := m.GetActionView().(*ActionView_SwapClaim); ok { + return x.SwapClaim + } + return nil +} + +func (m *ActionView) GetValidatorDefinition() *v1alpha12.ValidatorDefinition { + if x, ok := m.GetActionView().(*ActionView_ValidatorDefinition); ok { + return x.ValidatorDefinition + } + return nil +} + +func (m *ActionView) GetIbcAction() *v1alpha13.IbcAction { + if x, ok := m.GetActionView().(*ActionView_IbcAction); ok { + return x.IbcAction + } + return nil +} + +func (m *ActionView) GetProposalSubmit() *v1alpha14.ProposalSubmit { + if x, ok := m.GetActionView().(*ActionView_ProposalSubmit); ok { + return x.ProposalSubmit + } + return nil +} + +func (m *ActionView) GetProposalWithdraw() *v1alpha14.ProposalWithdraw { + if x, ok := m.GetActionView().(*ActionView_ProposalWithdraw); ok { + return x.ProposalWithdraw + } + return nil +} + +func (m *ActionView) GetValidatorVote() *v1alpha14.ValidatorVote { + if x, ok := m.GetActionView().(*ActionView_ValidatorVote); ok { + return x.ValidatorVote + } + return nil +} + +func (m *ActionView) GetDelegatorVote() *DelegatorVoteView { + if x, ok := m.GetActionView().(*ActionView_DelegatorVote); ok { + return x.DelegatorVote + } + return nil +} + +func (m *ActionView) GetProposalDepositClaim() *v1alpha14.ProposalDepositClaim { + if x, ok := m.GetActionView().(*ActionView_ProposalDepositClaim); ok { + return x.ProposalDepositClaim + } + return nil +} + +func (m *ActionView) GetPositionOpen() *v1alpha11.PositionOpen { + if x, ok := m.GetActionView().(*ActionView_PositionOpen); ok { + return x.PositionOpen + } + return nil +} + +func (m *ActionView) GetPositionClose() *v1alpha11.PositionClose { + if x, ok := m.GetActionView().(*ActionView_PositionClose); ok { + return x.PositionClose + } + return nil +} + +func (m *ActionView) GetPositionWithdraw() *v1alpha11.PositionWithdraw { + if x, ok := m.GetActionView().(*ActionView_PositionWithdraw); ok { + return x.PositionWithdraw + } + return nil +} + +func (m *ActionView) GetPositionRewardClaim() *v1alpha11.PositionRewardClaim { + if x, ok := m.GetActionView().(*ActionView_PositionRewardClaim); ok { + return x.PositionRewardClaim + } + return nil +} + +func (m *ActionView) GetDelegate() *v1alpha12.Delegate { + if x, ok := m.GetActionView().(*ActionView_Delegate); ok { + return x.Delegate + } + return nil +} + +func (m *ActionView) GetUndelegate() *v1alpha12.Undelegate { + if x, ok := m.GetActionView().(*ActionView_Undelegate); ok { + return x.Undelegate + } + return nil +} + +func (m *ActionView) GetDaoSpend() *v1alpha14.DaoSpend { + if x, ok := m.GetActionView().(*ActionView_DaoSpend); ok { + return x.DaoSpend + } + return nil +} + +func (m *ActionView) GetDaoOutput() *v1alpha14.DaoOutput { + if x, ok := m.GetActionView().(*ActionView_DaoOutput); ok { + return x.DaoOutput + } + return nil +} + +func (m *ActionView) GetDaoDeposit() *v1alpha14.DaoDeposit { + if x, ok := m.GetActionView().(*ActionView_DaoDeposit); ok { + return x.DaoDeposit + } + return nil +} + +func (m *ActionView) GetUndelegateClaim() *v1alpha12.UndelegateClaim { + if x, ok := m.GetActionView().(*ActionView_UndelegateClaim); ok { + return x.UndelegateClaim + } + return nil +} + +func (m *ActionView) GetIcs20Withdrawal() *v1alpha13.Ics20Withdrawal { + if x, ok := m.GetActionView().(*ActionView_Ics20Withdrawal); ok { + return x.Ics20Withdrawal + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ActionView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ActionView_Spend)(nil), + (*ActionView_Output)(nil), + (*ActionView_Swap)(nil), + (*ActionView_SwapClaim)(nil), + (*ActionView_ValidatorDefinition)(nil), + (*ActionView_IbcAction)(nil), + (*ActionView_ProposalSubmit)(nil), + (*ActionView_ProposalWithdraw)(nil), + (*ActionView_ValidatorVote)(nil), + (*ActionView_DelegatorVote)(nil), + (*ActionView_ProposalDepositClaim)(nil), + (*ActionView_PositionOpen)(nil), + (*ActionView_PositionClose)(nil), + (*ActionView_PositionWithdraw)(nil), + (*ActionView_PositionRewardClaim)(nil), + (*ActionView_Delegate)(nil), + (*ActionView_Undelegate)(nil), + (*ActionView_DaoSpend)(nil), + (*ActionView_DaoOutput)(nil), + (*ActionView_DaoDeposit)(nil), + (*ActionView_UndelegateClaim)(nil), + (*ActionView_Ics20Withdrawal)(nil), + } +} + +type SpendView struct { + // Types that are valid to be assigned to SpendView: + // + // *SpendView_Visible_ + // *SpendView_Opaque_ + SpendView isSpendView_SpendView `protobuf_oneof:"spend_view"` +} + +func (m *SpendView) Reset() { *m = SpendView{} } +func (m *SpendView) String() string { return proto.CompactTextString(m) } +func (*SpendView) ProtoMessage() {} +func (*SpendView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{9} +} +func (m *SpendView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendView) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendView.Merge(m, src) +} +func (m *SpendView) XXX_Size() int { + return m.Size() +} +func (m *SpendView) XXX_DiscardUnknown() { + xxx_messageInfo_SpendView.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendView proto.InternalMessageInfo + +type isSpendView_SpendView interface { + isSpendView_SpendView() + MarshalTo([]byte) (int, error) + Size() int +} + +type SpendView_Visible_ struct { + Visible *SpendView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof" json:"visible,omitempty"` +} +type SpendView_Opaque_ struct { + Opaque *SpendView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof" json:"opaque,omitempty"` +} + +func (*SpendView_Visible_) isSpendView_SpendView() {} +func (*SpendView_Opaque_) isSpendView_SpendView() {} + +func (m *SpendView) GetSpendView() isSpendView_SpendView { + if m != nil { + return m.SpendView + } + return nil +} + +func (m *SpendView) GetVisible() *SpendView_Visible { + if x, ok := m.GetSpendView().(*SpendView_Visible_); ok { + return x.Visible + } + return nil +} + +func (m *SpendView) GetOpaque() *SpendView_Opaque { + if x, ok := m.GetSpendView().(*SpendView_Opaque_); ok { + return x.Opaque + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SpendView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SpendView_Visible_)(nil), + (*SpendView_Opaque_)(nil), + } +} + +type SpendView_Visible struct { + Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` + Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` +} + +func (m *SpendView_Visible) Reset() { *m = SpendView_Visible{} } +func (m *SpendView_Visible) String() string { return proto.CompactTextString(m) } +func (*SpendView_Visible) ProtoMessage() {} +func (*SpendView_Visible) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{9, 0} +} +func (m *SpendView_Visible) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendView_Visible) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendView_Visible.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendView_Visible) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendView_Visible.Merge(m, src) +} +func (m *SpendView_Visible) XXX_Size() int { + return m.Size() +} +func (m *SpendView_Visible) XXX_DiscardUnknown() { + xxx_messageInfo_SpendView_Visible.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendView_Visible proto.InternalMessageInfo + +func (m *SpendView_Visible) GetSpend() *Spend { + if m != nil { + return m.Spend + } + return nil +} + +func (m *SpendView_Visible) GetNote() *v1alpha1.Note { + if m != nil { + return m.Note + } + return nil +} + +type SpendView_Opaque struct { + Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` +} + +func (m *SpendView_Opaque) Reset() { *m = SpendView_Opaque{} } +func (m *SpendView_Opaque) String() string { return proto.CompactTextString(m) } +func (*SpendView_Opaque) ProtoMessage() {} +func (*SpendView_Opaque) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{9, 1} +} +func (m *SpendView_Opaque) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendView_Opaque) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendView_Opaque.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendView_Opaque) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendView_Opaque.Merge(m, src) +} +func (m *SpendView_Opaque) XXX_Size() int { + return m.Size() +} +func (m *SpendView_Opaque) XXX_DiscardUnknown() { + xxx_messageInfo_SpendView_Opaque.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendView_Opaque proto.InternalMessageInfo + +func (m *SpendView_Opaque) GetSpend() *Spend { + if m != nil { + return m.Spend + } + return nil +} + +type DelegatorVoteView struct { + // Types that are valid to be assigned to DelegatorVote: + // + // *DelegatorVoteView_Visible_ + // *DelegatorVoteView_Opaque_ + DelegatorVote isDelegatorVoteView_DelegatorVote `protobuf_oneof:"delegator_vote"` +} + +func (m *DelegatorVoteView) Reset() { *m = DelegatorVoteView{} } +func (m *DelegatorVoteView) String() string { return proto.CompactTextString(m) } +func (*DelegatorVoteView) ProtoMessage() {} +func (*DelegatorVoteView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{10} +} +func (m *DelegatorVoteView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DelegatorVoteView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DelegatorVoteView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DelegatorVoteView) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelegatorVoteView.Merge(m, src) +} +func (m *DelegatorVoteView) XXX_Size() int { + return m.Size() +} +func (m *DelegatorVoteView) XXX_DiscardUnknown() { + xxx_messageInfo_DelegatorVoteView.DiscardUnknown(m) +} + +var xxx_messageInfo_DelegatorVoteView proto.InternalMessageInfo + +type isDelegatorVoteView_DelegatorVote interface { + isDelegatorVoteView_DelegatorVote() + MarshalTo([]byte) (int, error) + Size() int +} + +type DelegatorVoteView_Visible_ struct { + Visible *DelegatorVoteView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof" json:"visible,omitempty"` +} +type DelegatorVoteView_Opaque_ struct { + Opaque *DelegatorVoteView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof" json:"opaque,omitempty"` +} + +func (*DelegatorVoteView_Visible_) isDelegatorVoteView_DelegatorVote() {} +func (*DelegatorVoteView_Opaque_) isDelegatorVoteView_DelegatorVote() {} + +func (m *DelegatorVoteView) GetDelegatorVote() isDelegatorVoteView_DelegatorVote { + if m != nil { + return m.DelegatorVote + } + return nil +} + +func (m *DelegatorVoteView) GetVisible() *DelegatorVoteView_Visible { + if x, ok := m.GetDelegatorVote().(*DelegatorVoteView_Visible_); ok { + return x.Visible + } + return nil +} + +func (m *DelegatorVoteView) GetOpaque() *DelegatorVoteView_Opaque { + if x, ok := m.GetDelegatorVote().(*DelegatorVoteView_Opaque_); ok { + return x.Opaque + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*DelegatorVoteView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*DelegatorVoteView_Visible_)(nil), + (*DelegatorVoteView_Opaque_)(nil), + } +} + +type DelegatorVoteView_Visible struct { + DelegatorVote *v1alpha14.DelegatorVote `protobuf:"bytes,1,opt,name=delegator_vote,json=delegatorVote,proto3" json:"delegator_vote,omitempty"` + Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` +} + +func (m *DelegatorVoteView_Visible) Reset() { *m = DelegatorVoteView_Visible{} } +func (m *DelegatorVoteView_Visible) String() string { return proto.CompactTextString(m) } +func (*DelegatorVoteView_Visible) ProtoMessage() {} +func (*DelegatorVoteView_Visible) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{10, 0} +} +func (m *DelegatorVoteView_Visible) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DelegatorVoteView_Visible) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DelegatorVoteView_Visible.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DelegatorVoteView_Visible) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelegatorVoteView_Visible.Merge(m, src) +} +func (m *DelegatorVoteView_Visible) XXX_Size() int { + return m.Size() +} +func (m *DelegatorVoteView_Visible) XXX_DiscardUnknown() { + xxx_messageInfo_DelegatorVoteView_Visible.DiscardUnknown(m) +} + +var xxx_messageInfo_DelegatorVoteView_Visible proto.InternalMessageInfo + +func (m *DelegatorVoteView_Visible) GetDelegatorVote() *v1alpha14.DelegatorVote { + if m != nil { + return m.DelegatorVote + } + return nil +} + +func (m *DelegatorVoteView_Visible) GetNote() *v1alpha1.Note { + if m != nil { + return m.Note + } + return nil +} + +type DelegatorVoteView_Opaque struct { + DelegatorVote *v1alpha14.DelegatorVote `protobuf:"bytes,1,opt,name=delegator_vote,json=delegatorVote,proto3" json:"delegator_vote,omitempty"` +} + +func (m *DelegatorVoteView_Opaque) Reset() { *m = DelegatorVoteView_Opaque{} } +func (m *DelegatorVoteView_Opaque) String() string { return proto.CompactTextString(m) } +func (*DelegatorVoteView_Opaque) ProtoMessage() {} +func (*DelegatorVoteView_Opaque) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{10, 1} +} +func (m *DelegatorVoteView_Opaque) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DelegatorVoteView_Opaque) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DelegatorVoteView_Opaque.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DelegatorVoteView_Opaque) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelegatorVoteView_Opaque.Merge(m, src) +} +func (m *DelegatorVoteView_Opaque) XXX_Size() int { + return m.Size() +} +func (m *DelegatorVoteView_Opaque) XXX_DiscardUnknown() { + xxx_messageInfo_DelegatorVoteView_Opaque.DiscardUnknown(m) +} + +var xxx_messageInfo_DelegatorVoteView_Opaque proto.InternalMessageInfo + +func (m *DelegatorVoteView_Opaque) GetDelegatorVote() *v1alpha14.DelegatorVote { + if m != nil { + return m.DelegatorVote + } + return nil +} + +type OutputView struct { + // Types that are valid to be assigned to OutputView: + // + // *OutputView_Visible_ + // *OutputView_Opaque_ + OutputView isOutputView_OutputView `protobuf_oneof:"output_view"` +} + +func (m *OutputView) Reset() { *m = OutputView{} } +func (m *OutputView) String() string { return proto.CompactTextString(m) } +func (*OutputView) ProtoMessage() {} +func (*OutputView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{11} +} +func (m *OutputView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutputView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutputView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutputView) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutputView.Merge(m, src) +} +func (m *OutputView) XXX_Size() int { + return m.Size() +} +func (m *OutputView) XXX_DiscardUnknown() { + xxx_messageInfo_OutputView.DiscardUnknown(m) +} + +var xxx_messageInfo_OutputView proto.InternalMessageInfo + +type isOutputView_OutputView interface { + isOutputView_OutputView() + MarshalTo([]byte) (int, error) + Size() int +} + +type OutputView_Visible_ struct { + Visible *OutputView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof" json:"visible,omitempty"` +} +type OutputView_Opaque_ struct { + Opaque *OutputView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof" json:"opaque,omitempty"` +} + +func (*OutputView_Visible_) isOutputView_OutputView() {} +func (*OutputView_Opaque_) isOutputView_OutputView() {} + +func (m *OutputView) GetOutputView() isOutputView_OutputView { + if m != nil { + return m.OutputView + } + return nil +} + +func (m *OutputView) GetVisible() *OutputView_Visible { + if x, ok := m.GetOutputView().(*OutputView_Visible_); ok { + return x.Visible + } + return nil +} + +func (m *OutputView) GetOpaque() *OutputView_Opaque { + if x, ok := m.GetOutputView().(*OutputView_Opaque_); ok { + return x.Opaque + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*OutputView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*OutputView_Visible_)(nil), + (*OutputView_Opaque_)(nil), + } +} + +type OutputView_Visible struct { + Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + PayloadKey []byte `protobuf:"bytes,3,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` +} + +func (m *OutputView_Visible) Reset() { *m = OutputView_Visible{} } +func (m *OutputView_Visible) String() string { return proto.CompactTextString(m) } +func (*OutputView_Visible) ProtoMessage() {} +func (*OutputView_Visible) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{11, 0} +} +func (m *OutputView_Visible) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutputView_Visible) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutputView_Visible.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutputView_Visible) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutputView_Visible.Merge(m, src) +} +func (m *OutputView_Visible) XXX_Size() int { + return m.Size() +} +func (m *OutputView_Visible) XXX_DiscardUnknown() { + xxx_messageInfo_OutputView_Visible.DiscardUnknown(m) +} + +var xxx_messageInfo_OutputView_Visible proto.InternalMessageInfo + +func (m *OutputView_Visible) GetOutput() *Output { + if m != nil { + return m.Output + } + return nil +} + +func (m *OutputView_Visible) GetNote() *v1alpha1.Note { + if m != nil { + return m.Note + } + return nil +} + +func (m *OutputView_Visible) GetPayloadKey() []byte { + if m != nil { + return m.PayloadKey + } + return nil +} + +type OutputView_Opaque struct { + Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` +} + +func (m *OutputView_Opaque) Reset() { *m = OutputView_Opaque{} } +func (m *OutputView_Opaque) String() string { return proto.CompactTextString(m) } +func (*OutputView_Opaque) ProtoMessage() {} +func (*OutputView_Opaque) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{11, 1} +} +func (m *OutputView_Opaque) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutputView_Opaque) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutputView_Opaque.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutputView_Opaque) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutputView_Opaque.Merge(m, src) +} +func (m *OutputView_Opaque) XXX_Size() int { + return m.Size() +} +func (m *OutputView_Opaque) XXX_DiscardUnknown() { + xxx_messageInfo_OutputView_Opaque.DiscardUnknown(m) +} + +var xxx_messageInfo_OutputView_Opaque proto.InternalMessageInfo + +func (m *OutputView_Opaque) GetOutput() *Output { + if m != nil { + return m.Output + } + return nil +} + +// Spends a shielded note. +type Spend struct { + // The effecting data of the spend. + Body *SpendBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The authorizing signature for the spend. + AuthSig *v1alpha1.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` + // The proof that the spend is well-formed is authorizing data. + Proof *v1alpha1.ZKSpendProof `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (m *Spend) Reset() { *m = Spend{} } +func (m *Spend) String() string { return proto.CompactTextString(m) } +func (*Spend) ProtoMessage() {} +func (*Spend) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{12} +} +func (m *Spend) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Spend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Spend.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Spend) XXX_Merge(src proto.Message) { + xxx_messageInfo_Spend.Merge(m, src) +} +func (m *Spend) XXX_Size() int { + return m.Size() +} +func (m *Spend) XXX_DiscardUnknown() { + xxx_messageInfo_Spend.DiscardUnknown(m) +} + +var xxx_messageInfo_Spend proto.InternalMessageInfo + +func (m *Spend) GetBody() *SpendBody { + if m != nil { + return m.Body + } + return nil +} + +func (m *Spend) GetAuthSig() *v1alpha1.SpendAuthSignature { + if m != nil { + return m.AuthSig + } + return nil +} + +func (m *Spend) GetProof() *v1alpha1.ZKSpendProof { + if m != nil { + return m.Proof + } + return nil +} + +// The body of a spend description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +type SpendBody struct { + // A commitment to the value of the input note. + BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,1,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` + // The nullifier of the input note. + Nullifier []byte `protobuf:"bytes,3,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + // The randomized validating key for the spend authorization signature. + Rk []byte `protobuf:"bytes,4,opt,name=rk,proto3" json:"rk,omitempty"` +} + +func (m *SpendBody) Reset() { *m = SpendBody{} } +func (m *SpendBody) String() string { return proto.CompactTextString(m) } +func (*SpendBody) ProtoMessage() {} +func (*SpendBody) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{13} +} +func (m *SpendBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendBody.Merge(m, src) +} +func (m *SpendBody) XXX_Size() int { + return m.Size() +} +func (m *SpendBody) XXX_DiscardUnknown() { + xxx_messageInfo_SpendBody.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendBody proto.InternalMessageInfo + +func (m *SpendBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { + if m != nil { + return m.BalanceCommitment + } + return nil +} + +func (m *SpendBody) GetNullifier() []byte { + if m != nil { + return m.Nullifier + } + return nil +} + +func (m *SpendBody) GetRk() []byte { + if m != nil { + return m.Rk + } + return nil +} + +// Creates a new shielded note. +type Output struct { + // The effecting data for the output. + Body *OutputBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The output proof is authorizing data. + Proof *v1alpha1.ZKOutputProof `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (m *Output) Reset() { *m = Output{} } +func (m *Output) String() string { return proto.CompactTextString(m) } +func (*Output) ProtoMessage() {} +func (*Output) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{14} +} +func (m *Output) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Output) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Output.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Output) XXX_Merge(src proto.Message) { + xxx_messageInfo_Output.Merge(m, src) +} +func (m *Output) XXX_Size() int { + return m.Size() +} +func (m *Output) XXX_DiscardUnknown() { + xxx_messageInfo_Output.DiscardUnknown(m) +} + +var xxx_messageInfo_Output proto.InternalMessageInfo + +func (m *Output) GetBody() *OutputBody { + if m != nil { + return m.Body + } + return nil +} + +func (m *Output) GetProof() *v1alpha1.ZKOutputProof { + if m != nil { + return m.Proof + } + return nil +} + +// The body of an output description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +type OutputBody struct { + // The minimal data required to scan and process the new output note. + NotePayload *v1alpha1.NotePayload `protobuf:"bytes,1,opt,name=note_payload,json=notePayload,proto3" json:"note_payload,omitempty"` + // A commitment to the value of the output note. 32 bytes. + BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,2,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` + // An encrypted key for decrypting the memo. + WrappedMemoKey []byte `protobuf:"bytes,3,opt,name=wrapped_memo_key,json=wrappedMemoKey,proto3" json:"wrapped_memo_key,omitempty"` + // The key material used for note encryption, wrapped in encryption to the + // sender's outgoing viewing key. 80 bytes. + OvkWrappedKey []byte `protobuf:"bytes,4,opt,name=ovk_wrapped_key,json=ovkWrappedKey,proto3" json:"ovk_wrapped_key,omitempty"` +} + +func (m *OutputBody) Reset() { *m = OutputBody{} } +func (m *OutputBody) String() string { return proto.CompactTextString(m) } +func (*OutputBody) ProtoMessage() {} +func (*OutputBody) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{15} +} +func (m *OutputBody) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutputBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutputBody.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutputBody) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutputBody.Merge(m, src) +} +func (m *OutputBody) XXX_Size() int { + return m.Size() +} +func (m *OutputBody) XXX_DiscardUnknown() { + xxx_messageInfo_OutputBody.DiscardUnknown(m) +} + +var xxx_messageInfo_OutputBody proto.InternalMessageInfo + +func (m *OutputBody) GetNotePayload() *v1alpha1.NotePayload { + if m != nil { + return m.NotePayload + } + return nil +} + +func (m *OutputBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { + if m != nil { + return m.BalanceCommitment + } + return nil +} + +func (m *OutputBody) GetWrappedMemoKey() []byte { + if m != nil { + return m.WrappedMemoKey + } + return nil +} + +func (m *OutputBody) GetOvkWrappedKey() []byte { + if m != nil { + return m.OvkWrappedKey + } + return nil +} + +// The data required to authorize a transaction plan. +type AuthorizationData struct { + // The computed auth hash for the approved transaction plan. + EffectHash *v1alpha1.EffectHash `protobuf:"bytes,1,opt,name=effect_hash,json=effectHash,proto3" json:"effect_hash,omitempty"` + // The required spend authorizations, returned in the same order as the + // Spend actions in the original request. + SpendAuths []*v1alpha1.SpendAuthSignature `protobuf:"bytes,2,rep,name=spend_auths,json=spendAuths,proto3" json:"spend_auths,omitempty"` + // The required delegator vote authorizations, returned in the same order as the + // DelegatorVote actions in the original request. + DelegatorVoteAuths []*v1alpha1.SpendAuthSignature `protobuf:"bytes,3,rep,name=delegator_vote_auths,json=delegatorVoteAuths,proto3" json:"delegator_vote_auths,omitempty"` +} + +func (m *AuthorizationData) Reset() { *m = AuthorizationData{} } +func (m *AuthorizationData) String() string { return proto.CompactTextString(m) } +func (*AuthorizationData) ProtoMessage() {} +func (*AuthorizationData) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{16} +} +func (m *AuthorizationData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuthorizationData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AuthorizationData.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AuthorizationData) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthorizationData.Merge(m, src) +} +func (m *AuthorizationData) XXX_Size() int { + return m.Size() +} +func (m *AuthorizationData) XXX_DiscardUnknown() { + xxx_messageInfo_AuthorizationData.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthorizationData proto.InternalMessageInfo + +func (m *AuthorizationData) GetEffectHash() *v1alpha1.EffectHash { + if m != nil { + return m.EffectHash + } + return nil +} + +func (m *AuthorizationData) GetSpendAuths() []*v1alpha1.SpendAuthSignature { + if m != nil { + return m.SpendAuths + } + return nil +} + +func (m *AuthorizationData) GetDelegatorVoteAuths() []*v1alpha1.SpendAuthSignature { + if m != nil { + return m.DelegatorVoteAuths + } + return nil +} + +// The data required for proving when building a transaction from a plan. +type WitnessData struct { + // The anchor for the state transition proofs. + Anchor *v1alpha1.MerkleRoot `protobuf:"bytes,1,opt,name=anchor,proto3" json:"anchor,omitempty"` + // The auth paths for the notes the transaction spends, in the + // same order as the spends in the transaction plan. + StateCommitmentProofs []*v1alpha1.StateCommitmentProof `protobuf:"bytes,2,rep,name=state_commitment_proofs,json=stateCommitmentProofs,proto3" json:"state_commitment_proofs,omitempty"` +} + +func (m *WitnessData) Reset() { *m = WitnessData{} } +func (m *WitnessData) String() string { return proto.CompactTextString(m) } +func (*WitnessData) ProtoMessage() {} +func (*WitnessData) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{17} +} +func (m *WitnessData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WitnessData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WitnessData.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WitnessData) XXX_Merge(src proto.Message) { + xxx_messageInfo_WitnessData.Merge(m, src) +} +func (m *WitnessData) XXX_Size() int { + return m.Size() +} +func (m *WitnessData) XXX_DiscardUnknown() { + xxx_messageInfo_WitnessData.DiscardUnknown(m) +} + +var xxx_messageInfo_WitnessData proto.InternalMessageInfo + +func (m *WitnessData) GetAnchor() *v1alpha1.MerkleRoot { + if m != nil { + return m.Anchor + } + return nil +} + +func (m *WitnessData) GetStateCommitmentProofs() []*v1alpha1.StateCommitmentProof { + if m != nil { + return m.StateCommitmentProofs + } + return nil +} + +// Describes a planned transaction. +type TransactionPlan struct { + Actions []*ActionPlan `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` + ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` + ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` + CluePlans []*CluePlan `protobuf:"bytes,5,rep,name=clue_plans,json=cluePlans,proto3" json:"clue_plans,omitempty"` + MemoPlan *MemoPlan `protobuf:"bytes,6,opt,name=memo_plan,json=memoPlan,proto3" json:"memo_plan,omitempty"` +} + +func (m *TransactionPlan) Reset() { *m = TransactionPlan{} } +func (m *TransactionPlan) String() string { return proto.CompactTextString(m) } +func (*TransactionPlan) ProtoMessage() {} +func (*TransactionPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{18} +} +func (m *TransactionPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlan.Merge(m, src) +} +func (m *TransactionPlan) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlan) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlan proto.InternalMessageInfo + +func (m *TransactionPlan) GetActions() []*ActionPlan { + if m != nil { + return m.Actions + } + return nil +} + +func (m *TransactionPlan) GetExpiryHeight() uint64 { + if m != nil { + return m.ExpiryHeight + } + return 0 +} + +func (m *TransactionPlan) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *TransactionPlan) GetFee() *v1alpha1.Fee { + if m != nil { + return m.Fee + } + return nil +} + +func (m *TransactionPlan) GetCluePlans() []*CluePlan { + if m != nil { + return m.CluePlans + } + return nil +} + +func (m *TransactionPlan) GetMemoPlan() *MemoPlan { + if m != nil { + return m.MemoPlan + } + return nil +} + +// Describes a planned transaction action. +// +// Some transaction Actions don't have any private data and are treated as being plans +// themselves. +type ActionPlan struct { + // Types that are valid to be assigned to Action: + // + // *ActionPlan_Spend + // *ActionPlan_Output + // *ActionPlan_Swap + // *ActionPlan_SwapClaim + // *ActionPlan_ValidatorDefinition + // *ActionPlan_IbcAction + // *ActionPlan_ProposalSubmit + // *ActionPlan_ProposalWithdraw + // *ActionPlan_ValidatorVote + // *ActionPlan_DelegatorVote + // *ActionPlan_ProposalDepositClaim + // *ActionPlan_PositionOpen + // *ActionPlan_PositionClose + // *ActionPlan_PositionWithdraw + // *ActionPlan_PositionRewardClaim + // *ActionPlan_Delegate + // *ActionPlan_Undelegate + // *ActionPlan_UndelegateClaim + // *ActionPlan_DaoSpend + // *ActionPlan_DaoOutput + // *ActionPlan_DaoDeposit + Action isActionPlan_Action `protobuf_oneof:"action"` +} + +func (m *ActionPlan) Reset() { *m = ActionPlan{} } +func (m *ActionPlan) String() string { return proto.CompactTextString(m) } +func (*ActionPlan) ProtoMessage() {} +func (*ActionPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{19} +} +func (m *ActionPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ActionPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ActionPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ActionPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_ActionPlan.Merge(m, src) +} +func (m *ActionPlan) XXX_Size() int { + return m.Size() +} +func (m *ActionPlan) XXX_DiscardUnknown() { + xxx_messageInfo_ActionPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_ActionPlan proto.InternalMessageInfo + +type isActionPlan_Action interface { + isActionPlan_Action() + MarshalTo([]byte) (int, error) + Size() int +} + +type ActionPlan_Spend struct { + Spend *SpendPlan `protobuf:"bytes,1,opt,name=spend,proto3,oneof" json:"spend,omitempty"` +} +type ActionPlan_Output struct { + Output *OutputPlan `protobuf:"bytes,2,opt,name=output,proto3,oneof" json:"output,omitempty"` +} +type ActionPlan_Swap struct { + Swap *v1alpha11.SwapPlan `protobuf:"bytes,3,opt,name=swap,proto3,oneof" json:"swap,omitempty"` +} +type ActionPlan_SwapClaim struct { + SwapClaim *v1alpha11.SwapClaimPlan `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof" json:"swap_claim,omitempty"` +} +type ActionPlan_ValidatorDefinition struct { + ValidatorDefinition *v1alpha12.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof" json:"validator_definition,omitempty"` +} +type ActionPlan_IbcAction struct { + IbcAction *v1alpha13.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof" json:"ibc_action,omitempty"` +} +type ActionPlan_ProposalSubmit struct { + ProposalSubmit *v1alpha14.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof" json:"proposal_submit,omitempty"` +} +type ActionPlan_ProposalWithdraw struct { + ProposalWithdraw *v1alpha14.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof" json:"proposal_withdraw,omitempty"` +} +type ActionPlan_ValidatorVote struct { + ValidatorVote *v1alpha14.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof" json:"validator_vote,omitempty"` +} +type ActionPlan_DelegatorVote struct { + DelegatorVote *v1alpha14.DelegatorVotePlan `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof" json:"delegator_vote,omitempty"` +} +type ActionPlan_ProposalDepositClaim struct { + ProposalDepositClaim *v1alpha14.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof" json:"proposal_deposit_claim,omitempty"` +} +type ActionPlan_PositionOpen struct { + PositionOpen *v1alpha11.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof" json:"position_open,omitempty"` +} +type ActionPlan_PositionClose struct { + PositionClose *v1alpha11.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof" json:"position_close,omitempty"` +} +type ActionPlan_PositionWithdraw struct { + PositionWithdraw *v1alpha11.PositionWithdrawPlan `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof" json:"position_withdraw,omitempty"` +} +type ActionPlan_PositionRewardClaim struct { + PositionRewardClaim *v1alpha11.PositionRewardClaimPlan `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof" json:"position_reward_claim,omitempty"` +} +type ActionPlan_Delegate struct { + Delegate *v1alpha12.Delegate `protobuf:"bytes,40,opt,name=delegate,proto3,oneof" json:"delegate,omitempty"` +} +type ActionPlan_Undelegate struct { + Undelegate *v1alpha12.Undelegate `protobuf:"bytes,41,opt,name=undelegate,proto3,oneof" json:"undelegate,omitempty"` +} +type ActionPlan_UndelegateClaim struct { + UndelegateClaim *v1alpha12.UndelegateClaimPlan `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof" json:"undelegate_claim,omitempty"` +} +type ActionPlan_DaoSpend struct { + DaoSpend *v1alpha14.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof" json:"dao_spend,omitempty"` +} +type ActionPlan_DaoOutput struct { + DaoOutput *v1alpha14.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof" json:"dao_output,omitempty"` +} +type ActionPlan_DaoDeposit struct { + DaoDeposit *v1alpha14.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof" json:"dao_deposit,omitempty"` +} + +func (*ActionPlan_Spend) isActionPlan_Action() {} +func (*ActionPlan_Output) isActionPlan_Action() {} +func (*ActionPlan_Swap) isActionPlan_Action() {} +func (*ActionPlan_SwapClaim) isActionPlan_Action() {} +func (*ActionPlan_ValidatorDefinition) isActionPlan_Action() {} +func (*ActionPlan_IbcAction) isActionPlan_Action() {} +func (*ActionPlan_ProposalSubmit) isActionPlan_Action() {} +func (*ActionPlan_ProposalWithdraw) isActionPlan_Action() {} +func (*ActionPlan_ValidatorVote) isActionPlan_Action() {} +func (*ActionPlan_DelegatorVote) isActionPlan_Action() {} +func (*ActionPlan_ProposalDepositClaim) isActionPlan_Action() {} +func (*ActionPlan_PositionOpen) isActionPlan_Action() {} +func (*ActionPlan_PositionClose) isActionPlan_Action() {} +func (*ActionPlan_PositionWithdraw) isActionPlan_Action() {} +func (*ActionPlan_PositionRewardClaim) isActionPlan_Action() {} +func (*ActionPlan_Delegate) isActionPlan_Action() {} +func (*ActionPlan_Undelegate) isActionPlan_Action() {} +func (*ActionPlan_UndelegateClaim) isActionPlan_Action() {} +func (*ActionPlan_DaoSpend) isActionPlan_Action() {} +func (*ActionPlan_DaoOutput) isActionPlan_Action() {} +func (*ActionPlan_DaoDeposit) isActionPlan_Action() {} + +func (m *ActionPlan) GetAction() isActionPlan_Action { + if m != nil { + return m.Action + } + return nil +} + +func (m *ActionPlan) GetSpend() *SpendPlan { + if x, ok := m.GetAction().(*ActionPlan_Spend); ok { + return x.Spend + } + return nil +} + +func (m *ActionPlan) GetOutput() *OutputPlan { + if x, ok := m.GetAction().(*ActionPlan_Output); ok { + return x.Output + } + return nil +} + +func (m *ActionPlan) GetSwap() *v1alpha11.SwapPlan { + if x, ok := m.GetAction().(*ActionPlan_Swap); ok { + return x.Swap + } + return nil +} + +func (m *ActionPlan) GetSwapClaim() *v1alpha11.SwapClaimPlan { + if x, ok := m.GetAction().(*ActionPlan_SwapClaim); ok { + return x.SwapClaim + } + return nil +} + +func (m *ActionPlan) GetValidatorDefinition() *v1alpha12.ValidatorDefinition { + if x, ok := m.GetAction().(*ActionPlan_ValidatorDefinition); ok { + return x.ValidatorDefinition + } + return nil +} + +func (m *ActionPlan) GetIbcAction() *v1alpha13.IbcAction { + if x, ok := m.GetAction().(*ActionPlan_IbcAction); ok { + return x.IbcAction + } + return nil +} + +func (m *ActionPlan) GetProposalSubmit() *v1alpha14.ProposalSubmit { + if x, ok := m.GetAction().(*ActionPlan_ProposalSubmit); ok { + return x.ProposalSubmit + } + return nil +} + +func (m *ActionPlan) GetProposalWithdraw() *v1alpha14.ProposalWithdraw { + if x, ok := m.GetAction().(*ActionPlan_ProposalWithdraw); ok { + return x.ProposalWithdraw + } + return nil +} + +func (m *ActionPlan) GetValidatorVote() *v1alpha14.ValidatorVote { + if x, ok := m.GetAction().(*ActionPlan_ValidatorVote); ok { + return x.ValidatorVote + } + return nil +} + +func (m *ActionPlan) GetDelegatorVote() *v1alpha14.DelegatorVotePlan { + if x, ok := m.GetAction().(*ActionPlan_DelegatorVote); ok { + return x.DelegatorVote + } + return nil +} + +func (m *ActionPlan) GetProposalDepositClaim() *v1alpha14.ProposalDepositClaim { + if x, ok := m.GetAction().(*ActionPlan_ProposalDepositClaim); ok { + return x.ProposalDepositClaim + } + return nil +} + +func (m *ActionPlan) GetPositionOpen() *v1alpha11.PositionOpen { + if x, ok := m.GetAction().(*ActionPlan_PositionOpen); ok { + return x.PositionOpen + } + return nil +} + +func (m *ActionPlan) GetPositionClose() *v1alpha11.PositionClose { + if x, ok := m.GetAction().(*ActionPlan_PositionClose); ok { + return x.PositionClose + } + return nil +} + +func (m *ActionPlan) GetPositionWithdraw() *v1alpha11.PositionWithdrawPlan { + if x, ok := m.GetAction().(*ActionPlan_PositionWithdraw); ok { + return x.PositionWithdraw + } + return nil +} + +func (m *ActionPlan) GetPositionRewardClaim() *v1alpha11.PositionRewardClaimPlan { + if x, ok := m.GetAction().(*ActionPlan_PositionRewardClaim); ok { + return x.PositionRewardClaim + } + return nil +} + +func (m *ActionPlan) GetDelegate() *v1alpha12.Delegate { + if x, ok := m.GetAction().(*ActionPlan_Delegate); ok { + return x.Delegate + } + return nil +} + +func (m *ActionPlan) GetUndelegate() *v1alpha12.Undelegate { + if x, ok := m.GetAction().(*ActionPlan_Undelegate); ok { + return x.Undelegate + } + return nil +} + +func (m *ActionPlan) GetUndelegateClaim() *v1alpha12.UndelegateClaimPlan { + if x, ok := m.GetAction().(*ActionPlan_UndelegateClaim); ok { + return x.UndelegateClaim + } + return nil +} + +func (m *ActionPlan) GetDaoSpend() *v1alpha14.DaoSpend { + if x, ok := m.GetAction().(*ActionPlan_DaoSpend); ok { + return x.DaoSpend + } + return nil +} + +func (m *ActionPlan) GetDaoOutput() *v1alpha14.DaoOutput { + if x, ok := m.GetAction().(*ActionPlan_DaoOutput); ok { + return x.DaoOutput + } + return nil +} + +func (m *ActionPlan) GetDaoDeposit() *v1alpha14.DaoDeposit { + if x, ok := m.GetAction().(*ActionPlan_DaoDeposit); ok { + return x.DaoDeposit + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ActionPlan) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ActionPlan_Spend)(nil), + (*ActionPlan_Output)(nil), + (*ActionPlan_Swap)(nil), + (*ActionPlan_SwapClaim)(nil), + (*ActionPlan_ValidatorDefinition)(nil), + (*ActionPlan_IbcAction)(nil), + (*ActionPlan_ProposalSubmit)(nil), + (*ActionPlan_ProposalWithdraw)(nil), + (*ActionPlan_ValidatorVote)(nil), + (*ActionPlan_DelegatorVote)(nil), + (*ActionPlan_ProposalDepositClaim)(nil), + (*ActionPlan_PositionOpen)(nil), + (*ActionPlan_PositionClose)(nil), + (*ActionPlan_PositionWithdraw)(nil), + (*ActionPlan_PositionRewardClaim)(nil), + (*ActionPlan_Delegate)(nil), + (*ActionPlan_Undelegate)(nil), + (*ActionPlan_UndelegateClaim)(nil), + (*ActionPlan_DaoSpend)(nil), + (*ActionPlan_DaoOutput)(nil), + (*ActionPlan_DaoDeposit)(nil), + } +} + +// Describes a plan for forming a `Clue`. +type CluePlan struct { + // The address. + Address *v1alpha1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The random seed to use for the clue plan. + Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` + // The bits of precision. + PrecisionBits uint64 `protobuf:"varint,3,opt,name=precision_bits,json=precisionBits,proto3" json:"precision_bits,omitempty"` +} + +func (m *CluePlan) Reset() { *m = CluePlan{} } +func (m *CluePlan) String() string { return proto.CompactTextString(m) } +func (*CluePlan) ProtoMessage() {} +func (*CluePlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{20} +} +func (m *CluePlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CluePlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CluePlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CluePlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_CluePlan.Merge(m, src) +} +func (m *CluePlan) XXX_Size() int { + return m.Size() +} +func (m *CluePlan) XXX_DiscardUnknown() { + xxx_messageInfo_CluePlan.DiscardUnknown(m) +} + +var xxx_messageInfo_CluePlan proto.InternalMessageInfo + +func (m *CluePlan) GetAddress() *v1alpha1.Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *CluePlan) GetRseed() []byte { + if m != nil { + return m.Rseed + } + return nil +} + +func (m *CluePlan) GetPrecisionBits() uint64 { + if m != nil { + return m.PrecisionBits + } + return 0 +} + +// Describes a plan for forming a `Memo`. +type MemoPlan struct { + // The plaintext. + Plaintext []byte `protobuf:"bytes,1,opt,name=plaintext,proto3" json:"plaintext,omitempty"` + // The key to use to encrypt the memo. + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` +} + +func (m *MemoPlan) Reset() { *m = MemoPlan{} } +func (m *MemoPlan) String() string { return proto.CompactTextString(m) } +func (*MemoPlan) ProtoMessage() {} +func (*MemoPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{21} +} +func (m *MemoPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MemoPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MemoPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MemoPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemoPlan.Merge(m, src) +} +func (m *MemoPlan) XXX_Size() int { + return m.Size() +} +func (m *MemoPlan) XXX_DiscardUnknown() { + xxx_messageInfo_MemoPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_MemoPlan proto.InternalMessageInfo + +func (m *MemoPlan) GetPlaintext() []byte { + if m != nil { + return m.Plaintext + } + return nil +} + +func (m *MemoPlan) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +type SpendPlan struct { + // The plaintext note we plan to spend. + Note *v1alpha1.Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` + // The position of the note we plan to spend. + Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` + // The randomizer to use for the spend. + Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` + // The blinding factor to use for the value commitment. + ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` +} + +func (m *SpendPlan) Reset() { *m = SpendPlan{} } +func (m *SpendPlan) String() string { return proto.CompactTextString(m) } +func (*SpendPlan) ProtoMessage() {} +func (*SpendPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{22} +} +func (m *SpendPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendPlan.Merge(m, src) +} +func (m *SpendPlan) XXX_Size() int { + return m.Size() +} +func (m *SpendPlan) XXX_DiscardUnknown() { + xxx_messageInfo_SpendPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendPlan proto.InternalMessageInfo + +func (m *SpendPlan) GetNote() *v1alpha1.Note { + if m != nil { + return m.Note + } + return nil +} + +func (m *SpendPlan) GetPosition() uint64 { + if m != nil { + return m.Position + } + return 0 +} + +func (m *SpendPlan) GetRandomizer() []byte { + if m != nil { + return m.Randomizer + } + return nil +} + +func (m *SpendPlan) GetValueBlinding() []byte { + if m != nil { + return m.ValueBlinding + } + return nil +} + +type OutputPlan struct { + // The value to send to this output. + Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The destination address to send it to. + DestAddress *v1alpha1.Address `protobuf:"bytes,2,opt,name=dest_address,json=destAddress,proto3" json:"dest_address,omitempty"` + // The rseed to use for the new note. + Rseed []byte `protobuf:"bytes,3,opt,name=rseed,proto3" json:"rseed,omitempty"` + // The blinding factor to use for the value commitment. + ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` +} + +func (m *OutputPlan) Reset() { *m = OutputPlan{} } +func (m *OutputPlan) String() string { return proto.CompactTextString(m) } +func (*OutputPlan) ProtoMessage() {} +func (*OutputPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{23} +} +func (m *OutputPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutputPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutputPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutputPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutputPlan.Merge(m, src) +} +func (m *OutputPlan) XXX_Size() int { + return m.Size() +} +func (m *OutputPlan) XXX_DiscardUnknown() { + xxx_messageInfo_OutputPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_OutputPlan proto.InternalMessageInfo + +func (m *OutputPlan) GetValue() *v1alpha1.Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *OutputPlan) GetDestAddress() *v1alpha1.Address { + if m != nil { + return m.DestAddress + } + return nil +} + +func (m *OutputPlan) GetRseed() []byte { + if m != nil { + return m.Rseed + } + return nil +} + +func (m *OutputPlan) GetValueBlinding() []byte { + if m != nil { + return m.ValueBlinding + } + return nil +} + +func init() { + proto.RegisterType((*Transaction)(nil), "penumbra.core.transaction.v1alpha1.Transaction") + proto.RegisterType((*Id)(nil), "penumbra.core.transaction.v1alpha1.Id") + proto.RegisterType((*TransactionBody)(nil), "penumbra.core.transaction.v1alpha1.TransactionBody") + proto.RegisterType((*Action)(nil), "penumbra.core.transaction.v1alpha1.Action") + proto.RegisterType((*TransactionPerspective)(nil), "penumbra.core.transaction.v1alpha1.TransactionPerspective") + proto.RegisterType((*PayloadKeyWithCommitment)(nil), "penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment") + proto.RegisterType((*NullifierWithNote)(nil), "penumbra.core.transaction.v1alpha1.NullifierWithNote") + proto.RegisterType((*TransactionView)(nil), "penumbra.core.transaction.v1alpha1.TransactionView") + proto.RegisterType((*ActionView)(nil), "penumbra.core.transaction.v1alpha1.ActionView") + proto.RegisterType((*SpendView)(nil), "penumbra.core.transaction.v1alpha1.SpendView") + proto.RegisterType((*SpendView_Visible)(nil), "penumbra.core.transaction.v1alpha1.SpendView.Visible") + proto.RegisterType((*SpendView_Opaque)(nil), "penumbra.core.transaction.v1alpha1.SpendView.Opaque") + proto.RegisterType((*DelegatorVoteView)(nil), "penumbra.core.transaction.v1alpha1.DelegatorVoteView") + proto.RegisterType((*DelegatorVoteView_Visible)(nil), "penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible") + proto.RegisterType((*DelegatorVoteView_Opaque)(nil), "penumbra.core.transaction.v1alpha1.DelegatorVoteView.Opaque") + proto.RegisterType((*OutputView)(nil), "penumbra.core.transaction.v1alpha1.OutputView") + proto.RegisterType((*OutputView_Visible)(nil), "penumbra.core.transaction.v1alpha1.OutputView.Visible") + proto.RegisterType((*OutputView_Opaque)(nil), "penumbra.core.transaction.v1alpha1.OutputView.Opaque") + proto.RegisterType((*Spend)(nil), "penumbra.core.transaction.v1alpha1.Spend") + proto.RegisterType((*SpendBody)(nil), "penumbra.core.transaction.v1alpha1.SpendBody") + proto.RegisterType((*Output)(nil), "penumbra.core.transaction.v1alpha1.Output") + proto.RegisterType((*OutputBody)(nil), "penumbra.core.transaction.v1alpha1.OutputBody") + proto.RegisterType((*AuthorizationData)(nil), "penumbra.core.transaction.v1alpha1.AuthorizationData") + proto.RegisterType((*WitnessData)(nil), "penumbra.core.transaction.v1alpha1.WitnessData") + proto.RegisterType((*TransactionPlan)(nil), "penumbra.core.transaction.v1alpha1.TransactionPlan") + proto.RegisterType((*ActionPlan)(nil), "penumbra.core.transaction.v1alpha1.ActionPlan") + proto.RegisterType((*CluePlan)(nil), "penumbra.core.transaction.v1alpha1.CluePlan") + proto.RegisterType((*MemoPlan)(nil), "penumbra.core.transaction.v1alpha1.MemoPlan") + proto.RegisterType((*SpendPlan)(nil), "penumbra.core.transaction.v1alpha1.SpendPlan") + proto.RegisterType((*OutputPlan)(nil), "penumbra.core.transaction.v1alpha1.OutputPlan") +} + +func init() { + proto.RegisterFile("penumbra/core/transaction/v1alpha1/transaction.proto", fileDescriptor_cd20ea79758052c4) +} + +var fileDescriptor_cd20ea79758052c4 = []byte{ + // 2406 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7, + 0x15, 0xe7, 0x92, 0xfa, 0x7c, 0xa4, 0xbe, 0xc6, 0x1f, 0xd9, 0x0a, 0x85, 0x62, 0x6c, 0x6c, 0x43, + 0xb6, 0x13, 0xca, 0x96, 0xed, 0x04, 0x50, 0x53, 0x34, 0xa2, 0x14, 0x87, 0xb2, 0x23, 0x9b, 0x59, + 0xa7, 0x32, 0xec, 0xba, 0xd9, 0x0e, 0x77, 0x47, 0xe2, 0x42, 0xcb, 0x9d, 0xed, 0xee, 0x92, 0xb2, + 0x72, 0xed, 0x25, 0x45, 0xd1, 0xc2, 0x87, 0x1e, 0x8a, 0xb6, 0xa7, 0x5e, 0x02, 0xf4, 0x2f, 0x28, + 0x0a, 0xf4, 0x1e, 0xf4, 0x50, 0x18, 0xe8, 0xa5, 0x45, 0x2f, 0xad, 0x7d, 0x6a, 0x6f, 0x05, 0xfa, + 0x07, 0x14, 0x33, 0x3b, 0xfb, 0x49, 0xca, 0x5c, 0xd2, 0x0a, 0x82, 0xc4, 0x3e, 0x69, 0xe7, 0xe9, + 0xbd, 0xdf, 0xcc, 0xbc, 0xf7, 0x66, 0xe6, 0x37, 0x6f, 0x08, 0xd7, 0x1c, 0x62, 0x77, 0xda, 0x4d, + 0x17, 0xaf, 0xe8, 0xd4, 0x25, 0x2b, 0xbe, 0x8b, 0x6d, 0x0f, 0xeb, 0xbe, 0x49, 0xed, 0x95, 0xee, + 0x15, 0x6c, 0x39, 0x2d, 0x7c, 0x25, 0x29, 0xac, 0x3a, 0x2e, 0xf5, 0x29, 0x52, 0x42, 0xab, 0x2a, + 0xb3, 0xaa, 0x26, 0x15, 0x42, 0xab, 0xc5, 0x8b, 0x69, 0x64, 0xdd, 0x3d, 0x74, 0x7c, 0x1a, 0x83, + 0x06, 0xed, 0x00, 0x6f, 0x71, 0x39, 0xad, 0xeb, 0xf9, 0x78, 0x9f, 0xc4, 0xaa, 0xbc, 0x29, 0x34, + 0xcf, 0xa6, 0x35, 0xcd, 0xa6, 0x1e, 0xeb, 0x99, 0x4d, 0xbd, 0xbf, 0x96, 0x41, 0x1e, 0xc5, 0x5a, + 0x06, 0x79, 0x24, 0xb4, 0x56, 0xd3, 0x5a, 0x7b, 0xb4, 0x4b, 0x5c, 0x1b, 0xdb, 0x7a, 0xa2, 0xeb, + 0x58, 0x16, 0xd8, 0x28, 0x7f, 0x94, 0xa0, 0xfc, 0x71, 0x3c, 0x5d, 0xf4, 0x01, 0x8c, 0x35, 0xa9, + 0x71, 0x28, 0x4b, 0x67, 0xa4, 0xe5, 0xf2, 0xea, 0xd5, 0xea, 0x60, 0xc7, 0x54, 0x13, 0xe6, 0x35, + 0x6a, 0x1c, 0xaa, 0x1c, 0x00, 0xbd, 0x0e, 0xe5, 0xa6, 0x69, 0x1b, 0xa6, 0xbd, 0xa7, 0x79, 0xe6, + 0x9e, 0x5c, 0x3c, 0x23, 0x2d, 0x57, 0x54, 0x10, 0xa2, 0xbb, 0xe6, 0x1e, 0x5a, 0x87, 0x09, 0x6c, + 0xeb, 0x2d, 0xea, 0xca, 0x25, 0xde, 0xd7, 0x85, 0x4c, 0x5f, 0xc2, 0xa1, 0x51, 0x37, 0xdb, 0xc4, + 0xdd, 0xb7, 0x88, 0x4a, 0xa9, 0xaf, 0x0a, 0x43, 0x45, 0x86, 0xe2, 0x96, 0x81, 0x10, 0x8c, 0xb5, + 0xb0, 0xd7, 0xe2, 0x43, 0xae, 0xa8, 0xfc, 0x5b, 0xf9, 0x4b, 0x11, 0xe6, 0x32, 0xe3, 0x42, 0x9b, + 0x30, 0x19, 0xb4, 0x3c, 0x59, 0x3a, 0x53, 0x5a, 0x2e, 0xaf, 0x5e, 0xcc, 0x33, 0xbb, 0x75, 0xde, + 0x56, 0x43, 0x53, 0xf4, 0x06, 0xcc, 0x90, 0x47, 0x8e, 0xe9, 0x1e, 0x6a, 0x2d, 0x62, 0xee, 0xb5, + 0x7c, 0x3e, 0xb3, 0x31, 0xb5, 0x12, 0x08, 0xeb, 0x5c, 0x86, 0xbe, 0x05, 0x53, 0x7a, 0x0b, 0x9b, + 0xb6, 0x66, 0x1a, 0x7c, 0x76, 0xd3, 0xea, 0x24, 0x6f, 0x6f, 0x19, 0xe8, 0x1a, 0x94, 0x76, 0x09, + 0x91, 0xc7, 0xf8, 0x9c, 0x95, 0x01, 0x73, 0xbe, 0x41, 0x88, 0xca, 0xd4, 0xd1, 0x7b, 0x30, 0xbd, + 0xdb, 0x36, 0x34, 0xdd, 0xea, 0x10, 0x4f, 0x1e, 0xe7, 0xa3, 0x7f, 0x63, 0x80, 0xed, 0x86, 0xd5, + 0x21, 0xea, 0xd4, 0x6e, 0xdb, 0x60, 0x1f, 0x1e, 0xba, 0x08, 0xb3, 0xc4, 0xe6, 0x3a, 0xc4, 0xd0, + 0xda, 0xa4, 0x4d, 0xe5, 0x09, 0xe6, 0xaf, 0x7a, 0x41, 0x9d, 0x89, 0xe4, 0xdb, 0xa4, 0x4d, 0x3f, + 0x93, 0xa4, 0xda, 0x02, 0xcc, 0x69, 0x69, 0x65, 0xe5, 0xaf, 0xb3, 0x30, 0x11, 0xb8, 0x02, 0xad, + 0xc3, 0xb8, 0xe7, 0x10, 0xdb, 0x10, 0x39, 0x72, 0x21, 0x8f, 0x17, 0xef, 0x32, 0x83, 0x7a, 0x41, + 0x0d, 0x2c, 0xd1, 0x26, 0x4c, 0xd0, 0x8e, 0xef, 0x74, 0x02, 0xef, 0xe5, 0x8c, 0xc4, 0x1d, 0x6e, + 0x51, 0x2f, 0xa8, 0xc2, 0x16, 0xbd, 0x0d, 0x63, 0xde, 0x01, 0x76, 0x44, 0xfe, 0x9c, 0xc9, 0x60, + 0xb0, 0x75, 0x11, 0xf7, 0x7f, 0x80, 0x9d, 0x7a, 0x41, 0xe5, 0xfa, 0xe8, 0x06, 0x00, 0xfb, 0xab, + 0xe9, 0x16, 0x36, 0xdb, 0x22, 0x12, 0xe7, 0x06, 0x59, 0x6f, 0x30, 0xe5, 0x7a, 0x41, 0x9d, 0xf6, + 0xc2, 0x06, 0xda, 0x85, 0x93, 0x5d, 0x6c, 0x99, 0x06, 0xf6, 0xa9, 0xab, 0x19, 0x64, 0xd7, 0xb4, + 0x4d, 0x36, 0x62, 0x79, 0x9e, 0x23, 0x5e, 0xc9, 0x20, 0x06, 0xab, 0x3e, 0xc2, 0xdc, 0x09, 0x2d, + 0x37, 0x23, 0xc3, 0x7a, 0x41, 0x3d, 0xd1, 0xed, 0x15, 0xb3, 0xf1, 0x9a, 0x4d, 0x5d, 0x0b, 0xfc, + 0x21, 0x2f, 0xf4, 0x1d, 0x2f, 0xdb, 0x2b, 0x22, 0xec, 0xad, 0xa6, 0x1e, 0xc4, 0x8a, 0x8d, 0xd7, + 0x0c, 0x1b, 0xe8, 0x21, 0xcc, 0x39, 0x2e, 0x75, 0xa8, 0x87, 0x2d, 0xcd, 0xeb, 0x34, 0xdb, 0xa6, + 0x2f, 0xa3, 0xbe, 0x43, 0x4d, 0xec, 0x12, 0x11, 0x66, 0x43, 0x58, 0xde, 0xe5, 0x86, 0xf5, 0x82, + 0x3a, 0xeb, 0xa4, 0x24, 0xa8, 0x09, 0x0b, 0x11, 0xfa, 0x81, 0xe9, 0xb7, 0x0c, 0x17, 0x1f, 0xc8, + 0x27, 0xfa, 0x6e, 0x23, 0xcf, 0xc3, 0xbf, 0x27, 0x4c, 0xeb, 0x05, 0x75, 0xde, 0xc9, 0xc8, 0xd0, + 0x7d, 0x98, 0x8d, 0x3d, 0xde, 0xa5, 0x3e, 0x91, 0x4f, 0xf2, 0x0e, 0x2e, 0xe7, 0xe8, 0x20, 0x72, + 0xf8, 0x0e, 0xf5, 0x09, 0x4b, 0xfb, 0x6e, 0x52, 0xc0, 0xa0, 0x0d, 0x62, 0x91, 0xbd, 0x18, 0xfa, + 0x54, 0x6e, 0xe8, 0xcd, 0xd0, 0x30, 0x84, 0x36, 0x92, 0x02, 0x44, 0xe1, 0x74, 0xe4, 0x19, 0x83, + 0x38, 0xd4, 0x33, 0x7d, 0x91, 0x7b, 0xa7, 0x79, 0x17, 0xef, 0x0c, 0xe1, 0x9e, 0xcd, 0xc0, 0x3e, + 0xcc, 0xc6, 0x93, 0x4e, 0x1f, 0x39, 0xba, 0x03, 0x33, 0xbc, 0x65, 0x52, 0x5b, 0xa3, 0x0e, 0xb1, + 0xe5, 0x25, 0xde, 0xcf, 0xf2, 0xf3, 0x72, 0xbc, 0x21, 0x0c, 0xee, 0x38, 0x84, 0xa5, 0x4d, 0xc5, + 0x49, 0xb4, 0x91, 0x0a, 0xb3, 0x11, 0xa0, 0x6e, 0x51, 0x8f, 0xc8, 0xaf, 0xf7, 0x5d, 0xfb, 0x7d, + 0x11, 0x37, 0x98, 0x01, 0xf3, 0x8a, 0x93, 0x14, 0xa0, 0x1f, 0xc0, 0x42, 0x84, 0x19, 0xe5, 0xcb, + 0x19, 0x0e, 0xfb, 0x66, 0x1e, 0xd8, 0x54, 0xa2, 0x64, 0x64, 0x88, 0xc0, 0xa9, 0x08, 0xdc, 0x25, + 0x07, 0xd8, 0x35, 0x84, 0xc7, 0x15, 0xde, 0xc1, 0x4a, 0x9e, 0x0e, 0x54, 0x6e, 0x17, 0x7a, 0xfa, + 0x84, 0xd3, 0x2b, 0x46, 0x9b, 0x30, 0x25, 0x42, 0x4d, 0xe4, 0x65, 0x8e, 0x7c, 0xfe, 0xf9, 0xab, + 0x5e, 0x64, 0x0a, 0x73, 0x47, 0x64, 0x89, 0x6e, 0x02, 0x74, 0xec, 0x08, 0xe7, 0x42, 0xdf, 0x58, + 0x65, 0x70, 0xbe, 0x1f, 0xe9, 0xd7, 0x0b, 0x6a, 0xc2, 0x1a, 0x3d, 0x80, 0xf9, 0xb8, 0x25, 0xe6, + 0x7c, 0x91, 0x23, 0xbe, 0x95, 0x17, 0x31, 0x9c, 0xf1, 0x5c, 0x27, 0x2d, 0x42, 0x37, 0x61, 0xda, + 0xc0, 0x54, 0x0b, 0x36, 0xff, 0x55, 0x0e, 0x7a, 0x29, 0xcf, 0xea, 0xc0, 0x34, 0xdc, 0xfe, 0xa7, + 0x0c, 0xf1, 0x8d, 0xb6, 0x01, 0x18, 0x96, 0x38, 0x05, 0xae, 0xf6, 0x0d, 0xfb, 0x11, 0x60, 0xd1, + 0x39, 0xc0, 0x46, 0x13, 0x34, 0x50, 0x03, 0xca, 0x0c, 0x4e, 0xac, 0x2e, 0xf9, 0x5a, 0xdf, 0x19, + 0x1f, 0x81, 0x27, 0x96, 0x0e, 0x73, 0xa4, 0x11, 0xb5, 0xd0, 0x7d, 0x98, 0x37, 0x75, 0x6f, 0xf5, + 0x72, 0x94, 0x9b, 0xd8, 0x92, 0xbf, 0x90, 0xfa, 0x4e, 0x3a, 0xbd, 0xf7, 0x32, 0xa3, 0x7b, 0x91, + 0x0d, 0xf3, 0xa3, 0x99, 0x16, 0xd5, 0xa6, 0x60, 0x22, 0xd8, 0xcb, 0x95, 0xff, 0x15, 0xe1, 0x74, + 0x82, 0xa6, 0x34, 0x88, 0xeb, 0x39, 0x44, 0xf7, 0xcd, 0x2e, 0x41, 0x1a, 0x54, 0x1c, 0x7c, 0x68, + 0x51, 0x6c, 0x68, 0xfb, 0xe4, 0x30, 0xa4, 0x2c, 0xef, 0xe6, 0x39, 0x28, 0x1b, 0x81, 0xdd, 0x2d, + 0x72, 0xc8, 0x3a, 0xdd, 0xa0, 0xed, 0xb6, 0xe9, 0xb7, 0x89, 0xed, 0xab, 0x65, 0x27, 0xfa, 0x8f, + 0x87, 0x7e, 0x04, 0xf3, 0x3c, 0x92, 0x9a, 0xdd, 0xb1, 0x2c, 0x73, 0xd7, 0x24, 0xae, 0x27, 0x17, + 0x79, 0x27, 0xd7, 0xf3, 0x74, 0x72, 0x3b, 0xb4, 0x62, 0x7d, 0xdc, 0xa6, 0x3e, 0x51, 0xe7, 0x38, + 0x5c, 0x24, 0xf7, 0xd0, 0x0d, 0xa8, 0x60, 0xa3, 0x6b, 0xea, 0x44, 0xb3, 0xa9, 0x4f, 0x3c, 0xb9, + 0x94, 0x8b, 0xb7, 0x70, 0xac, 0x72, 0x60, 0xc8, 0xbe, 0x3d, 0xb6, 0x9d, 0x61, 0xc3, 0x70, 0x89, + 0xe7, 0x69, 0x5d, 0x93, 0x1c, 0x78, 0xf2, 0x58, 0x5f, 0xfa, 0x96, 0x05, 0x5a, 0x0f, 0x6c, 0x76, + 0x4c, 0x72, 0xa0, 0x56, 0x70, 0xdc, 0xf0, 0x94, 0x9f, 0x49, 0x20, 0x1f, 0xe5, 0x24, 0x46, 0x5c, + 0x13, 0x8e, 0x17, 0xac, 0x12, 0x62, 0xcf, 0xa1, 0xdb, 0x00, 0x7a, 0xa4, 0x2e, 0x08, 0x4c, 0x75, + 0xc0, 0x58, 0xee, 0xfa, 0x6c, 0x15, 0xc5, 0x91, 0x48, 0x20, 0x28, 0xbf, 0x94, 0x60, 0xa1, 0xc7, + 0x9b, 0xe8, 0x06, 0x4c, 0x47, 0x81, 0x11, 0x4c, 0x6b, 0x79, 0x90, 0xe7, 0x42, 0x7d, 0x35, 0x36, + 0x45, 0xef, 0xc0, 0x18, 0xf3, 0xbe, 0x18, 0x67, 0x2e, 0xe7, 0x73, 0x03, 0xe5, 0x71, 0x29, 0x45, + 0xa1, 0x99, 0xe7, 0xd0, 0x47, 0x50, 0x09, 0x5a, 0x22, 0x10, 0x41, 0x52, 0x56, 0xf3, 0xf3, 0x68, + 0x1e, 0x8c, 0x72, 0x8c, 0xf8, 0xf5, 0xe5, 0xd3, 0xaf, 0xc1, 0x58, 0x8a, 0x45, 0xf3, 0xd6, 0x67, + 0x92, 0x84, 0x1a, 0xd9, 0x6c, 0x7d, 0x5c, 0x7a, 0xb1, 0x74, 0xad, 0x4d, 0xc2, 0x78, 0x40, 0xc2, + 0xff, 0x3b, 0x0b, 0x10, 0xfb, 0x11, 0xbd, 0x9f, 0x26, 0xe2, 0x6f, 0xe5, 0x26, 0xe2, 0xcc, 0x3a, + 0x26, 0xe3, 0xf5, 0x0c, 0x19, 0xaf, 0xe6, 0x27, 0xe3, 0x02, 0x28, 0x24, 0xe4, 0x6b, 0x29, 0x42, + 0x7e, 0x76, 0x10, 0xa5, 0x16, 0xd6, 0x01, 0x29, 0xbf, 0xd9, 0x87, 0x94, 0x5f, 0xc8, 0x45, 0xca, + 0x05, 0xcc, 0x2b, 0x62, 0xfe, 0xcd, 0x24, 0xe6, 0x9f, 0x1c, 0x41, 0xcc, 0x73, 0x9d, 0x52, 0x29, + 0x66, 0x2e, 0x12, 0xe5, 0x15, 0x3b, 0x7f, 0x09, 0xd9, 0xf9, 0x85, 0x63, 0x62, 0xe7, 0x17, 0x5f, + 0x88, 0x9d, 0xbf, 0x54, 0x0c, 0xba, 0xdf, 0x55, 0xe4, 0xd2, 0x31, 0x5d, 0x45, 0xbe, 0x44, 0x76, + 0x3e, 0x03, 0xe5, 0x04, 0xc7, 0x51, 0x7e, 0x5e, 0x82, 0xe9, 0xe8, 0xd0, 0x44, 0x1f, 0xc1, 0x64, + 0xd7, 0xf4, 0xcc, 0xa6, 0x45, 0xc4, 0xa1, 0x7b, 0x7d, 0xa8, 0x43, 0xb7, 0xba, 0x13, 0x18, 0xd7, + 0x0b, 0x6a, 0x88, 0x83, 0x6e, 0xc3, 0x04, 0x75, 0xf0, 0x8f, 0x3b, 0x21, 0x45, 0xbb, 0x36, 0x1c, + 0xe2, 0x1d, 0x6e, 0xcb, 0x0f, 0x61, 0xfe, 0xb5, 0xf8, 0x13, 0x09, 0x26, 0x45, 0x37, 0xe8, 0x7b, + 0xa3, 0x96, 0xea, 0x42, 0x6e, 0x30, 0x2a, 0x7b, 0x5c, 0xdc, 0x82, 0x89, 0x60, 0x64, 0x2f, 0x3c, + 0x86, 0x5a, 0x05, 0x20, 0xb8, 0xa8, 0xf0, 0x78, 0xfc, 0xbd, 0x04, 0x0b, 0x3d, 0xbb, 0x3a, 0xba, + 0x9f, 0x8d, 0xcb, 0x77, 0x47, 0x3a, 0x1d, 0xfa, 0xc5, 0x67, 0x27, 0x13, 0x9f, 0x77, 0x47, 0x43, + 0xee, 0x89, 0xd3, 0x6f, 0x12, 0x71, 0xba, 0xd7, 0x73, 0xc6, 0x49, 0xa3, 0x15, 0x9f, 0xb2, 0x87, + 0xdb, 0xc8, 0xf1, 0xc3, 0x51, 0xfc, 0xbe, 0xac, 0xb1, 0xd5, 0xe6, 0xb3, 0xc0, 0xca, 0x1f, 0x4a, + 0x00, 0x31, 0xb1, 0x44, 0x6a, 0x36, 0xa8, 0x6f, 0x0f, 0xc7, 0x4c, 0xfb, 0x45, 0xf3, 0x4e, 0x26, + 0x9a, 0xd7, 0x87, 0x84, 0xec, 0x09, 0xe3, 0xe7, 0x89, 0x30, 0xd6, 0x22, 0x26, 0x2d, 0x0d, 0x5b, + 0xd6, 0x8e, 0x38, 0xf4, 0xa8, 0x11, 0xcb, 0xde, 0x5b, 0x4b, 0xd9, 0x7b, 0xeb, 0xe2, 0x87, 0x51, + 0x48, 0x8f, 0x61, 0x9c, 0x6c, 0x9b, 0x0c, 0xbe, 0x82, 0x65, 0xf9, 0x0f, 0x09, 0xc6, 0x83, 0x73, + 0x69, 0x3d, 0xf5, 0x82, 0x94, 0xff, 0x52, 0x92, 0x78, 0x3b, 0xfa, 0x10, 0xa6, 0x70, 0xc7, 0x6f, + 0x45, 0x0f, 0x47, 0xbd, 0x44, 0xb8, 0xe7, 0x7e, 0xcd, 0x10, 0xd6, 0x3b, 0x7e, 0xeb, 0xae, 0xb9, + 0x67, 0x63, 0xbf, 0xe3, 0x12, 0x75, 0x12, 0x07, 0x4d, 0xb4, 0x0e, 0xe3, 0x8e, 0x4b, 0xe9, 0xae, + 0xb8, 0x96, 0x5c, 0x1a, 0x00, 0xf5, 0xe0, 0x16, 0x07, 0x6b, 0x30, 0x13, 0x35, 0xb0, 0x54, 0x7e, + 0x2d, 0x89, 0x43, 0x80, 0x3f, 0x24, 0x69, 0x80, 0x9a, 0xd8, 0x62, 0x99, 0xae, 0x25, 0x0a, 0x01, + 0xfd, 0x57, 0x45, 0x16, 0xbd, 0x16, 0x18, 0x26, 0x4a, 0x01, 0x0b, 0xcd, 0xac, 0x08, 0x7d, 0x3b, + 0x79, 0xf7, 0x0f, 0x02, 0x99, 0xb8, 0xd1, 0xcf, 0x42, 0xd1, 0xdd, 0xe7, 0x37, 0xa4, 0x8a, 0x5a, + 0x74, 0xf7, 0x95, 0xc7, 0x12, 0x4c, 0x88, 0x43, 0xbc, 0x96, 0xf2, 0xfd, 0x10, 0x17, 0xb9, 0x84, + 0xf3, 0x6b, 0xa1, 0xbb, 0x8a, 0x7d, 0x29, 0x45, 0xaf, 0xbb, 0x02, 0x84, 0x94, 0xbf, 0x7e, 0x51, + 0x0c, 0x17, 0x32, 0x77, 0xd8, 0x36, 0x54, 0x58, 0x8a, 0x6a, 0x22, 0x19, 0x8f, 0xc8, 0xba, 0x7e, + 0xb9, 0x2d, 0xaa, 0x34, 0x6a, 0xd9, 0x8e, 0x1b, 0x47, 0xf8, 0xbf, 0x78, 0x7c, 0xfe, 0x5f, 0x86, + 0xf9, 0x03, 0x17, 0x3b, 0x8e, 0x78, 0xfc, 0x4a, 0xac, 0xa7, 0x59, 0x21, 0xdf, 0x26, 0x6d, 0x7a, + 0x8b, 0x1c, 0xa2, 0xf3, 0x30, 0x47, 0xbb, 0xfb, 0x5a, 0xa8, 0xcd, 0x14, 0x83, 0xc0, 0xcc, 0xd0, + 0xee, 0xfe, 0xbd, 0x40, 0x7a, 0x8b, 0x1c, 0x2a, 0xbf, 0x2a, 0xc2, 0x02, 0x4b, 0x4f, 0xea, 0x9a, + 0x9f, 0x62, 0x16, 0x80, 0x4d, 0xec, 0x63, 0x74, 0x13, 0xca, 0x64, 0x77, 0x97, 0xe8, 0xbe, 0x16, + 0x3d, 0x60, 0x0e, 0x7e, 0x07, 0x7d, 0x9f, 0x5b, 0xd4, 0xb1, 0xd7, 0x52, 0x81, 0x44, 0xdf, 0x48, + 0x85, 0x72, 0x70, 0x4a, 0xb2, 0xb4, 0x0f, 0x2b, 0x79, 0x23, 0x2c, 0x9b, 0xe0, 0xac, 0x65, 0x32, + 0x0f, 0xe9, 0x70, 0x32, 0xbd, 0x43, 0x0b, 0xf0, 0xd2, 0xa8, 0xe0, 0x28, 0x75, 0x02, 0xf0, 0x4e, + 0x94, 0x3f, 0x49, 0x50, 0xbe, 0x67, 0xfa, 0x36, 0xf1, 0x3c, 0xee, 0x94, 0xf8, 0x5d, 0x58, 0x1a, + 0xf1, 0x5d, 0x18, 0xed, 0xc3, 0x6b, 0x9e, 0xcf, 0x49, 0x67, 0x14, 0x53, 0x8d, 0x27, 0x66, 0xe8, + 0x97, 0xab, 0xc3, 0x95, 0xeb, 0x82, 0xdc, 0x3e, 0xe5, 0xf5, 0x91, 0x7a, 0xca, 0xbf, 0xd3, 0x4f, + 0xcd, 0x0d, 0x0b, 0xdb, 0xa8, 0x9e, 0x7d, 0x6a, 0x1e, 0xa2, 0x44, 0xc6, 0x00, 0xbe, 0xea, 0xe7, + 0xe6, 0x5b, 0x00, 0xba, 0xd5, 0x21, 0x9a, 0x63, 0x61, 0x3b, 0xac, 0x8f, 0xbd, 0x99, 0x67, 0x0a, + 0x1b, 0x56, 0x87, 0xf0, 0x09, 0x4c, 0xeb, 0xe2, 0xcb, 0x43, 0x5b, 0x30, 0xcd, 0x57, 0x11, 0x03, + 0xe3, 0xe5, 0xb2, 0x9c, 0x58, 0x6c, 0x8d, 0x71, 0xac, 0xa9, 0xb6, 0xf8, 0x52, 0x7e, 0x1b, 0x15, + 0xc0, 0xb8, 0x9b, 0x47, 0x2e, 0x80, 0x31, 0xeb, 0x63, 0x29, 0x80, 0x09, 0xa0, 0x11, 0x0b, 0x60, + 0xc2, 0xfa, 0x45, 0x0b, 0x60, 0x02, 0xe6, 0x55, 0x01, 0xec, 0x9b, 0x59, 0x00, 0xfb, 0xe1, 0x11, + 0x05, 0xb0, 0x6b, 0xc3, 0x12, 0x70, 0x91, 0x27, 0xaf, 0xea, 0x5f, 0x39, 0xea, 0x5f, 0xda, 0xd1, + 0xf5, 0xaf, 0xcb, 0xc3, 0xd4, 0xbf, 0x84, 0xcf, 0x7b, 0x6b, 0x60, 0xe6, 0xf3, 0x6b, 0x60, 0x57, + 0x87, 0xac, 0x81, 0x89, 0x7e, 0xbe, 0x26, 0xaf, 0xd4, 0x9f, 0x1c, 0xf9, 0x4a, 0x7d, 0x65, 0xa8, + 0xd2, 0x90, 0x98, 0xf5, 0x4b, 0xfd, 0x52, 0x9d, 0x78, 0x4e, 0xfe, 0xa9, 0x04, 0x53, 0xe1, 0x09, + 0x8c, 0xde, 0x83, 0x49, 0xf1, 0x8a, 0x24, 0x8e, 0xc7, 0xf3, 0xf9, 0x1e, 0xa0, 0xd4, 0xd0, 0x0c, + 0x9d, 0x84, 0x71, 0xd7, 0x23, 0xc4, 0x10, 0x3f, 0xde, 0x0b, 0x1a, 0xe8, 0x1c, 0xcc, 0x3a, 0x2e, + 0xd1, 0x4d, 0x8f, 0x65, 0x6e, 0xd3, 0xf4, 0x3d, 0x7e, 0xda, 0x8d, 0xa9, 0x33, 0x91, 0xb4, 0x66, + 0xfa, 0x9e, 0xb2, 0x06, 0x53, 0xe1, 0x01, 0xce, 0xee, 0x33, 0x8e, 0x85, 0x4d, 0xdb, 0x27, 0x8f, + 0x7c, 0xf1, 0xa0, 0x1a, 0x0b, 0xd0, 0x3c, 0x94, 0x18, 0x6f, 0x0e, 0x3a, 0x61, 0x9f, 0xca, 0xe7, + 0xe1, 0x75, 0x8b, 0x5b, 0x87, 0x37, 0x62, 0x69, 0xd8, 0x1b, 0xf1, 0x22, 0x4c, 0x85, 0xcb, 0x41, + 0xd0, 0xa6, 0xa8, 0x8d, 0x96, 0x00, 0x5c, 0x6c, 0x1b, 0xb4, 0x6d, 0x7e, 0x1a, 0xdd, 0xb1, 0x12, + 0x12, 0x36, 0xcb, 0x2e, 0x66, 0x14, 0xa8, 0x69, 0x05, 0x3f, 0x59, 0x0c, 0x79, 0x3d, 0x97, 0xd6, + 0x84, 0x50, 0x79, 0x22, 0x85, 0x17, 0x1d, 0x3e, 0xd4, 0x35, 0x18, 0xe7, 0xff, 0x17, 0x63, 0x3d, + 0x3b, 0x60, 0xac, 0x3b, 0x4c, 0x57, 0x0d, 0x4c, 0xd0, 0x16, 0x54, 0x0c, 0xe2, 0xf9, 0x5a, 0x18, + 0xb4, 0xe2, 0x50, 0x41, 0x2b, 0x33, 0xdb, 0xf5, 0x6c, 0xe0, 0x4a, 0x99, 0xc0, 0xe5, 0x98, 0x52, + 0xed, 0x5f, 0xc5, 0x2f, 0x9e, 0x2e, 0x49, 0x4f, 0x9e, 0x2e, 0x49, 0xff, 0x7c, 0xba, 0x24, 0x3d, + 0x7e, 0xb6, 0x54, 0x78, 0xf2, 0x6c, 0xa9, 0xf0, 0xb7, 0x67, 0x4b, 0x05, 0x38, 0xaf, 0xd3, 0x76, + 0x0e, 0x6e, 0x54, 0x9b, 0x4f, 0xf2, 0x61, 0x97, 0xfa, 0xb4, 0x21, 0x3d, 0x68, 0xee, 0x99, 0x7e, + 0xab, 0xd3, 0xac, 0xea, 0xb4, 0xbd, 0xa2, 0x53, 0xaf, 0x4d, 0xbd, 0x15, 0x97, 0x58, 0xf8, 0x90, + 0xb8, 0x2b, 0xdd, 0xd5, 0xe8, 0x93, 0xd3, 0x56, 0x6f, 0x65, 0xf0, 0x8f, 0x78, 0xbf, 0x93, 0x10, + 0x86, 0xb2, 0xdf, 0x15, 0x4b, 0x8d, 0x8d, 0x8f, 0x7f, 0x5f, 0x54, 0x1a, 0xe1, 0x10, 0x37, 0xd8, + 0x10, 0x13, 0x83, 0xa9, 0xee, 0x08, 0xd5, 0x3f, 0xc7, 0x4a, 0x0f, 0x99, 0xd2, 0xc3, 0x84, 0xd2, + 0xc3, 0x50, 0xe9, 0x69, 0xb1, 0x3a, 0x58, 0xe9, 0xe1, 0x07, 0x8d, 0xda, 0x36, 0xf1, 0xb1, 0x81, + 0x7d, 0xfc, 0x9f, 0xe2, 0xb9, 0xd0, 0x60, 0x6d, 0x8d, 0x59, 0xac, 0xad, 0x25, 0x4c, 0xd6, 0xd6, + 0x42, 0x9b, 0xe6, 0x04, 0xff, 0xf1, 0xed, 0xd5, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x15, + 0x12, 0x01, 0xae, 0x2c, 0x00, 0x00, +} + +func (m *Transaction) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Transaction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Transaction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Anchor != nil { + { + size, err := m.Anchor.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.BindingSig) > 0 { + i -= len(m.BindingSig) + copy(dAtA[i:], m.BindingSig) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.BindingSig))) + i-- + dAtA[i] = 0x12 + } + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Id) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Id) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Id) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XEncryptedMemo != nil { + { + size := m.XEncryptedMemo.Size() + i -= size + if _, err := m.XEncryptedMemo.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if len(m.FmdClues) > 0 { + for iNdEx := len(m.FmdClues) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.FmdClues[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.Fee != nil { + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0x1a + } + if m.ExpiryHeight != 0 { + i = encodeVarintTransaction(dAtA, i, uint64(m.ExpiryHeight)) + i-- + dAtA[i] = 0x10 + } + if len(m.Actions) > 0 { + for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Actions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *TransactionBody_EncryptedMemo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionBody_EncryptedMemo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.EncryptedMemo != nil { + i -= len(m.EncryptedMemo) + copy(dAtA[i:], m.EncryptedMemo) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.EncryptedMemo))) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *Action) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Action) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Action != nil { + { + size := m.Action.Size() + i -= size + if _, err := m.Action.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *Action_Spend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_Spend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Spend != nil { + { + size, err := m.Spend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Action_Output) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_Output) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Output != nil { + { + size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Action_Swap) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_Swap) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *Action_SwapClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_SwapClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.SwapClaim != nil { + { + size, err := m.SwapClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *Action_ValidatorDefinition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_ValidatorDefinition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ValidatorDefinition != nil { + { + size, err := m.ValidatorDefinition.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *Action_IbcAction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_IbcAction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.IbcAction != nil { + { + size, err := m.IbcAction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + return len(dAtA) - i, nil +} +func (m *Action_ProposalSubmit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_ProposalSubmit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalSubmit != nil { + { + size, err := m.ProposalSubmit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *Action_ProposalWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_ProposalWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalWithdraw != nil { + { + size, err := m.ProposalWithdraw.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *Action_ValidatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_ValidatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ValidatorVote != nil { + { + size, err := m.ValidatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *Action_DelegatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_DelegatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DelegatorVote != nil { + { + size, err := m.DelegatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + return len(dAtA) - i, nil +} +func (m *Action_ProposalDepositClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_ProposalDepositClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalDepositClaim != nil { + { + size, err := m.ProposalDepositClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + return len(dAtA) - i, nil +} +func (m *Action_PositionOpen) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_PositionOpen) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionOpen != nil { + { + size, err := m.PositionOpen.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf2 + } + return len(dAtA) - i, nil +} +func (m *Action_PositionClose) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_PositionClose) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionClose != nil { + { + size, err := m.PositionClose.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xfa + } + return len(dAtA) - i, nil +} +func (m *Action_PositionWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_PositionWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionWithdraw != nil { + { + size, err := m.PositionWithdraw.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *Action_PositionRewardClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_PositionRewardClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionRewardClaim != nil { + { + size, err := m.PositionRewardClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *Action_Delegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_Delegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Delegate != nil { + { + size, err := m.Delegate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xc2 + } + return len(dAtA) - i, nil +} +func (m *Action_Undelegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_Undelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Undelegate != nil { + { + size, err := m.Undelegate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xca + } + return len(dAtA) - i, nil +} +func (m *Action_UndelegateClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_UndelegateClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UndelegateClaim != nil { + { + size, err := m.UndelegateClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xd2 + } + return len(dAtA) - i, nil +} +func (m *Action_DaoSpend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_DaoSpend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoSpend != nil { + { + size, err := m.DaoSpend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *Action_DaoOutput) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_DaoOutput) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoOutput != nil { + { + size, err := m.DaoOutput.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *Action_DaoDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_DaoDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoDeposit != nil { + { + size, err := m.DaoDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *Action_Ics20Withdrawal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Action_Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Ics20Withdrawal != nil { + { + size, err := m.Ics20Withdrawal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xc + i-- + dAtA[i] = 0xc2 + } + return len(dAtA) - i, nil +} +func (m *TransactionPerspective) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPerspective) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPerspective) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AddressViews) > 0 { + for iNdEx := len(m.AddressViews) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressViews[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.AdviceNotes) > 0 { + for iNdEx := len(m.AdviceNotes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AdviceNotes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.SpendNullifiers) > 0 { + for iNdEx := len(m.SpendNullifiers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SpendNullifiers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.PayloadKeys) > 0 { + for iNdEx := len(m.PayloadKeys) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PayloadKeys[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *PayloadKeyWithCommitment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PayloadKeyWithCommitment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PayloadKeyWithCommitment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Commitment != nil { + { + size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.PayloadKey) > 0 { + i -= len(m.PayloadKey) + copy(dAtA[i:], m.PayloadKey) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.PayloadKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NullifierWithNote) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NullifierWithNote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NullifierWithNote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Nullifier != nil { + { + size, err := m.Nullifier.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AddressViews) > 0 { + for iNdEx := len(m.AddressViews) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressViews[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x19 + i-- + dAtA[i] = 0x82 + } + } + if m.XMemo != nil { + { + size := m.XMemo.Size() + i -= size + if _, err := m.XMemo.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if len(m.FmdClues) > 0 { + for iNdEx := len(m.FmdClues) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.FmdClues[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.Fee != nil { + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0x1a + } + if m.ExpiryHeight != 0 { + i = encodeVarintTransaction(dAtA, i, uint64(m.ExpiryHeight)) + i-- + dAtA[i] = 0x10 + } + if len(m.ActionViews) > 0 { + for iNdEx := len(m.ActionViews) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ActionViews[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *TransactionView_Memo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionView_Memo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Memo != nil { + i -= len(m.Memo) + copy(dAtA[i:], m.Memo) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Memo))) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *ActionView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ActionView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ActionView != nil { + { + size := m.ActionView.Size() + i -= size + if _, err := m.ActionView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ActionView_Spend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_Spend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Spend != nil { + { + size, err := m.Spend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *ActionView_Output) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_Output) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Output != nil { + { + size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *ActionView_Swap) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_Swap) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *ActionView_SwapClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_SwapClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.SwapClaim != nil { + { + size, err := m.SwapClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *ActionView_ValidatorDefinition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_ValidatorDefinition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ValidatorDefinition != nil { + { + size, err := m.ValidatorDefinition.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *ActionView_IbcAction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_IbcAction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.IbcAction != nil { + { + size, err := m.IbcAction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + return len(dAtA) - i, nil +} +func (m *ActionView_ProposalSubmit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_ProposalSubmit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalSubmit != nil { + { + size, err := m.ProposalSubmit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *ActionView_ProposalWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_ProposalWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalWithdraw != nil { + { + size, err := m.ProposalWithdraw.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *ActionView_ValidatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_ValidatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ValidatorVote != nil { + { + size, err := m.ValidatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *ActionView_DelegatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_DelegatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DelegatorVote != nil { + { + size, err := m.DelegatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + return len(dAtA) - i, nil +} +func (m *ActionView_ProposalDepositClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_ProposalDepositClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalDepositClaim != nil { + { + size, err := m.ProposalDepositClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + return len(dAtA) - i, nil +} +func (m *ActionView_PositionOpen) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_PositionOpen) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionOpen != nil { + { + size, err := m.PositionOpen.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf2 + } + return len(dAtA) - i, nil +} +func (m *ActionView_PositionClose) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_PositionClose) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionClose != nil { + { + size, err := m.PositionClose.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xfa + } + return len(dAtA) - i, nil +} +func (m *ActionView_PositionWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_PositionWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionWithdraw != nil { + { + size, err := m.PositionWithdraw.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *ActionView_PositionRewardClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_PositionRewardClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionRewardClaim != nil { + { + size, err := m.PositionRewardClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *ActionView_Delegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_Delegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Delegate != nil { + { + size, err := m.Delegate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xca + } + return len(dAtA) - i, nil +} +func (m *ActionView_Undelegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_Undelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Undelegate != nil { + { + size, err := m.Undelegate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xd2 + } + return len(dAtA) - i, nil +} +func (m *ActionView_UndelegateClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_UndelegateClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UndelegateClaim != nil { + { + size, err := m.UndelegateClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xda + } + return len(dAtA) - i, nil +} +func (m *ActionView_DaoSpend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_DaoSpend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoSpend != nil { + { + size, err := m.DaoSpend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *ActionView_DaoOutput) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_DaoOutput) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoOutput != nil { + { + size, err := m.DaoOutput.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *ActionView_DaoDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_DaoDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoDeposit != nil { + { + size, err := m.DaoDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *ActionView_Ics20Withdrawal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionView_Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Ics20Withdrawal != nil { + { + size, err := m.Ics20Withdrawal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xc + i-- + dAtA[i] = 0xc2 + } + return len(dAtA) - i, nil +} +func (m *SpendView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SpendView != nil { + { + size := m.SpendView.Size() + i -= size + if _, err := m.SpendView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *SpendView_Visible_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendView_Visible_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Visible != nil { + { + size, err := m.Visible.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *SpendView_Opaque_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendView_Opaque_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opaque != nil { + { + size, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *SpendView_Visible) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendView_Visible) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Spend != nil { + { + size, err := m.Spend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendView_Opaque) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendView_Opaque) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendView_Opaque) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Spend != nil { + { + size, err := m.Spend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DelegatorVoteView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DelegatorVoteView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVoteView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DelegatorVote != nil { + { + size := m.DelegatorVote.Size() + i -= size + if _, err := m.DelegatorVote.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *DelegatorVoteView_Visible_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVoteView_Visible_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Visible != nil { + { + size, err := m.Visible.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *DelegatorVoteView_Opaque_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVoteView_Opaque_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opaque != nil { + { + size, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *DelegatorVoteView_Visible) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DelegatorVoteView_Visible) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVoteView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.DelegatorVote != nil { + { + size, err := m.DelegatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DelegatorVoteView_Opaque) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DelegatorVoteView_Opaque) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DelegatorVoteView_Opaque) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DelegatorVote != nil { + { + size, err := m.DelegatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OutputView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OutputView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.OutputView != nil { + { + size := m.OutputView.Size() + i -= size + if _, err := m.OutputView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *OutputView_Visible_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputView_Visible_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Visible != nil { + { + size, err := m.Visible.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *OutputView_Opaque_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputView_Opaque_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opaque != nil { + { + size, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *OutputView_Visible) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OutputView_Visible) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.PayloadKey) > 0 { + i -= len(m.PayloadKey) + copy(dAtA[i:], m.PayloadKey) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.PayloadKey))) + i-- + dAtA[i] = 0x1a + } + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Output != nil { + { + size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OutputView_Opaque) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OutputView_Opaque) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputView_Opaque) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Output != nil { + { + size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Spend) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Spend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Spend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Proof != nil { + { + size, err := m.Proof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.AuthSig != nil { + { + size, err := m.AuthSig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Rk) > 0 { + i -= len(m.Rk) + copy(dAtA[i:], m.Rk) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Rk))) + i-- + dAtA[i] = 0x22 + } + if len(m.Nullifier) > 0 { + i -= len(m.Nullifier) + copy(dAtA[i:], m.Nullifier) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Nullifier))) + i-- + dAtA[i] = 0x1a + } + if m.BalanceCommitment != nil { + { + size, err := m.BalanceCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Output) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Output) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Output) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Proof != nil { + { + size, err := m.Proof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Body != nil { + { + size, err := m.Body.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OutputBody) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OutputBody) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.OvkWrappedKey) > 0 { + i -= len(m.OvkWrappedKey) + copy(dAtA[i:], m.OvkWrappedKey) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.OvkWrappedKey))) + i-- + dAtA[i] = 0x22 + } + if len(m.WrappedMemoKey) > 0 { + i -= len(m.WrappedMemoKey) + copy(dAtA[i:], m.WrappedMemoKey) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.WrappedMemoKey))) + i-- + dAtA[i] = 0x1a + } + if m.BalanceCommitment != nil { + { + size, err := m.BalanceCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.NotePayload != nil { + { + size, err := m.NotePayload.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AuthorizationData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuthorizationData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AuthorizationData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.DelegatorVoteAuths) > 0 { + for iNdEx := len(m.DelegatorVoteAuths) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DelegatorVoteAuths[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.SpendAuths) > 0 { + for iNdEx := len(m.SpendAuths) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SpendAuths[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.EffectHash != nil { + { + size, err := m.EffectHash.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WitnessData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WitnessData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WitnessData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.StateCommitmentProofs) > 0 { + for iNdEx := len(m.StateCommitmentProofs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.StateCommitmentProofs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Anchor != nil { + { + size, err := m.Anchor.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.MemoPlan != nil { + { + size, err := m.MemoPlan.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if len(m.CluePlans) > 0 { + for iNdEx := len(m.CluePlans) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.CluePlans[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.Fee != nil { + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0x1a + } + if m.ExpiryHeight != 0 { + i = encodeVarintTransaction(dAtA, i, uint64(m.ExpiryHeight)) + i-- + dAtA[i] = 0x10 + } + if len(m.Actions) > 0 { + for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Actions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ActionPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ActionPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Action != nil { + { + size := m.Action.Size() + i -= size + if _, err := m.Action.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ActionPlan_Spend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_Spend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Spend != nil { + { + size, err := m.Spend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_Output) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_Output) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Output != nil { + { + size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_Swap) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_Swap) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_SwapClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_SwapClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.SwapClaim != nil { + { + size, err := m.SwapClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_ValidatorDefinition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_ValidatorDefinition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ValidatorDefinition != nil { + { + size, err := m.ValidatorDefinition.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_IbcAction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_IbcAction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.IbcAction != nil { + { + size, err := m.IbcAction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_ProposalSubmit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_ProposalSubmit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalSubmit != nil { + { + size, err := m.ProposalSubmit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_ProposalWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_ProposalWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalWithdraw != nil { + { + size, err := m.ProposalWithdraw.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_ValidatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_ValidatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ValidatorVote != nil { + { + size, err := m.ValidatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_DelegatorVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_DelegatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DelegatorVote != nil { + { + size, err := m.DelegatorVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_ProposalDepositClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_ProposalDepositClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProposalDepositClaim != nil { + { + size, err := m.ProposalDepositClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_PositionOpen) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_PositionOpen) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionOpen != nil { + { + size, err := m.PositionOpen.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf2 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_PositionClose) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_PositionClose) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionClose != nil { + { + size, err := m.PositionClose.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xfa + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_PositionWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_PositionWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionWithdraw != nil { + { + size, err := m.PositionWithdraw.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_PositionRewardClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_PositionRewardClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionRewardClaim != nil { + { + size, err := m.PositionRewardClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_Delegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_Delegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Delegate != nil { + { + size, err := m.Delegate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xc2 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_Undelegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_Undelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Undelegate != nil { + { + size, err := m.Undelegate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xca + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_UndelegateClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_UndelegateClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UndelegateClaim != nil { + { + size, err := m.UndelegateClaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xd2 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_DaoSpend) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_DaoSpend) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoSpend != nil { + { + size, err := m.DaoSpend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_DaoOutput) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_DaoOutput) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoOutput != nil { + { + size, err := m.DaoOutput.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *ActionPlan_DaoDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_DaoDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DaoDeposit != nil { + { + size, err := m.DaoDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *CluePlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CluePlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CluePlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PrecisionBits != 0 { + i = encodeVarintTransaction(dAtA, i, uint64(m.PrecisionBits)) + i-- + dAtA[i] = 0x18 + } + if len(m.Rseed) > 0 { + i -= len(m.Rseed) + copy(dAtA[i:], m.Rseed) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Rseed))) + i-- + dAtA[i] = 0x12 + } + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MemoPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MemoPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MemoPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0x12 + } + if len(m.Plaintext) > 0 { + i -= len(m.Plaintext) + copy(dAtA[i:], m.Plaintext) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Plaintext))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ValueBlinding) > 0 { + i -= len(m.ValueBlinding) + copy(dAtA[i:], m.ValueBlinding) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ValueBlinding))) + i-- + dAtA[i] = 0x22 + } + if len(m.Randomizer) > 0 { + i -= len(m.Randomizer) + copy(dAtA[i:], m.Randomizer) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Randomizer))) + i-- + dAtA[i] = 0x1a + } + if m.Position != 0 { + i = encodeVarintTransaction(dAtA, i, uint64(m.Position)) + i-- + dAtA[i] = 0x10 + } + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OutputPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OutputPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ValueBlinding) > 0 { + i -= len(m.ValueBlinding) + copy(dAtA[i:], m.ValueBlinding) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ValueBlinding))) + i-- + dAtA[i] = 0x22 + } + if len(m.Rseed) > 0 { + i -= len(m.Rseed) + copy(dAtA[i:], m.Rseed) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Rseed))) + i-- + dAtA[i] = 0x1a + } + if m.DestAddress != nil { + { + size, err := m.DestAddress.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintTransaction(dAtA []byte, offset int, v uint64) int { + offset -= sovTransaction(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Transaction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.BindingSig) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Anchor != nil { + l = m.Anchor.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *Id) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *TransactionBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Actions) > 0 { + for _, e := range m.Actions { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if m.ExpiryHeight != 0 { + n += 1 + sovTransaction(uint64(m.ExpiryHeight)) + } + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Fee != nil { + l = m.Fee.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if len(m.FmdClues) > 0 { + for _, e := range m.FmdClues { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if m.XEncryptedMemo != nil { + n += m.XEncryptedMemo.Size() + } + return n +} + +func (m *TransactionBody_EncryptedMemo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.EncryptedMemo != nil { + l = len(m.EncryptedMemo) + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Action != nil { + n += m.Action.Size() + } + return n +} + +func (m *Action_Spend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Spend != nil { + l = m.Spend.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_Output) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Output != nil { + l = m.Output.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_Swap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_SwapClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapClaim != nil { + l = m.SwapClaim.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_ValidatorDefinition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorDefinition != nil { + l = m.ValidatorDefinition.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_IbcAction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.IbcAction != nil { + l = m.IbcAction.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_ProposalSubmit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalSubmit != nil { + l = m.ProposalSubmit.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_ProposalWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalWithdraw != nil { + l = m.ProposalWithdraw.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_ValidatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorVote != nil { + l = m.ValidatorVote.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_DelegatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DelegatorVote != nil { + l = m.DelegatorVote.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_ProposalDepositClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalDepositClaim != nil { + l = m.ProposalDepositClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_PositionOpen) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionOpen != nil { + l = m.PositionOpen.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_PositionClose) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionClose != nil { + l = m.PositionClose.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_PositionWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionWithdraw != nil { + l = m.PositionWithdraw.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_PositionRewardClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionRewardClaim != nil { + l = m.PositionRewardClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_Delegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Delegate != nil { + l = m.Delegate.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_Undelegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Undelegate != nil { + l = m.Undelegate.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_UndelegateClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UndelegateClaim != nil { + l = m.UndelegateClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_DaoSpend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoSpend != nil { + l = m.DaoSpend.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_DaoOutput) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoOutput != nil { + l = m.DaoOutput.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_DaoDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoDeposit != nil { + l = m.DaoDeposit.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *Action_Ics20Withdrawal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Ics20Withdrawal != nil { + l = m.Ics20Withdrawal.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *TransactionPerspective) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PayloadKeys) > 0 { + for _, e := range m.PayloadKeys { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if len(m.SpendNullifiers) > 0 { + for _, e := range m.SpendNullifiers { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if len(m.AdviceNotes) > 0 { + for _, e := range m.AdviceNotes { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if len(m.AddressViews) > 0 { + for _, e := range m.AddressViews { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + return n +} + +func (m *PayloadKeyWithCommitment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.PayloadKey) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Commitment != nil { + l = m.Commitment.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *NullifierWithNote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Nullifier != nil { + l = m.Nullifier.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *TransactionView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ActionViews) > 0 { + for _, e := range m.ActionViews { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if m.ExpiryHeight != 0 { + n += 1 + sovTransaction(uint64(m.ExpiryHeight)) + } + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Fee != nil { + l = m.Fee.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if len(m.FmdClues) > 0 { + for _, e := range m.FmdClues { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if m.XMemo != nil { + n += m.XMemo.Size() + } + if len(m.AddressViews) > 0 { + for _, e := range m.AddressViews { + l = e.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + } + return n +} + +func (m *TransactionView_Memo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Memo != nil { + l = len(m.Memo) + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ActionView != nil { + n += m.ActionView.Size() + } + return n +} + +func (m *ActionView_Spend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Spend != nil { + l = m.Spend.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_Output) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Output != nil { + l = m.Output.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_Swap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_SwapClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapClaim != nil { + l = m.SwapClaim.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_ValidatorDefinition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorDefinition != nil { + l = m.ValidatorDefinition.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_IbcAction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.IbcAction != nil { + l = m.IbcAction.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_ProposalSubmit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalSubmit != nil { + l = m.ProposalSubmit.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_ProposalWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalWithdraw != nil { + l = m.ProposalWithdraw.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_ValidatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorVote != nil { + l = m.ValidatorVote.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_DelegatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DelegatorVote != nil { + l = m.DelegatorVote.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_ProposalDepositClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalDepositClaim != nil { + l = m.ProposalDepositClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_PositionOpen) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionOpen != nil { + l = m.PositionOpen.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_PositionClose) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionClose != nil { + l = m.PositionClose.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_PositionWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionWithdraw != nil { + l = m.PositionWithdraw.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_PositionRewardClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionRewardClaim != nil { + l = m.PositionRewardClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_Delegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Delegate != nil { + l = m.Delegate.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_Undelegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Undelegate != nil { + l = m.Undelegate.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_UndelegateClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UndelegateClaim != nil { + l = m.UndelegateClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_DaoSpend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoSpend != nil { + l = m.DaoSpend.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_DaoOutput) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoOutput != nil { + l = m.DaoOutput.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_DaoDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoDeposit != nil { + l = m.DaoDeposit.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView_Ics20Withdrawal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Ics20Withdrawal != nil { + l = m.Ics20Withdrawal.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *SpendView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SpendView != nil { + n += m.SpendView.Size() + } + return n +} + +func (m *SpendView_Visible_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Visible != nil { + l = m.Visible.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *SpendView_Opaque_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opaque != nil { + l = m.Opaque.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *SpendView_Visible) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Spend != nil { + l = m.Spend.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *SpendView_Opaque) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Spend != nil { + l = m.Spend.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *DelegatorVoteView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DelegatorVote != nil { + n += m.DelegatorVote.Size() + } + return n +} + +func (m *DelegatorVoteView_Visible_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Visible != nil { + l = m.Visible.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *DelegatorVoteView_Opaque_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opaque != nil { + l = m.Opaque.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *DelegatorVoteView_Visible) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DelegatorVote != nil { + l = m.DelegatorVote.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *DelegatorVoteView_Opaque) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DelegatorVote != nil { + l = m.DelegatorVote.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *OutputView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OutputView != nil { + n += m.OutputView.Size() + } + return n +} + +func (m *OutputView_Visible_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Visible != nil { + l = m.Visible.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *OutputView_Opaque_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opaque != nil { + l = m.Opaque.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *OutputView_Visible) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Output != nil { + l = m.Output.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.PayloadKey) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *OutputView_Opaque) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Output != nil { + l = m.Output.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *Spend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.AuthSig != nil { + l = m.AuthSig.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Proof != nil { + l = m.Proof.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *SpendBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BalanceCommitment != nil { + l = m.BalanceCommitment.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.Nullifier) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.Rk) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *Output) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Body != nil { + l = m.Body.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Proof != nil { + l = m.Proof.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *OutputBody) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NotePayload != nil { + l = m.NotePayload.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.BalanceCommitment != nil { + l = m.BalanceCommitment.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.WrappedMemoKey) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.OvkWrappedKey) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *AuthorizationData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.EffectHash != nil { + l = m.EffectHash.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if len(m.SpendAuths) > 0 { + for _, e := range m.SpendAuths { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if len(m.DelegatorVoteAuths) > 0 { + for _, e := range m.DelegatorVoteAuths { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + return n +} + +func (m *WitnessData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Anchor != nil { + l = m.Anchor.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if len(m.StateCommitmentProofs) > 0 { + for _, e := range m.StateCommitmentProofs { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + return n +} + +func (m *TransactionPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Actions) > 0 { + for _, e := range m.Actions { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if m.ExpiryHeight != 0 { + n += 1 + sovTransaction(uint64(m.ExpiryHeight)) + } + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Fee != nil { + l = m.Fee.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if len(m.CluePlans) > 0 { + for _, e := range m.CluePlans { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + if m.MemoPlan != nil { + l = m.MemoPlan.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *ActionPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Action != nil { + n += m.Action.Size() + } + return n +} + +func (m *ActionPlan_Spend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Spend != nil { + l = m.Spend.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_Output) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Output != nil { + l = m.Output.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_Swap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_SwapClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapClaim != nil { + l = m.SwapClaim.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_ValidatorDefinition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorDefinition != nil { + l = m.ValidatorDefinition.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_IbcAction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.IbcAction != nil { + l = m.IbcAction.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_ProposalSubmit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalSubmit != nil { + l = m.ProposalSubmit.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_ProposalWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalWithdraw != nil { + l = m.ProposalWithdraw.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_ValidatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ValidatorVote != nil { + l = m.ValidatorVote.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_DelegatorVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DelegatorVote != nil { + l = m.DelegatorVote.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_ProposalDepositClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProposalDepositClaim != nil { + l = m.ProposalDepositClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_PositionOpen) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionOpen != nil { + l = m.PositionOpen.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_PositionClose) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionClose != nil { + l = m.PositionClose.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_PositionWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionWithdraw != nil { + l = m.PositionWithdraw.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_PositionRewardClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PositionRewardClaim != nil { + l = m.PositionRewardClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_Delegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Delegate != nil { + l = m.Delegate.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_Undelegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Undelegate != nil { + l = m.Undelegate.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_UndelegateClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UndelegateClaim != nil { + l = m.UndelegateClaim.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_DaoSpend) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoSpend != nil { + l = m.DaoSpend.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_DaoOutput) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoOutput != nil { + l = m.DaoOutput.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionPlan_DaoDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DaoDeposit != nil { + l = m.DaoDeposit.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *CluePlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.Rseed) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + if m.PrecisionBits != 0 { + n += 1 + sovTransaction(uint64(m.PrecisionBits)) + } + return n +} + +func (m *MemoPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Plaintext) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.Key) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *SpendPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Position != 0 { + n += 1 + sovTransaction(uint64(m.Position)) + } + l = len(m.Randomizer) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.ValueBlinding) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *OutputPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.DestAddress != nil { + l = m.DestAddress.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.Rseed) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.ValueBlinding) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func sovTransaction(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTransaction(x uint64) (n int) { + return sovTransaction(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Transaction) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Transaction: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Transaction: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &TransactionBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BindingSig", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BindingSig = append(m.BindingSig[:0], dAtA[iNdEx:postIndex]...) + if m.BindingSig == nil { + m.BindingSig = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Anchor", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Anchor == nil { + m.Anchor = &v1alpha1.MerkleRoot{} + } + if err := m.Anchor.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Id) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Id: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Id: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actions = append(m.Actions, &Action{}) + if err := m.Actions[len(m.Actions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + } + m.ExpiryHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpiryHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fee == nil { + m.Fee = &v1alpha1.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FmdClues", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FmdClues = append(m.FmdClues, &v1alpha1.Clue{}) + if err := m.FmdClues[len(m.FmdClues)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EncryptedMemo", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := make([]byte, postIndex-iNdEx) + copy(v, dAtA[iNdEx:postIndex]) + m.XEncryptedMemo = &TransactionBody_EncryptedMemo{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Action) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Action: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Action: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Spend{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_Spend{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Output{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_Output{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.Swap{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_Swap{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.SwapClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_SwapClaim{v} + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorDefinition", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.ValidatorDefinition{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_ValidatorDefinition{v} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IbcAction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha13.IbcAction{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_IbcAction{v} + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalSubmit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalSubmit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_ProposalSubmit{v} + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalWithdraw", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalWithdraw{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_ProposalWithdraw{v} + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ValidatorVote{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_ValidatorVote{v} + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DelegatorVote{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_DelegatorVote{v} + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalDepositClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalDepositClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_ProposalDepositClaim{v} + iNdEx = postIndex + case 30: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionOpen", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionOpen{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_PositionOpen{v} + iNdEx = postIndex + case 31: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionClose", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionClose{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_PositionClose{v} + iNdEx = postIndex + case 32: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionWithdraw", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionWithdraw{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_PositionWithdraw{v} + iNdEx = postIndex + case 34: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionRewardClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionRewardClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_PositionRewardClaim{v} + iNdEx = postIndex + case 40: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delegate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.Delegate{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_Delegate{v} + iNdEx = postIndex + case 41: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Undelegate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.Undelegate{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_Undelegate{v} + iNdEx = postIndex + case 42: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UndelegateClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.UndelegateClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_UndelegateClaim{v} + iNdEx = postIndex + case 50: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoSpend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoSpend{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_DaoSpend{v} + iNdEx = postIndex + case 51: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoOutput", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoOutput{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_DaoOutput{v} + iNdEx = postIndex + case 52: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoDeposit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_DaoDeposit{v} + iNdEx = postIndex + case 200: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ics20Withdrawal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha13.Ics20Withdrawal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &Action_Ics20Withdrawal{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPerspective) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionPerspective: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionPerspective: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PayloadKeys", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PayloadKeys = append(m.PayloadKeys, &PayloadKeyWithCommitment{}) + if err := m.PayloadKeys[len(m.PayloadKeys)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpendNullifiers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SpendNullifiers = append(m.SpendNullifiers, &NullifierWithNote{}) + if err := m.SpendNullifiers[len(m.SpendNullifiers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdviceNotes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AdviceNotes = append(m.AdviceNotes, &v1alpha1.Note{}) + if err := m.AdviceNotes[len(m.AdviceNotes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressViews", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddressViews = append(m.AddressViews, &v1alpha1.AddressView{}) + if err := m.AddressViews[len(m.AddressViews)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PayloadKeyWithCommitment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PayloadKeyWithCommitment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PayloadKeyWithCommitment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PayloadKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PayloadKey = append(m.PayloadKey[:0], dAtA[iNdEx:postIndex]...) + if m.PayloadKey == nil { + m.PayloadKey = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Commitment == nil { + m.Commitment = &v1alpha1.StateCommitment{} + } + if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NullifierWithNote) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NullifierWithNote: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NullifierWithNote: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Nullifier == nil { + m.Nullifier = &v1alpha1.Nullifier{} + } + if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha1.Note{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActionViews", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ActionViews = append(m.ActionViews, &ActionView{}) + if err := m.ActionViews[len(m.ActionViews)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + } + m.ExpiryHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpiryHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fee == nil { + m.Fee = &v1alpha1.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FmdClues", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FmdClues = append(m.FmdClues, &v1alpha1.Clue{}) + if err := m.FmdClues[len(m.FmdClues)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Memo", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := make([]byte, postIndex-iNdEx) + copy(v, dAtA[iNdEx:postIndex]) + m.XMemo = &TransactionView_Memo{v} + iNdEx = postIndex + case 400: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressViews", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddressViews = append(m.AddressViews, &v1alpha1.AddressView{}) + if err := m.AddressViews[len(m.AddressViews)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ActionView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ActionView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ActionView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SpendView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Spend{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OutputView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Output{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.SwapView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Swap{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.SwapClaimView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_SwapClaim{v} + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorDefinition", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.ValidatorDefinition{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_ValidatorDefinition{v} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IbcAction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha13.IbcAction{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_IbcAction{v} + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalSubmit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalSubmit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_ProposalSubmit{v} + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalWithdraw", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalWithdraw{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_ProposalWithdraw{v} + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ValidatorVote{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_ValidatorVote{v} + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &DelegatorVoteView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_DelegatorVote{v} + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalDepositClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalDepositClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_ProposalDepositClaim{v} + iNdEx = postIndex + case 30: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionOpen", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionOpen{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_PositionOpen{v} + iNdEx = postIndex + case 31: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionClose", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionClose{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_PositionClose{v} + iNdEx = postIndex + case 32: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionWithdraw", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionWithdraw{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_PositionWithdraw{v} + iNdEx = postIndex + case 34: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionRewardClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionRewardClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_PositionRewardClaim{v} + iNdEx = postIndex + case 41: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delegate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.Delegate{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Delegate{v} + iNdEx = postIndex + case 42: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Undelegate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.Undelegate{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Undelegate{v} + iNdEx = postIndex + case 43: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UndelegateClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.UndelegateClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_UndelegateClaim{v} + iNdEx = postIndex + case 50: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoSpend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoSpend{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_DaoSpend{v} + iNdEx = postIndex + case 51: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoOutput", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoOutput{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_DaoOutput{v} + iNdEx = postIndex + case 52: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoDeposit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_DaoDeposit{v} + iNdEx = postIndex + case 200: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ics20Withdrawal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha13.Ics20Withdrawal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Ics20Withdrawal{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SpendView_Visible{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.SpendView = &SpendView_Visible_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opaque", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SpendView_Opaque{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.SpendView = &SpendView_Opaque_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendView_Visible) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Visible: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Visible: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Spend == nil { + m.Spend = &Spend{} + } + if err := m.Spend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha1.Note{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendView_Opaque) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Opaque: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Opaque: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Spend == nil { + m.Spend = &Spend{} + } + if err := m.Spend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DelegatorVoteView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DelegatorVoteView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DelegatorVoteView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &DelegatorVoteView_Visible{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DelegatorVote = &DelegatorVoteView_Visible_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opaque", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &DelegatorVoteView_Opaque{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DelegatorVote = &DelegatorVoteView_Opaque_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DelegatorVoteView_Visible) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Visible: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Visible: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DelegatorVote == nil { + m.DelegatorVote = &v1alpha14.DelegatorVote{} + } + if err := m.DelegatorVote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha1.Note{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DelegatorVoteView_Opaque) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Opaque: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Opaque: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DelegatorVote == nil { + m.DelegatorVote = &v1alpha14.DelegatorVote{} + } + if err := m.DelegatorVote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OutputView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OutputView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OutputView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OutputView_Visible{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OutputView = &OutputView_Visible_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opaque", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OutputView_Opaque{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OutputView = &OutputView_Opaque_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OutputView_Visible) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Visible: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Visible: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Output == nil { + m.Output = &Output{} + } + if err := m.Output.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha1.Note{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PayloadKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PayloadKey = append(m.PayloadKey[:0], dAtA[iNdEx:postIndex]...) + if m.PayloadKey == nil { + m.PayloadKey = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OutputView_Opaque) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Opaque: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Opaque: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Output == nil { + m.Output = &Output{} + } + if err := m.Output.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Spend) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Spend: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Spend: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &SpendBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthSig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuthSig == nil { + m.AuthSig = &v1alpha1.SpendAuthSignature{} + } + if err := m.AuthSig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Proof == nil { + m.Proof = &v1alpha1.ZKSpendProof{} + } + if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BalanceCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BalanceCommitment == nil { + m.BalanceCommitment = &v1alpha1.BalanceCommitment{} + } + if err := m.BalanceCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nullifier = append(m.Nullifier[:0], dAtA[iNdEx:postIndex]...) + if m.Nullifier == nil { + m.Nullifier = []byte{} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rk = append(m.Rk[:0], dAtA[iNdEx:postIndex]...) + if m.Rk == nil { + m.Rk = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Output) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Output: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Output: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Body == nil { + m.Body = &OutputBody{} + } + if err := m.Body.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Proof == nil { + m.Proof = &v1alpha1.ZKOutputProof{} + } + if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OutputBody) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OutputBody: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OutputBody: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotePayload", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NotePayload == nil { + m.NotePayload = &v1alpha1.NotePayload{} + } + if err := m.NotePayload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BalanceCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BalanceCommitment == nil { + m.BalanceCommitment = &v1alpha1.BalanceCommitment{} + } + if err := m.BalanceCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WrappedMemoKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WrappedMemoKey = append(m.WrappedMemoKey[:0], dAtA[iNdEx:postIndex]...) + if m.WrappedMemoKey == nil { + m.WrappedMemoKey = []byte{} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OvkWrappedKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OvkWrappedKey = append(m.OvkWrappedKey[:0], dAtA[iNdEx:postIndex]...) + if m.OvkWrappedKey == nil { + m.OvkWrappedKey = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuthorizationData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuthorizationData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuthorizationData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EffectHash", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EffectHash == nil { + m.EffectHash = &v1alpha1.EffectHash{} + } + if err := m.EffectHash.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpendAuths", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SpendAuths = append(m.SpendAuths, &v1alpha1.SpendAuthSignature{}) + if err := m.SpendAuths[len(m.SpendAuths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegatorVoteAuths", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DelegatorVoteAuths = append(m.DelegatorVoteAuths, &v1alpha1.SpendAuthSignature{}) + if err := m.DelegatorVoteAuths[len(m.DelegatorVoteAuths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WitnessData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WitnessData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WitnessData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Anchor", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Anchor == nil { + m.Anchor = &v1alpha1.MerkleRoot{} + } + if err := m.Anchor.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StateCommitmentProofs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StateCommitmentProofs = append(m.StateCommitmentProofs, &v1alpha1.StateCommitmentProof{}) + if err := m.StateCommitmentProofs[len(m.StateCommitmentProofs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actions = append(m.Actions, &ActionPlan{}) + if err := m.Actions[len(m.Actions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + } + m.ExpiryHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpiryHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fee == nil { + m.Fee = &v1alpha1.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CluePlans", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CluePlans = append(m.CluePlans, &CluePlan{}) + if err := m.CluePlans[len(m.CluePlans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoPlan", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemoPlan == nil { + m.MemoPlan = &MemoPlan{} + } + if err := m.MemoPlan.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ActionPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ActionPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ActionPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &SpendPlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_Spend{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OutputPlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_Output{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.SwapPlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_Swap{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.SwapClaimPlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_SwapClaim{v} + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorDefinition", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.ValidatorDefinition{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_ValidatorDefinition{v} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IbcAction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha13.IbcAction{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_IbcAction{v} + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalSubmit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalSubmit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_ProposalSubmit{v} + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalWithdraw", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalWithdraw{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_ProposalWithdraw{v} + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ValidatorVote{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_ValidatorVote{v} + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DelegatorVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DelegatorVotePlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_DelegatorVote{v} + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalDepositClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.ProposalDepositClaim{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_ProposalDepositClaim{v} + iNdEx = postIndex + case 30: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionOpen", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionOpen{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_PositionOpen{v} + iNdEx = postIndex + case 31: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionClose", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionClose{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_PositionClose{v} + iNdEx = postIndex + case 32: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionWithdraw", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionWithdrawPlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_PositionWithdraw{v} + iNdEx = postIndex + case 34: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionRewardClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.PositionRewardClaimPlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_PositionRewardClaim{v} + iNdEx = postIndex + case 40: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delegate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.Delegate{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_Delegate{v} + iNdEx = postIndex + case 41: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Undelegate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.Undelegate{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_Undelegate{v} + iNdEx = postIndex + case 42: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UndelegateClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.UndelegateClaimPlan{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_UndelegateClaim{v} + iNdEx = postIndex + case 50: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoSpend", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoSpend{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_DaoSpend{v} + iNdEx = postIndex + case 51: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoOutput", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoOutput{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_DaoOutput{v} + iNdEx = postIndex + case 52: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DaoDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha14.DaoDeposit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_DaoDeposit{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CluePlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CluePlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CluePlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha1.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rseed", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rseed = append(m.Rseed[:0], dAtA[iNdEx:postIndex]...) + if m.Rseed == nil { + m.Rseed = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PrecisionBits", wireType) + } + m.PrecisionBits = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PrecisionBits |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MemoPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MemoPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MemoPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Plaintext", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Plaintext = append(m.Plaintext[:0], dAtA[iNdEx:postIndex]...) + if m.Plaintext == nil { + m.Plaintext = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha1.Note{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + m.Position = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Position |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Randomizer", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Randomizer = append(m.Randomizer[:0], dAtA[iNdEx:postIndex]...) + if m.Randomizer == nil { + m.Randomizer = []byte{} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueBlinding", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValueBlinding = append(m.ValueBlinding[:0], dAtA[iNdEx:postIndex]...) + if m.ValueBlinding == nil { + m.ValueBlinding = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OutputPlan) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OutputPlan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OutputPlan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha1.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestAddress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DestAddress == nil { + m.DestAddress = &v1alpha1.Address{} + } + if err := m.DestAddress.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rseed", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rseed = append(m.Rseed[:0], dAtA[iNdEx:postIndex]...) + if m.Rseed == nil { + m.Rseed = []byte{} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueBlinding", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValueBlinding = append(m.ValueBlinding[:0], dAtA[iNdEx:postIndex]...) + if m.ValueBlinding == nil { + m.ValueBlinding = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTransaction(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTransaction + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTransaction + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTransaction + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTransaction + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTransaction + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTransaction + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTransaction = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTransaction = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTransaction = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go b/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go new file mode 100644 index 000000000..95f0f4bf6 --- /dev/null +++ b/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go @@ -0,0 +1,1237 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.proto + +package transparent_proofsv1alpha1 + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// A Penumbra transparent Spend Proof. +type SpendProof struct { + // Auxiliary inputs + StateCommitmentProof *v1alpha1.StateCommitmentProof `protobuf:"bytes,1,opt,name=state_commitment_proof,json=stateCommitmentProof,proto3" json:"state_commitment_proof,omitempty"` + // + // @exclude + // From the note being spent + Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + VBlinding []byte `protobuf:"bytes,6,opt,name=v_blinding,json=vBlinding,proto3" json:"v_blinding,omitempty"` + SpendAuthRandomizer []byte `protobuf:"bytes,9,opt,name=spend_auth_randomizer,json=spendAuthRandomizer,proto3" json:"spend_auth_randomizer,omitempty"` + Ak []byte `protobuf:"bytes,10,opt,name=ak,proto3" json:"ak,omitempty"` + Nk []byte `protobuf:"bytes,11,opt,name=nk,proto3" json:"nk,omitempty"` +} + +func (m *SpendProof) Reset() { *m = SpendProof{} } +func (m *SpendProof) String() string { return proto.CompactTextString(m) } +func (*SpendProof) ProtoMessage() {} +func (*SpendProof) Descriptor() ([]byte, []int) { + return fileDescriptor_1536b20e10cd99e5, []int{0} +} +func (m *SpendProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendProof.Merge(m, src) +} +func (m *SpendProof) XXX_Size() int { + return m.Size() +} +func (m *SpendProof) XXX_DiscardUnknown() { + xxx_messageInfo_SpendProof.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendProof proto.InternalMessageInfo + +func (m *SpendProof) GetStateCommitmentProof() *v1alpha1.StateCommitmentProof { + if m != nil { + return m.StateCommitmentProof + } + return nil +} + +func (m *SpendProof) GetNote() *v1alpha1.Note { + if m != nil { + return m.Note + } + return nil +} + +func (m *SpendProof) GetVBlinding() []byte { + if m != nil { + return m.VBlinding + } + return nil +} + +func (m *SpendProof) GetSpendAuthRandomizer() []byte { + if m != nil { + return m.SpendAuthRandomizer + } + return nil +} + +func (m *SpendProof) GetAk() []byte { + if m != nil { + return m.Ak + } + return nil +} + +func (m *SpendProof) GetNk() []byte { + if m != nil { + return m.Nk + } + return nil +} + +// A Penumbra transparent SwapClaimProof. +type SwapClaimProof struct { + // The swap being claimed + SwapPlaintext *v1alpha11.SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` + // Inclusion proof for the swap commitment + SwapCommitmentProof *v1alpha1.StateCommitmentProof `protobuf:"bytes,4,opt,name=swap_commitment_proof,json=swapCommitmentProof,proto3" json:"swap_commitment_proof,omitempty"` + // The nullifier key used to derive the swap nullifier + Nk []byte `protobuf:"bytes,6,opt,name=nk,proto3" json:"nk,omitempty"` + // + // @exclude + // Describes output amounts + Lambda_1I uint64 `protobuf:"varint,20,opt,name=lambda_1_i,json=lambda1I,proto3" json:"lambda_1_i,omitempty"` + Lambda_2I uint64 `protobuf:"varint,21,opt,name=lambda_2_i,json=lambda2I,proto3" json:"lambda_2_i,omitempty"` +} + +func (m *SwapClaimProof) Reset() { *m = SwapClaimProof{} } +func (m *SwapClaimProof) String() string { return proto.CompactTextString(m) } +func (*SwapClaimProof) ProtoMessage() {} +func (*SwapClaimProof) Descriptor() ([]byte, []int) { + return fileDescriptor_1536b20e10cd99e5, []int{1} +} +func (m *SwapClaimProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapClaimProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapClaimProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapClaimProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapClaimProof.Merge(m, src) +} +func (m *SwapClaimProof) XXX_Size() int { + return m.Size() +} +func (m *SwapClaimProof) XXX_DiscardUnknown() { + xxx_messageInfo_SwapClaimProof.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapClaimProof proto.InternalMessageInfo + +func (m *SwapClaimProof) GetSwapPlaintext() *v1alpha11.SwapPlaintext { + if m != nil { + return m.SwapPlaintext + } + return nil +} + +func (m *SwapClaimProof) GetSwapCommitmentProof() *v1alpha1.StateCommitmentProof { + if m != nil { + return m.SwapCommitmentProof + } + return nil +} + +func (m *SwapClaimProof) GetNk() []byte { + if m != nil { + return m.Nk + } + return nil +} + +func (m *SwapClaimProof) GetLambda_1I() uint64 { + if m != nil { + return m.Lambda_1I + } + return 0 +} + +func (m *SwapClaimProof) GetLambda_2I() uint64 { + if m != nil { + return m.Lambda_2I + } + return 0 +} + +type UndelegateClaimProof struct { + UnbondingAmount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=unbonding_amount,json=unbondingAmount,proto3" json:"unbonding_amount,omitempty"` + BalanceBlinding []byte `protobuf:"bytes,2,opt,name=balance_blinding,json=balanceBlinding,proto3" json:"balance_blinding,omitempty"` +} + +func (m *UndelegateClaimProof) Reset() { *m = UndelegateClaimProof{} } +func (m *UndelegateClaimProof) String() string { return proto.CompactTextString(m) } +func (*UndelegateClaimProof) ProtoMessage() {} +func (*UndelegateClaimProof) Descriptor() ([]byte, []int) { + return fileDescriptor_1536b20e10cd99e5, []int{2} +} +func (m *UndelegateClaimProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UndelegateClaimProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UndelegateClaimProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UndelegateClaimProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_UndelegateClaimProof.Merge(m, src) +} +func (m *UndelegateClaimProof) XXX_Size() int { + return m.Size() +} +func (m *UndelegateClaimProof) XXX_DiscardUnknown() { + xxx_messageInfo_UndelegateClaimProof.DiscardUnknown(m) +} + +var xxx_messageInfo_UndelegateClaimProof proto.InternalMessageInfo + +func (m *UndelegateClaimProof) GetUnbondingAmount() *v1alpha1.Amount { + if m != nil { + return m.UnbondingAmount + } + return nil +} + +func (m *UndelegateClaimProof) GetBalanceBlinding() []byte { + if m != nil { + return m.BalanceBlinding + } + return nil +} + +func init() { + proto.RegisterType((*SpendProof)(nil), "penumbra.core.transparent_proofs.v1alpha1.SpendProof") + proto.RegisterType((*SwapClaimProof)(nil), "penumbra.core.transparent_proofs.v1alpha1.SwapClaimProof") + proto.RegisterType((*UndelegateClaimProof)(nil), "penumbra.core.transparent_proofs.v1alpha1.UndelegateClaimProof") +} + +func init() { + proto.RegisterFile("penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.proto", fileDescriptor_1536b20e10cd99e5) +} + +var fileDescriptor_1536b20e10cd99e5 = []byte{ + // 606 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x4f, 0x6b, 0xd4, 0x40, + 0x14, 0x6f, 0xd2, 0x52, 0xec, 0x54, 0xdb, 0x92, 0xfe, 0x21, 0x14, 0x0d, 0xa5, 0x2a, 0x6c, 0x15, + 0x13, 0x76, 0x2b, 0x08, 0xf1, 0xd4, 0xdd, 0x83, 0xf4, 0xa0, 0x84, 0xb4, 0x7a, 0x90, 0x85, 0xf0, + 0x92, 0x8c, 0xbb, 0x61, 0x93, 0x99, 0x21, 0x99, 0x6c, 0x5b, 0x3f, 0x85, 0xa0, 0xe0, 0x5d, 0x6f, + 0x7e, 0x12, 0xf1, 0xd4, 0xa3, 0x47, 0xd9, 0xde, 0xfc, 0x14, 0x32, 0x93, 0x9d, 0xcd, 0xb6, 0x5b, + 0x68, 0xf1, 0xb6, 0xef, 0xfd, 0xfe, 0xbc, 0xf7, 0x7e, 0xd9, 0x04, 0xb5, 0x19, 0x26, 0x65, 0x16, + 0xe6, 0xe0, 0x44, 0x34, 0xc7, 0x0e, 0xcf, 0x81, 0x14, 0x0c, 0x72, 0x4c, 0x78, 0xc0, 0x72, 0x4a, + 0x3f, 0x14, 0xce, 0xb0, 0x09, 0x29, 0xeb, 0x43, 0xf3, 0x1a, 0xcc, 0x66, 0x39, 0xe5, 0xd4, 0xd8, + 0x53, 0x1e, 0xb6, 0xf0, 0xb0, 0xaf, 0xe1, 0x29, 0x8f, 0xed, 0x27, 0x97, 0xc7, 0x45, 0xf9, 0x19, + 0xe3, 0xb4, 0x1e, 0x51, 0xd5, 0x95, 0xed, 0xf6, 0xa3, 0xcb, 0xdc, 0x18, 0x9f, 0xd6, 0xc4, 0x18, + 0x9f, 0x56, 0xac, 0xdd, 0xef, 0x3a, 0x42, 0x47, 0x0c, 0x93, 0xd8, 0x13, 0xa3, 0x8c, 0x04, 0x6d, + 0x15, 0x1c, 0x38, 0x0e, 0x22, 0x9a, 0x65, 0x09, 0xcf, 0x26, 0x4b, 0x98, 0xda, 0x8e, 0xd6, 0x58, + 0x6e, 0xed, 0xdb, 0x97, 0x97, 0x1d, 0x4f, 0x54, 0xc6, 0xf6, 0x91, 0x10, 0x77, 0x26, 0x5a, 0x69, + 0xea, 0x6f, 0x14, 0xd7, 0x74, 0x8d, 0x17, 0x68, 0x81, 0x50, 0x8e, 0x4d, 0x5d, 0x1a, 0x3f, 0xbc, + 0xc1, 0xf8, 0x0d, 0xe5, 0xd8, 0x97, 0x02, 0xe3, 0x01, 0x42, 0xc3, 0x20, 0x4c, 0x13, 0x12, 0x27, + 0xa4, 0x67, 0x2e, 0xee, 0x68, 0x8d, 0xbb, 0xfe, 0xd2, 0xb0, 0x3d, 0x6e, 0x18, 0x2d, 0xb4, 0x59, + 0x88, 0x83, 0x02, 0x28, 0x79, 0x3f, 0xc8, 0x81, 0xc4, 0x34, 0x4b, 0x3e, 0xe2, 0xdc, 0x5c, 0x92, + 0xcc, 0x75, 0x09, 0x1e, 0x94, 0xbc, 0xef, 0x4f, 0x20, 0x63, 0x05, 0xe9, 0x30, 0x30, 0x91, 0x24, + 0xe8, 0x30, 0x10, 0x35, 0x19, 0x98, 0xcb, 0x55, 0x4d, 0x06, 0xbb, 0x5f, 0x75, 0xb4, 0x72, 0x74, + 0x02, 0xac, 0x93, 0x42, 0x92, 0x55, 0xeb, 0x7b, 0x68, 0xa5, 0x38, 0x01, 0x16, 0xb0, 0x14, 0x12, + 0xc2, 0xf1, 0x29, 0x1f, 0x27, 0xb4, 0x77, 0xe5, 0x10, 0x11, 0x75, 0x1d, 0xcf, 0x09, 0x30, 0x4f, + 0x09, 0xfc, 0x7b, 0xc5, 0x74, 0x69, 0xf4, 0xd0, 0xa6, 0x74, 0x9c, 0x89, 0x7e, 0xe1, 0xff, 0xa3, + 0x5f, 0x17, 0x8e, 0x57, 0x93, 0xaf, 0xae, 0x5b, 0x54, 0xd7, 0x19, 0xf7, 0x11, 0x4a, 0x21, 0x0b, + 0x63, 0x08, 0x9a, 0x41, 0x62, 0x6e, 0xec, 0x68, 0x8d, 0x05, 0xff, 0x4e, 0xd5, 0x69, 0x1e, 0x4e, + 0xa1, 0xad, 0x20, 0x31, 0x37, 0xa7, 0xd1, 0xd6, 0xe1, 0xee, 0x67, 0x0d, 0x6d, 0xbc, 0x25, 0x31, + 0x4e, 0x71, 0x4f, 0x8c, 0x9f, 0xce, 0x67, 0xad, 0x24, 0x21, 0x95, 0xcf, 0x24, 0x80, 0x8c, 0x96, + 0x44, 0x25, 0xf4, 0xf8, 0x86, 0x43, 0x0e, 0x24, 0xd9, 0x5f, 0x9d, 0xc8, 0xab, 0x86, 0xb1, 0x87, + 0xd6, 0x42, 0x48, 0x81, 0x44, 0xb8, 0x7e, 0xfa, 0xba, 0x3c, 0x62, 0x75, 0xdc, 0x57, 0xff, 0x81, + 0xf6, 0x97, 0xf9, 0x9f, 0x23, 0x4b, 0x3b, 0x1f, 0x59, 0xda, 0x9f, 0x91, 0xa5, 0x7d, 0xba, 0xb0, + 0xe6, 0xce, 0x2f, 0xac, 0xb9, 0xdf, 0x17, 0xd6, 0x1c, 0x7a, 0x16, 0xd1, 0xcc, 0xbe, 0xf5, 0x1b, + 0xd7, 0xde, 0x3a, 0xae, 0x41, 0x79, 0x58, 0xe1, 0x89, 0xf7, 0xc6, 0xd3, 0xde, 0xb3, 0x5e, 0xc2, + 0xfb, 0x65, 0x68, 0x47, 0x34, 0x73, 0x22, 0x5a, 0x64, 0xb4, 0x70, 0x72, 0x9c, 0xc2, 0x19, 0xce, + 0x9d, 0x61, 0x6b, 0xf2, 0x33, 0xea, 0x43, 0x42, 0x0a, 0xe7, 0xd6, 0x9f, 0x89, 0x97, 0xb3, 0x98, + 0x82, 0xbe, 0xe9, 0xf3, 0x5e, 0xe7, 0xf8, 0x87, 0xde, 0xf0, 0xd4, 0xf6, 0x1d, 0xb1, 0xfd, 0xcc, + 0x82, 0xf6, 0xbb, 0xb1, 0xe0, 0x57, 0x4d, 0xed, 0x0a, 0x6a, 0x77, 0x86, 0xda, 0x55, 0xd4, 0x91, + 0xfe, 0xfc, 0xb6, 0xd4, 0xee, 0x2b, 0xaf, 0xfd, 0x1a, 0x73, 0x88, 0x81, 0xc3, 0x5f, 0xfd, 0xa9, + 0x92, 0xb9, 0xae, 0xd0, 0xb9, 0xee, 0x8c, 0xd0, 0x75, 0x95, 0x32, 0x5c, 0x94, 0xdf, 0x9c, 0xfd, + 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1c, 0x1e, 0x6a, 0x61, 0x36, 0x05, 0x00, 0x00, +} + +func (m *SpendProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Nk) > 0 { + i -= len(m.Nk) + copy(dAtA[i:], m.Nk) + i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.Nk))) + i-- + dAtA[i] = 0x5a + } + if len(m.Ak) > 0 { + i -= len(m.Ak) + copy(dAtA[i:], m.Ak) + i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.Ak))) + i-- + dAtA[i] = 0x52 + } + if len(m.SpendAuthRandomizer) > 0 { + i -= len(m.SpendAuthRandomizer) + copy(dAtA[i:], m.SpendAuthRandomizer) + i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.SpendAuthRandomizer))) + i-- + dAtA[i] = 0x4a + } + if len(m.VBlinding) > 0 { + i -= len(m.VBlinding) + copy(dAtA[i:], m.VBlinding) + i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.VBlinding))) + i-- + dAtA[i] = 0x32 + } + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.StateCommitmentProof != nil { + { + size, err := m.StateCommitmentProof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapClaimProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapClaimProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapClaimProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Lambda_2I != 0 { + i = encodeVarintTransparentProofs(dAtA, i, uint64(m.Lambda_2I)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } + if m.Lambda_1I != 0 { + i = encodeVarintTransparentProofs(dAtA, i, uint64(m.Lambda_1I)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if len(m.Nk) > 0 { + i -= len(m.Nk) + copy(dAtA[i:], m.Nk) + i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.Nk))) + i-- + dAtA[i] = 0x32 + } + if m.SwapCommitmentProof != nil { + { + size, err := m.SwapCommitmentProof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.SwapPlaintext != nil { + { + size, err := m.SwapPlaintext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UndelegateClaimProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UndelegateClaimProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UndelegateClaimProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.BalanceBlinding) > 0 { + i -= len(m.BalanceBlinding) + copy(dAtA[i:], m.BalanceBlinding) + i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.BalanceBlinding))) + i-- + dAtA[i] = 0x12 + } + if m.UnbondingAmount != nil { + { + size, err := m.UnbondingAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintTransparentProofs(dAtA []byte, offset int, v uint64) int { + offset -= sovTransparentProofs(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *SpendProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.StateCommitmentProof != nil { + l = m.StateCommitmentProof.Size() + n += 1 + l + sovTransparentProofs(uint64(l)) + } + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovTransparentProofs(uint64(l)) + } + l = len(m.VBlinding) + if l > 0 { + n += 1 + l + sovTransparentProofs(uint64(l)) + } + l = len(m.SpendAuthRandomizer) + if l > 0 { + n += 1 + l + sovTransparentProofs(uint64(l)) + } + l = len(m.Ak) + if l > 0 { + n += 1 + l + sovTransparentProofs(uint64(l)) + } + l = len(m.Nk) + if l > 0 { + n += 1 + l + sovTransparentProofs(uint64(l)) + } + return n +} + +func (m *SwapClaimProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapPlaintext != nil { + l = m.SwapPlaintext.Size() + n += 1 + l + sovTransparentProofs(uint64(l)) + } + if m.SwapCommitmentProof != nil { + l = m.SwapCommitmentProof.Size() + n += 1 + l + sovTransparentProofs(uint64(l)) + } + l = len(m.Nk) + if l > 0 { + n += 1 + l + sovTransparentProofs(uint64(l)) + } + if m.Lambda_1I != 0 { + n += 2 + sovTransparentProofs(uint64(m.Lambda_1I)) + } + if m.Lambda_2I != 0 { + n += 2 + sovTransparentProofs(uint64(m.Lambda_2I)) + } + return n +} + +func (m *UndelegateClaimProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UnbondingAmount != nil { + l = m.UnbondingAmount.Size() + n += 1 + l + sovTransparentProofs(uint64(l)) + } + l = len(m.BalanceBlinding) + if l > 0 { + n += 1 + l + sovTransparentProofs(uint64(l)) + } + return n +} + +func sovTransparentProofs(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTransparentProofs(x uint64) (n int) { + return sovTransparentProofs(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *SpendProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StateCommitmentProof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StateCommitmentProof == nil { + m.StateCommitmentProof = &v1alpha1.StateCommitmentProof{} + } + if err := m.StateCommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha1.Note{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VBlinding", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VBlinding = append(m.VBlinding[:0], dAtA[iNdEx:postIndex]...) + if m.VBlinding == nil { + m.VBlinding = []byte{} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpendAuthRandomizer", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SpendAuthRandomizer = append(m.SpendAuthRandomizer[:0], dAtA[iNdEx:postIndex]...) + if m.SpendAuthRandomizer == nil { + m.SpendAuthRandomizer = []byte{} + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ak", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ak = append(m.Ak[:0], dAtA[iNdEx:postIndex]...) + if m.Ak == nil { + m.Ak = []byte{} + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nk = append(m.Nk[:0], dAtA[iNdEx:postIndex]...) + if m.Nk == nil { + m.Nk = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransparentProofs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransparentProofs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapClaimProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapClaimProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapClaimProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapPlaintext == nil { + m.SwapPlaintext = &v1alpha11.SwapPlaintext{} + } + if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitmentProof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapCommitmentProof == nil { + m.SwapCommitmentProof = &v1alpha1.StateCommitmentProof{} + } + if err := m.SwapCommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nk = append(m.Nk[:0], dAtA[iNdEx:postIndex]...) + if m.Nk == nil { + m.Nk = []byte{} + } + iNdEx = postIndex + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1I", wireType) + } + m.Lambda_1I = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lambda_1I |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2I", wireType) + } + m.Lambda_2I = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lambda_2I |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTransparentProofs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransparentProofs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UndelegateClaimProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UndelegateClaimProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UndelegateClaimProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UnbondingAmount == nil { + m.UnbondingAmount = &v1alpha1.Amount{} + } + if err := m.UnbondingAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BalanceBlinding", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BalanceBlinding = append(m.BalanceBlinding[:0], dAtA[iNdEx:postIndex]...) + if m.BalanceBlinding == nil { + m.BalanceBlinding = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransparentProofs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransparentProofs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTransparentProofs(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTransparentProofs + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTransparentProofs + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTransparentProofs + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTransparentProofs + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTransparentProofs = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTransparentProofs = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTransparentProofs = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/custody/v1alpha1/custody.pb.go b/relayer/chains/penumbra/custody/v1alpha1/custody.pb.go new file mode 100644 index 000000000..d30aa8c26 --- /dev/null +++ b/relayer/chains/penumbra/custody/v1alpha1/custody.pb.go @@ -0,0 +1,1213 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/custody/v1alpha1/custody.proto + +package custodyv1alpha1 + +import ( + context "context" + fmt "fmt" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" + v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/transaction/v1alpha1" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type AuthorizeRequest struct { + // The transaction plan to authorize. + Plan *v1alpha1.TransactionPlan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` + // Identifies the FVK (and hence the spend authorization key) to use for signing. + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,2,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + // Optionally, pre-authorization data, if required by the custodian. + // + // Multiple `PreAuthorization` packets can be included in a single request, + // to support multi-party pre-authorizations. + PreAuthorizations []*PreAuthorization `protobuf:"bytes,3,rep,name=pre_authorizations,json=preAuthorizations,proto3" json:"pre_authorizations,omitempty"` +} + +func (m *AuthorizeRequest) Reset() { *m = AuthorizeRequest{} } +func (m *AuthorizeRequest) String() string { return proto.CompactTextString(m) } +func (*AuthorizeRequest) ProtoMessage() {} +func (*AuthorizeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8c8c99775232419d, []int{0} +} +func (m *AuthorizeRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuthorizeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AuthorizeRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AuthorizeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthorizeRequest.Merge(m, src) +} +func (m *AuthorizeRequest) XXX_Size() int { + return m.Size() +} +func (m *AuthorizeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AuthorizeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthorizeRequest proto.InternalMessageInfo + +func (m *AuthorizeRequest) GetPlan() *v1alpha1.TransactionPlan { + if m != nil { + return m.Plan + } + return nil +} + +func (m *AuthorizeRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if m != nil { + return m.AccountGroupId + } + return nil +} + +func (m *AuthorizeRequest) GetPreAuthorizations() []*PreAuthorization { + if m != nil { + return m.PreAuthorizations + } + return nil +} + +type AuthorizeResponse struct { + Data *v1alpha1.AuthorizationData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` +} + +func (m *AuthorizeResponse) Reset() { *m = AuthorizeResponse{} } +func (m *AuthorizeResponse) String() string { return proto.CompactTextString(m) } +func (*AuthorizeResponse) ProtoMessage() {} +func (*AuthorizeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8c8c99775232419d, []int{1} +} +func (m *AuthorizeResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuthorizeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AuthorizeResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AuthorizeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthorizeResponse.Merge(m, src) +} +func (m *AuthorizeResponse) XXX_Size() int { + return m.Size() +} +func (m *AuthorizeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_AuthorizeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthorizeResponse proto.InternalMessageInfo + +func (m *AuthorizeResponse) GetData() *v1alpha1.AuthorizationData { + if m != nil { + return m.Data + } + return nil +} + +// A pre-authorization packet. This allows a custodian to delegate (partial) +// signing authority to other authorization mechanisms. Details of how a +// custodian manages those keys are out-of-scope for the custody protocol and +// are custodian-specific. +type PreAuthorization struct { + // Types that are valid to be assigned to PreAuthorization: + // *PreAuthorization_Ed25519_ + PreAuthorization isPreAuthorization_PreAuthorization `protobuf_oneof:"pre_authorization"` +} + +func (m *PreAuthorization) Reset() { *m = PreAuthorization{} } +func (m *PreAuthorization) String() string { return proto.CompactTextString(m) } +func (*PreAuthorization) ProtoMessage() {} +func (*PreAuthorization) Descriptor() ([]byte, []int) { + return fileDescriptor_8c8c99775232419d, []int{2} +} +func (m *PreAuthorization) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PreAuthorization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PreAuthorization.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PreAuthorization) XXX_Merge(src proto.Message) { + xxx_messageInfo_PreAuthorization.Merge(m, src) +} +func (m *PreAuthorization) XXX_Size() int { + return m.Size() +} +func (m *PreAuthorization) XXX_DiscardUnknown() { + xxx_messageInfo_PreAuthorization.DiscardUnknown(m) +} + +var xxx_messageInfo_PreAuthorization proto.InternalMessageInfo + +type isPreAuthorization_PreAuthorization interface { + isPreAuthorization_PreAuthorization() + MarshalTo([]byte) (int, error) + Size() int +} + +type PreAuthorization_Ed25519_ struct { + Ed25519 *PreAuthorization_Ed25519 `protobuf:"bytes,1,opt,name=ed25519,proto3,oneof" json:"ed25519,omitempty"` +} + +func (*PreAuthorization_Ed25519_) isPreAuthorization_PreAuthorization() {} + +func (m *PreAuthorization) GetPreAuthorization() isPreAuthorization_PreAuthorization { + if m != nil { + return m.PreAuthorization + } + return nil +} + +func (m *PreAuthorization) GetEd25519() *PreAuthorization_Ed25519 { + if x, ok := m.GetPreAuthorization().(*PreAuthorization_Ed25519_); ok { + return x.Ed25519 + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*PreAuthorization) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*PreAuthorization_Ed25519_)(nil), + } +} + +// An Ed25519-based preauthorization, containing an Ed25519 signature over the +// `TransactionPlan`. +type PreAuthorization_Ed25519 struct { + // The Ed25519 verification key used to verify the signature. + Vk []byte `protobuf:"bytes,1,opt,name=vk,proto3" json:"vk,omitempty"` + // The Ed25519 signature over the `TransactionPlan`. + Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"` +} + +func (m *PreAuthorization_Ed25519) Reset() { *m = PreAuthorization_Ed25519{} } +func (m *PreAuthorization_Ed25519) String() string { return proto.CompactTextString(m) } +func (*PreAuthorization_Ed25519) ProtoMessage() {} +func (*PreAuthorization_Ed25519) Descriptor() ([]byte, []int) { + return fileDescriptor_8c8c99775232419d, []int{2, 0} +} +func (m *PreAuthorization_Ed25519) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PreAuthorization_Ed25519) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PreAuthorization_Ed25519.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PreAuthorization_Ed25519) XXX_Merge(src proto.Message) { + xxx_messageInfo_PreAuthorization_Ed25519.Merge(m, src) +} +func (m *PreAuthorization_Ed25519) XXX_Size() int { + return m.Size() +} +func (m *PreAuthorization_Ed25519) XXX_DiscardUnknown() { + xxx_messageInfo_PreAuthorization_Ed25519.DiscardUnknown(m) +} + +var xxx_messageInfo_PreAuthorization_Ed25519 proto.InternalMessageInfo + +func (m *PreAuthorization_Ed25519) GetVk() []byte { + if m != nil { + return m.Vk + } + return nil +} + +func (m *PreAuthorization_Ed25519) GetSig() []byte { + if m != nil { + return m.Sig + } + return nil +} + +func init() { + proto.RegisterType((*AuthorizeRequest)(nil), "penumbra.custody.v1alpha1.AuthorizeRequest") + proto.RegisterType((*AuthorizeResponse)(nil), "penumbra.custody.v1alpha1.AuthorizeResponse") + proto.RegisterType((*PreAuthorization)(nil), "penumbra.custody.v1alpha1.PreAuthorization") + proto.RegisterType((*PreAuthorization_Ed25519)(nil), "penumbra.custody.v1alpha1.PreAuthorization.Ed25519") +} + +func init() { + proto.RegisterFile("penumbra/custody/v1alpha1/custody.proto", fileDescriptor_8c8c99775232419d) +} + +var fileDescriptor_8c8c99775232419d = []byte{ + // 534 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x4f, 0x6f, 0xd3, 0x30, + 0x18, 0xc6, 0x9b, 0x74, 0x62, 0xc2, 0xab, 0xa6, 0xd6, 0x48, 0xa8, 0x2b, 0x22, 0x9a, 0x2a, 0x21, + 0x26, 0x06, 0x8e, 0xda, 0xd1, 0x03, 0xe5, 0xd4, 0x0e, 0x54, 0x76, 0x40, 0x44, 0xe1, 0xaf, 0xa6, + 0x8a, 0xca, 0x75, 0x4d, 0x1b, 0x2d, 0x8d, 0x83, 0xed, 0x44, 0x2a, 0x27, 0x3e, 0xc2, 0x3e, 0xc3, + 0x24, 0x2e, 0x7c, 0x12, 0xc4, 0x69, 0x47, 0x8e, 0xa8, 0xbd, 0xf1, 0x29, 0x50, 0xfe, 0xb8, 0x49, + 0x0b, 0x85, 0xdd, 0xe2, 0xe7, 0x7d, 0xde, 0x9f, 0x5f, 0x3f, 0xb1, 0xc1, 0x5d, 0x9f, 0x7a, 0xc1, + 0x74, 0xc8, 0xb1, 0x49, 0x02, 0x21, 0xd9, 0x68, 0x66, 0x86, 0x0d, 0xec, 0xfa, 0x13, 0xdc, 0x50, + 0x02, 0xf2, 0x39, 0x93, 0x0c, 0xee, 0x29, 0x23, 0x52, 0xba, 0x32, 0xd6, 0xee, 0x65, 0x0c, 0xc6, + 0xa9, 0x49, 0xf8, 0xcc, 0x97, 0x2c, 0xc7, 0x89, 0xd7, 0x09, 0xa6, 0xf6, 0x70, 0xd5, 0x2b, 0x39, + 0xf6, 0x04, 0x26, 0xd2, 0x61, 0x5e, 0xd6, 0x90, 0x13, 0x93, 0xae, 0xfa, 0xb9, 0x0e, 0xca, 0x9d, + 0x40, 0x4e, 0x18, 0x77, 0x3e, 0x51, 0x9b, 0x7e, 0x0c, 0xa8, 0x90, 0xb0, 0x07, 0xb6, 0x7c, 0x17, + 0x7b, 0x55, 0x6d, 0x5f, 0x3b, 0xd8, 0x69, 0x1e, 0xa1, 0x6c, 0x40, 0xc6, 0x29, 0xca, 0x43, 0x14, + 0x19, 0xbd, 0xca, 0x44, 0xcb, 0xc5, 0x9e, 0x1d, 0x03, 0xe0, 0x5b, 0x50, 0xc6, 0x84, 0xb0, 0xc0, + 0x93, 0x83, 0x31, 0x67, 0x81, 0x3f, 0x70, 0x46, 0x55, 0x3d, 0x86, 0x3e, 0x58, 0x83, 0xa6, 0x47, + 0x59, 0xf2, 0x3a, 0x49, 0x5b, 0x2f, 0xea, 0x3a, 0x19, 0xd9, 0xbb, 0x78, 0x65, 0x0d, 0x4f, 0x01, + 0xf4, 0x39, 0x1d, 0xe0, 0x74, 0x72, 0x1c, 0xed, 0x2b, 0xaa, 0xc5, 0xfd, 0xe2, 0xc1, 0x4e, 0xf3, + 0x10, 0x6d, 0x0c, 0x14, 0x59, 0x9c, 0x76, 0xf2, 0x3d, 0x76, 0xc5, 0x5f, 0x53, 0x44, 0xfd, 0x3d, + 0xa8, 0xe4, 0x12, 0x11, 0x3e, 0xf3, 0x04, 0x85, 0x27, 0x60, 0x6b, 0x84, 0x25, 0x4e, 0x23, 0x69, + 0x5d, 0x25, 0x92, 0x15, 0xec, 0x13, 0x2c, 0xb1, 0x1d, 0x23, 0xea, 0x5f, 0x34, 0x50, 0x5e, 0x9f, + 0x03, 0xbe, 0x00, 0xdb, 0x74, 0xd4, 0x6c, 0xb5, 0x1a, 0x8f, 0xfe, 0x92, 0xfa, 0xff, 0x4e, 0x81, + 0x9e, 0x26, 0xad, 0xcf, 0x0a, 0xb6, 0xa2, 0xd4, 0x0e, 0xc1, 0x76, 0xaa, 0xc2, 0x5d, 0xa0, 0x87, + 0x67, 0x31, 0xb6, 0x64, 0xeb, 0xe1, 0x19, 0x2c, 0x83, 0xa2, 0x70, 0xc6, 0xf1, 0x8f, 0x28, 0xd9, + 0xd1, 0x67, 0xf7, 0x06, 0xa8, 0xfc, 0x11, 0x67, 0xf3, 0xb3, 0x06, 0x6e, 0x1e, 0x27, 0x5b, 0x5b, + 0xd1, 0x5d, 0x21, 0xcc, 0x7d, 0x49, 0x79, 0xe8, 0x10, 0x0a, 0x3f, 0x80, 0xeb, 0xcb, 0x88, 0xe0, + 0xbf, 0xf2, 0x5e, 0xbf, 0x5a, 0xb5, 0xfb, 0x57, 0x33, 0x27, 0xa9, 0x77, 0x2f, 0xf4, 0x6f, 0x73, + 0x43, 0xbb, 0x9c, 0x1b, 0xda, 0xcf, 0xb9, 0xa1, 0x9d, 0x2f, 0x8c, 0xc2, 0xe5, 0xc2, 0x28, 0xfc, + 0x58, 0x18, 0x05, 0x70, 0x9b, 0xb0, 0xe9, 0x66, 0x56, 0xb7, 0x94, 0x9f, 0xdc, 0xd2, 0x4e, 0x5f, + 0x8f, 0x1d, 0x39, 0x09, 0x86, 0x88, 0xb0, 0xa9, 0x49, 0x98, 0x98, 0x32, 0x61, 0x72, 0xea, 0xe2, + 0x19, 0xe5, 0x66, 0xd8, 0x5c, 0x7e, 0x92, 0x09, 0x76, 0x3c, 0x61, 0x6e, 0x7c, 0xb9, 0x8f, 0x53, + 0x41, 0xad, 0x2f, 0xf4, 0xa2, 0x75, 0xfc, 0xee, 0xab, 0xbe, 0x67, 0xa9, 0x41, 0xd2, 0x6d, 0xd1, + 0x9b, 0xd4, 0xf1, 0x3d, 0xab, 0xf5, 0xd3, 0x5a, 0x5f, 0xd5, 0xe6, 0xfa, 0x9d, 0x8d, 0xb5, 0x7e, + 0xcf, 0xea, 0x3e, 0xa7, 0x12, 0x47, 0x37, 0xe6, 0x97, 0x7e, 0x4b, 0xf9, 0xda, 0xed, 0xd4, 0xd8, + 0x6e, 0x2b, 0xe7, 0xf0, 0x5a, 0xfc, 0x92, 0x8f, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x40, 0xae, + 0xeb, 0xca, 0x71, 0x04, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CustodyProtocolServiceClient is the client API for CustodyProtocolService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CustodyProtocolServiceClient interface { + // Requests authorization of the transaction with the given description. + Authorize(ctx context.Context, in *AuthorizeRequest, opts ...grpc.CallOption) (*AuthorizeResponse, error) +} + +type custodyProtocolServiceClient struct { + cc grpc1.ClientConn +} + +func NewCustodyProtocolServiceClient(cc grpc1.ClientConn) CustodyProtocolServiceClient { + return &custodyProtocolServiceClient{cc} +} + +func (c *custodyProtocolServiceClient) Authorize(ctx context.Context, in *AuthorizeRequest, opts ...grpc.CallOption) (*AuthorizeResponse, error) { + out := new(AuthorizeResponse) + err := c.cc.Invoke(ctx, "/penumbra.custody.v1alpha1.CustodyProtocolService/Authorize", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustodyProtocolServiceServer is the server API for CustodyProtocolService service. +type CustodyProtocolServiceServer interface { + // Requests authorization of the transaction with the given description. + Authorize(context.Context, *AuthorizeRequest) (*AuthorizeResponse, error) +} + +// UnimplementedCustodyProtocolServiceServer can be embedded to have forward compatible implementations. +type UnimplementedCustodyProtocolServiceServer struct { +} + +func (*UnimplementedCustodyProtocolServiceServer) Authorize(ctx context.Context, req *AuthorizeRequest) (*AuthorizeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Authorize not implemented") +} + +func RegisterCustodyProtocolServiceServer(s grpc1.Server, srv CustodyProtocolServiceServer) { + s.RegisterService(&_CustodyProtocolService_serviceDesc, srv) +} + +func _CustodyProtocolService_Authorize_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthorizeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustodyProtocolServiceServer).Authorize(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.custody.v1alpha1.CustodyProtocolService/Authorize", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustodyProtocolServiceServer).Authorize(ctx, req.(*AuthorizeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CustodyProtocolService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "penumbra.custody.v1alpha1.CustodyProtocolService", + HandlerType: (*CustodyProtocolServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Authorize", + Handler: _CustodyProtocolService_Authorize_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "penumbra/custody/v1alpha1/custody.proto", +} + +func (m *AuthorizeRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuthorizeRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AuthorizeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.PreAuthorizations) > 0 { + for iNdEx := len(m.PreAuthorizations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PreAuthorizations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCustody(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCustody(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Plan != nil { + { + size, err := m.Plan.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCustody(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AuthorizeResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuthorizeResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AuthorizeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Data != nil { + { + size, err := m.Data.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCustody(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PreAuthorization) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PreAuthorization) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PreAuthorization) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PreAuthorization != nil { + { + size := m.PreAuthorization.Size() + i -= size + if _, err := m.PreAuthorization.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *PreAuthorization_Ed25519_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PreAuthorization_Ed25519_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Ed25519 != nil { + { + size, err := m.Ed25519.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCustody(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *PreAuthorization_Ed25519) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PreAuthorization_Ed25519) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PreAuthorization_Ed25519) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Sig) > 0 { + i -= len(m.Sig) + copy(dAtA[i:], m.Sig) + i = encodeVarintCustody(dAtA, i, uint64(len(m.Sig))) + i-- + dAtA[i] = 0x12 + } + if len(m.Vk) > 0 { + i -= len(m.Vk) + copy(dAtA[i:], m.Vk) + i = encodeVarintCustody(dAtA, i, uint64(len(m.Vk))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintCustody(dAtA []byte, offset int, v uint64) int { + offset -= sovCustody(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *AuthorizeRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Plan != nil { + l = m.Plan.Size() + n += 1 + l + sovCustody(uint64(l)) + } + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovCustody(uint64(l)) + } + if len(m.PreAuthorizations) > 0 { + for _, e := range m.PreAuthorizations { + l = e.Size() + n += 1 + l + sovCustody(uint64(l)) + } + } + return n +} + +func (m *AuthorizeResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Data != nil { + l = m.Data.Size() + n += 1 + l + sovCustody(uint64(l)) + } + return n +} + +func (m *PreAuthorization) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PreAuthorization != nil { + n += m.PreAuthorization.Size() + } + return n +} + +func (m *PreAuthorization_Ed25519_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Ed25519 != nil { + l = m.Ed25519.Size() + n += 1 + l + sovCustody(uint64(l)) + } + return n +} +func (m *PreAuthorization_Ed25519) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Vk) + if l > 0 { + n += 1 + l + sovCustody(uint64(l)) + } + l = len(m.Sig) + if l > 0 { + n += 1 + l + sovCustody(uint64(l)) + } + return n +} + +func sovCustody(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozCustody(x uint64) (n int) { + return sovCustody(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *AuthorizeRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuthorizeRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuthorizeRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Plan", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCustody + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCustody + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Plan == nil { + m.Plan = &v1alpha1.TransactionPlan{} + } + if err := m.Plan.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCustody + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCustody + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AccountGroupId == nil { + m.AccountGroupId = &v1alpha11.AccountGroupId{} + } + if err := m.AccountGroupId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PreAuthorizations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCustody + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCustody + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PreAuthorizations = append(m.PreAuthorizations, &PreAuthorization{}) + if err := m.PreAuthorizations[len(m.PreAuthorizations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCustody(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCustody + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuthorizeResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuthorizeResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuthorizeResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCustody + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCustody + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Data == nil { + m.Data = &v1alpha1.AuthorizationData{} + } + if err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCustody(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCustody + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PreAuthorization) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PreAuthorization: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PreAuthorization: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ed25519", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCustody + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCustody + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &PreAuthorization_Ed25519{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.PreAuthorization = &PreAuthorization_Ed25519_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCustody(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCustody + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PreAuthorization_Ed25519) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Ed25519: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Ed25519: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCustody + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCustody + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Vk = append(m.Vk[:0], dAtA[iNdEx:postIndex]...) + if m.Vk == nil { + m.Vk = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sig", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCustody + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCustody + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCustody + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sig = append(m.Sig[:0], dAtA[iNdEx:postIndex]...) + if m.Sig == nil { + m.Sig = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCustody(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCustody + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipCustody(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCustody + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCustody + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCustody + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthCustody + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupCustody + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthCustody + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthCustody = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowCustody = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupCustody = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/penumbra/event_parser.go b/relayer/chains/penumbra/event_parser.go new file mode 100644 index 000000000..319a8157b --- /dev/null +++ b/relayer/chains/penumbra/event_parser.go @@ -0,0 +1,472 @@ +package penumbra + +import ( + "encoding/base64" + "encoding/hex" + "fmt" + "strconv" + "strings" + "time" + + abci "github.com/cometbft/cometbft/abci/types" + sdk "github.com/cosmos/cosmos-sdk/types" + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer/processor" + "github.com/cosmos/relayer/v2/relayer/provider" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +) + +// ibcMessage is the type used for parsing all possible properties of IBC messages +type ibcMessage struct { + eventType string + info ibcMessageInfo +} + +type ibcMessageInfo interface { + parseAttrs(log *zap.Logger, attrs []sdk.Attribute) + MarshalLogObject(enc zapcore.ObjectEncoder) error +} + +func (ccp *PenumbraChainProcessor) ibcMessagesFromBlockEvents( + beginBlockEvents, endBlockEvents []abci.Event, + height uint64, base64Encoded bool, +) (res []ibcMessage) { + chainID := ccp.chainProvider.ChainId() + res = append(res, ibcMessagesFromEvents(ccp.log, beginBlockEvents, chainID, height, base64Encoded)...) + res = append(res, ibcMessagesFromEvents(ccp.log, endBlockEvents, chainID, height, base64Encoded)...) + return res +} + +func parseBase64Event(log *zap.Logger, event abci.Event) sdk.StringEvent { + evt := sdk.StringEvent{Type: event.Type} + for _, attr := range event.Attributes { + key, err := base64.StdEncoding.DecodeString(attr.Key) + if err != nil { + log.Error("Failed to decode legacy key as base64", zap.String("base64", attr.Key), zap.Error(err)) + continue + } + value, err := base64.StdEncoding.DecodeString(attr.Value) + if err != nil { + log.Error("Failed to decode legacy value as base64", zap.String("base64", attr.Value), zap.Error(err)) + continue + } + evt.Attributes = append(evt.Attributes, sdk.Attribute{ + Key: string(key), + Value: string(value), + }) + } + return evt +} + +// ibcMessagesFromTransaction parses all events within a transaction to find IBC messages +func ibcMessagesFromEvents( + log *zap.Logger, + events []abci.Event, + chainID string, + height uint64, + base64Encoded bool, +) (messages []ibcMessage) { + for _, event := range events { + var evt sdk.StringEvent + if base64Encoded { + evt = parseBase64Event(log, event) + } else { + evt = sdk.StringifyEvent(event) + } + m := parseIBCMessageFromEvent(log, evt, chainID, height) + if m == nil || m.info == nil { + // Not an IBC message, don't need to log here + continue + } + messages = append(messages, *m) + } + return messages +} + +func parseIBCMessageFromEvent( + log *zap.Logger, + event sdk.StringEvent, + chainID string, + height uint64, +) *ibcMessage { + switch event.Type { + case chantypes.EventTypeSendPacket, chantypes.EventTypeRecvPacket, chantypes.EventTypeWriteAck, + chantypes.EventTypeAcknowledgePacket, chantypes.EventTypeTimeoutPacket, + chantypes.EventTypeTimeoutPacketOnClose: + pi := &packetInfo{Height: height} + pi.parseAttrs(log, event.Attributes) + return &ibcMessage{ + eventType: event.Type, + info: pi, + } + case chantypes.EventTypeChannelOpenInit, chantypes.EventTypeChannelOpenTry, + chantypes.EventTypeChannelOpenAck, chantypes.EventTypeChannelOpenConfirm, + chantypes.EventTypeChannelCloseInit, chantypes.EventTypeChannelCloseConfirm: + ci := &channelInfo{Height: height} + ci.parseAttrs(log, event.Attributes) + return &ibcMessage{ + eventType: event.Type, + info: ci, + } + case conntypes.EventTypeConnectionOpenInit, conntypes.EventTypeConnectionOpenTry, + conntypes.EventTypeConnectionOpenAck, conntypes.EventTypeConnectionOpenConfirm: + ci := &connectionInfo{Height: height} + ci.parseAttrs(log, event.Attributes) + return &ibcMessage{ + eventType: event.Type, + info: ci, + } + case clienttypes.EventTypeCreateClient, clienttypes.EventTypeUpdateClient, + clienttypes.EventTypeUpgradeClient, clienttypes.EventTypeSubmitMisbehaviour, + clienttypes.EventTypeUpdateClientProposal: + ci := new(clientInfo) + ci.parseAttrs(log, event.Attributes) + return &ibcMessage{ + eventType: event.Type, + info: ci, + } + + case string(processor.ClientICQTypeRequest), string(processor.ClientICQTypeResponse): + ci := &clientICQInfo{ + Height: height, + Source: chainID, + } + ci.parseAttrs(log, event.Attributes) + return &ibcMessage{ + eventType: event.Type, + info: ci, + } + } + return nil +} + +func (msg *ibcMessage) parseIBCPacketReceiveMessageFromEvent( + log *zap.Logger, + event sdk.StringEvent, + chainID string, + height uint64, +) *ibcMessage { + var pi *packetInfo + if msg.info == nil { + pi = &packetInfo{Height: height} + msg.info = pi + } else { + pi = msg.info.(*packetInfo) + } + pi.parseAttrs(log, event.Attributes) + if event.Type != chantypes.EventTypeWriteAck { + msg.eventType = event.Type + } + return msg +} + +// clientInfo contains the consensus height of the counterparty chain for a client. +type clientInfo struct { + clientID string + consensusHeight clienttypes.Height + header []byte +} + +func (c clientInfo) ClientState(trustingPeriod time.Duration) provider.ClientState { + return provider.ClientState{ + ClientID: c.clientID, + ConsensusHeight: c.consensusHeight, + TrustingPeriod: trustingPeriod, + Header: c.header, + } +} + +func (res *clientInfo) MarshalLogObject(enc zapcore.ObjectEncoder) error { + enc.AddString("client_id", res.clientID) + enc.AddUint64("consensus_height", res.consensusHeight.RevisionHeight) + enc.AddUint64("consensus_height_revision", res.consensusHeight.RevisionNumber) + return nil +} + +func (res *clientInfo) parseAttrs(log *zap.Logger, attributes []sdk.Attribute) { + for _, attr := range attributes { + res.parseClientAttribute(log, attr) + } +} + +func (res *clientInfo) parseClientAttribute(log *zap.Logger, attr sdk.Attribute) { + switch attr.Key { + case clienttypes.AttributeKeyClientID: + res.clientID = attr.Value + case clienttypes.AttributeKeyConsensusHeight: + revisionSplit := strings.Split(attr.Value, "-") + if len(revisionSplit) != 2 { + log.Error("Error parsing client consensus height", + zap.String("client_id", res.clientID), + zap.String("value", attr.Value), + ) + return + } + revisionNumberString := revisionSplit[0] + revisionNumber, err := strconv.ParseUint(revisionNumberString, 10, 64) + if err != nil { + log.Error("Error parsing client consensus height revision number", + zap.Error(err), + ) + return + } + revisionHeightString := revisionSplit[1] + revisionHeight, err := strconv.ParseUint(revisionHeightString, 10, 64) + if err != nil { + log.Error("Error parsing client consensus height revision height", + zap.Error(err), + ) + return + } + res.consensusHeight = clienttypes.Height{ + RevisionNumber: revisionNumber, + RevisionHeight: revisionHeight, + } + case clienttypes.AttributeKeyHeader: + data, err := hex.DecodeString(attr.Value) + if err != nil { + log.Error("Error parsing client header", + zap.String("header", attr.Value), + zap.Error(err), + ) + return + } + res.header = data + } +} + +// alias type to the provider types, used for adding parser methods +type packetInfo provider.PacketInfo + +func (res *packetInfo) MarshalLogObject(enc zapcore.ObjectEncoder) error { + enc.AddUint64("sequence", res.Sequence) + enc.AddString("src_channel", res.SourceChannel) + enc.AddString("src_port", res.SourcePort) + enc.AddString("dst_channel", res.DestChannel) + enc.AddString("dst_port", res.DestPort) + return nil +} + +// parsePacketInfo is treated differently from the others since it can be constructed from the accumulation of multiple events +func (res *packetInfo) parseAttrs(log *zap.Logger, attrs []sdk.Attribute) { + for _, attr := range attrs { + res.parsePacketAttribute(log, attr) + } +} + +func (res *packetInfo) parsePacketAttribute(log *zap.Logger, attr sdk.Attribute) { + var err error + switch attr.Key { + case chantypes.AttributeKeySequence: + res.Sequence, err = strconv.ParseUint(attr.Value, 10, 64) + if err != nil { + log.Error("Error parsing packet sequence", + zap.String("value", attr.Value), + zap.Error(err), + ) + return + } + case chantypes.AttributeKeyTimeoutTimestamp: + res.TimeoutTimestamp, err = strconv.ParseUint(attr.Value, 10, 64) + if err != nil { + log.Error("Error parsing packet timestamp", + zap.Uint64("sequence", res.Sequence), + zap.String("value", attr.Value), + zap.Error(err), + ) + return + } + // NOTE: deprecated per IBC spec + case chantypes.AttributeKeyData: + res.Data = []byte(attr.Value) + case chantypes.AttributeKeyDataHex: + data, err := hex.DecodeString(attr.Value) + if err != nil { + log.Error("Error parsing packet data", + zap.Uint64("sequence", res.Sequence), + zap.Error(err), + ) + return + } + res.Data = data + // NOTE: deprecated per IBC spec + case chantypes.AttributeKeyAck: + res.Ack = []byte(attr.Value) + case chantypes.AttributeKeyAckHex: + data, err := hex.DecodeString(attr.Value) + if err != nil { + log.Error("Error parsing packet ack", + zap.Uint64("sequence", res.Sequence), + zap.String("value", attr.Value), + zap.Error(err), + ) + return + } + res.Ack = data + case chantypes.AttributeKeyTimeoutHeight: + timeoutSplit := strings.Split(attr.Value, "-") + if len(timeoutSplit) != 2 { + log.Error("Error parsing packet height timeout", + zap.Uint64("sequence", res.Sequence), + zap.String("value", attr.Value), + ) + return + } + revisionNumber, err := strconv.ParseUint(timeoutSplit[0], 10, 64) + if err != nil { + log.Error("Error parsing packet timeout height revision number", + zap.Uint64("sequence", res.Sequence), + zap.String("value", timeoutSplit[0]), + zap.Error(err), + ) + return + } + revisionHeight, err := strconv.ParseUint(timeoutSplit[1], 10, 64) + if err != nil { + log.Error("Error parsing packet timeout height revision height", + zap.Uint64("sequence", res.Sequence), + zap.String("value", timeoutSplit[1]), + zap.Error(err), + ) + return + } + res.TimeoutHeight = clienttypes.Height{ + RevisionNumber: revisionNumber, + RevisionHeight: revisionHeight, + } + case chantypes.AttributeKeySrcPort: + res.SourcePort = attr.Value + case chantypes.AttributeKeySrcChannel: + res.SourceChannel = attr.Value + case chantypes.AttributeKeyDstPort: + res.DestPort = attr.Value + case chantypes.AttributeKeyDstChannel: + res.DestChannel = attr.Value + case chantypes.AttributeKeyChannelOrdering: + res.ChannelOrder = attr.Value + } +} + +// alias type to the provider types, used for adding parser methods +type channelInfo provider.ChannelInfo + +func (res *channelInfo) MarshalLogObject(enc zapcore.ObjectEncoder) error { + enc.AddString("channel_id", res.ChannelID) + enc.AddString("port_id", res.PortID) + enc.AddString("counterparty_channel_id", res.CounterpartyChannelID) + enc.AddString("counterparty_port_id", res.CounterpartyPortID) + return nil +} + +func (res *channelInfo) parseAttrs(log *zap.Logger, attrs []sdk.Attribute) { + for _, attr := range attrs { + res.parseChannelAttribute(attr) + } +} + +// parseChannelAttribute parses channel attributes from an event. +// If the attribute has already been parsed into the channelInfo, +// it will not overwrite, and return true to inform the caller that +// the attribute already exists. +func (res *channelInfo) parseChannelAttribute(attr sdk.Attribute) { + switch attr.Key { + case chantypes.AttributeKeyPortID: + res.PortID = attr.Value + case chantypes.AttributeKeyChannelID: + res.ChannelID = attr.Value + case chantypes.AttributeCounterpartyPortID: + res.CounterpartyPortID = attr.Value + case chantypes.AttributeCounterpartyChannelID: + res.CounterpartyChannelID = attr.Value + case chantypes.AttributeKeyConnectionID: + res.ConnID = attr.Value + case chantypes.AttributeVersion: + res.Version = attr.Value + } +} + +// alias type to the provider types, used for adding parser methods +type connectionInfo provider.ConnectionInfo + +func (res *connectionInfo) MarshalLogObject(enc zapcore.ObjectEncoder) error { + enc.AddString("connection_id", res.ConnID) + enc.AddString("client_id", res.ClientID) + enc.AddString("counterparty_connection_id", res.CounterpartyConnID) + enc.AddString("counterparty_client_id", res.CounterpartyClientID) + return nil +} + +func (res *connectionInfo) parseAttrs(log *zap.Logger, attrs []sdk.Attribute) { + for _, attr := range attrs { + res.parseConnectionAttribute(attr) + } +} + +func (res *connectionInfo) parseConnectionAttribute(attr sdk.Attribute) { + switch attr.Key { + case conntypes.AttributeKeyConnectionID: + res.ConnID = attr.Value + case conntypes.AttributeKeyClientID: + res.ClientID = attr.Value + case conntypes.AttributeKeyCounterpartyConnectionID: + res.CounterpartyConnID = attr.Value + case conntypes.AttributeKeyCounterpartyClientID: + res.CounterpartyClientID = attr.Value + } +} + +type clientICQInfo struct { + Source string + Connection string + Chain string + QueryID provider.ClientICQQueryID + Type string + Request []byte + Height uint64 +} + +func (res *clientICQInfo) MarshalLogObject(enc zapcore.ObjectEncoder) error { + enc.AddString("connection_id", res.Connection) + enc.AddString("chain_id", res.Chain) + enc.AddString("query_id", string(res.QueryID)) + enc.AddString("type", res.Type) + enc.AddString("request", hex.EncodeToString(res.Request)) + enc.AddUint64("height", res.Height) + + return nil +} + +func (res *clientICQInfo) parseAttrs(log *zap.Logger, attrs []sdk.Attribute) { + for _, attr := range attrs { + if err := res.parseAttribute(attr); err != nil { + panic(fmt.Errorf("failed to parse attributes from client ICQ message: %w", err)) + } + } +} + +func (res *clientICQInfo) parseAttribute(attr sdk.Attribute) (err error) { + switch attr.Key { + case "connection_id": + res.Connection = attr.Value + case "chain_id": + res.Chain = attr.Value + case "query_id": + res.QueryID = provider.ClientICQQueryID(attr.Value) + case "type": + res.Type = attr.Value + case "request": + res.Request, err = hex.DecodeString(attr.Value) + if err != nil { + return err + } + case "height": + res.Height, err = strconv.ParseUint(attr.Value, 10, 64) + if err != nil { + return err + } + } + return nil +} diff --git a/relayer/chains/penumbra/grpc_query.go b/relayer/chains/penumbra/grpc_query.go new file mode 100644 index 000000000..70c375c81 --- /dev/null +++ b/relayer/chains/penumbra/grpc_query.go @@ -0,0 +1,215 @@ +package penumbra + +import ( + "context" + "fmt" + "reflect" + "strconv" + "sync" + "time" + + abci "github.com/cometbft/cometbft/abci/types" + gogogrpc "github.com/cosmos/gogoproto/grpc" + "github.com/cosmos/relayer/v2/relayer/provider" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/encoding" + "google.golang.org/grpc/encoding/proto" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + + "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + grpctypes "github.com/cosmos/cosmos-sdk/types/grpc" + "github.com/cosmos/cosmos-sdk/types/tx" +) + +var _ gogogrpc.ClientConn = &PenumbraProvider{} + +var protoCodec = encoding.GetCodec(proto.Name) + +// Invoke implements the grpc ClientConn.Invoke method +func (cc *PenumbraProvider) Invoke(ctx context.Context, method string, req, reply interface{}, opts ...grpc.CallOption) (err error) { + // Two things can happen here: + // 1. either we're broadcasting a Tx, in which call we call Tendermint's broadcast endpoint directly, + // 2. or we are querying for state, in which case we call ABCI's Querier. + + // In both cases, we don't allow empty request req (it will panic unexpectedly). + if reflect.ValueOf(req).IsNil() { + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "request cannot be nil") + } + + // Case 1. Broadcasting a Tx. + if reqProto, ok := req.(*tx.BroadcastTxRequest); ok { + if !ok { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "expected %T, got %T", (*tx.BroadcastTxRequest)(nil), req) + } + resProto, ok := reply.(*tx.BroadcastTxResponse) + if !ok { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "expected %T, got %T", (*tx.BroadcastTxResponse)(nil), req) + } + + broadcastRes, err := cc.TxServiceBroadcast(ctx, reqProto) + if err != nil { + return err + } + *resProto = *broadcastRes + return err + } + + // Case 2. Querying state. + inMd, _ := metadata.FromOutgoingContext(ctx) + abciRes, outMd, err := cc.RunGRPCQuery(ctx, method, req, inMd) + if err != nil { + return err + } + + if err = protoCodec.Unmarshal(abciRes.Value, reply); err != nil { + return err + } + + for _, callOpt := range opts { + header, ok := callOpt.(grpc.HeaderCallOption) + if !ok { + continue + } + + *header.HeaderAddr = outMd + } + + if cc.Codec.InterfaceRegistry != nil { + return types.UnpackInterfaces(reply, cc.Codec.Marshaler) + } + + return nil +} + +// NewStream implements the grpc ClientConn.NewStream method +func (cc *PenumbraProvider) NewStream(context.Context, *grpc.StreamDesc, string, ...grpc.CallOption) (grpc.ClientStream, error) { + return nil, fmt.Errorf("streaming rpc not supported") +} + +// RunGRPCQuery runs a gRPC query from the clientCtx, given all necessary +// arguments for the gRPC method, and returns the ABCI response. It is used +// to factorize code between client (Invoke) and server (RegisterGRPCServer) +// gRPC handlers. +func (cc *PenumbraProvider) RunGRPCQuery(ctx context.Context, method string, req interface{}, md metadata.MD) (abci.ResponseQuery, metadata.MD, error) { + reqBz, err := protoCodec.Marshal(req) + if err != nil { + return abci.ResponseQuery{}, nil, err + } + + // parse height header + if heights := md.Get(grpctypes.GRPCBlockHeightHeader); len(heights) > 0 { + height, err := strconv.ParseInt(heights[0], 10, 64) + if err != nil { + return abci.ResponseQuery{}, nil, err + } + if height < 0 { + return abci.ResponseQuery{}, nil, sdkerrors.Wrapf( + sdkerrors.ErrInvalidRequest, + "client.Context.Invoke: height (%d) from %q must be >= 0", height, grpctypes.GRPCBlockHeightHeader) + } + + } + + height, err := GetHeightFromMetadata(md) + if err != nil { + return abci.ResponseQuery{}, nil, err + } + + prove, err := GetProveFromMetadata(md) + if err != nil { + return abci.ResponseQuery{}, nil, err + } + + abciReq := abci.RequestQuery{ + Path: method, + Data: reqBz, + Height: height, + Prove: prove, + } + + abciRes, err := cc.QueryABCI(ctx, abciReq) + if err != nil { + return abci.ResponseQuery{}, nil, err + } + + // Create header metadata. For now the headers contain: + // - block height + // We then parse all the call options, if the call option is a + // HeaderCallOption, then we manually set the value of that header to the + // metadata. + md = metadata.Pairs(grpctypes.GRPCBlockHeightHeader, strconv.FormatInt(abciRes.Height, 10)) + return abciRes, md, nil +} + +// TxServiceBroadcast is a helper function to broadcast a Tx with the correct gRPC types +// from the tx service. Calls `clientCtx.BroadcastTx` under the hood. +func (cc *PenumbraProvider) TxServiceBroadcast(ctx context.Context, req *tx.BroadcastTxRequest) (*tx.BroadcastTxResponse, error) { + if req == nil || req.TxBytes == nil { + return nil, status.Error(codes.InvalidArgument, "invalid empty tx") + } + + var ( + blockTimeout = defaultBroadcastWaitTimeout + err error + rlyResp *provider.RelayerTxResponse + callbackErr error + wg sync.WaitGroup + ) + + if cc.PCfg.BlockTimeout != "" { + blockTimeout, err = time.ParseDuration(cc.PCfg.BlockTimeout) + if err != nil { + // Did you call Validate() method on CosmosProviderConfig struct + // before coming here? + return nil, err + } + } + + callback := func(rtr *provider.RelayerTxResponse, err error) { + rlyResp = rtr + callbackErr = err + wg.Done() + } + + wg.Add(1) + + if err := cc.broadcastTx(ctx, req.TxBytes, nil, nil, ctx, blockTimeout, callback); err != nil { + return nil, err + } + + wg.Wait() + + if callbackErr != nil { + return nil, callbackErr + } + + return &tx.BroadcastTxResponse{ + TxResponse: &sdk.TxResponse{ + Height: rlyResp.Height, + TxHash: rlyResp.TxHash, + Codespace: rlyResp.Codespace, + Code: rlyResp.Code, + Data: rlyResp.Data, + }, + }, nil +} + +func GetHeightFromMetadata(md metadata.MD) (int64, error) { + height := md.Get(grpctypes.GRPCBlockHeightHeader) + if len(height) == 1 { + return strconv.ParseInt(height[0], 10, 64) + } + return 0, nil +} + +func GetProveFromMetadata(md metadata.MD) (bool, error) { + prove := md.Get("x-cosmos-query-prove") + if len(prove) == 1 { + return strconv.ParseBool(prove[0]) + } + return false, nil +} diff --git a/relayer/chains/penumbra/keys.go b/relayer/chains/penumbra/keys.go new file mode 100644 index 000000000..c9e918bbe --- /dev/null +++ b/relayer/chains/penumbra/keys.go @@ -0,0 +1,211 @@ +package penumbra + +import ( + "errors" + "os" + + ckeys "github.com/cosmos/cosmos-sdk/client/keys" + "github.com/cosmos/cosmos-sdk/crypto/hd" + "github.com/cosmos/cosmos-sdk/crypto/keyring" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/go-bip39" + "github.com/cosmos/relayer/v2/relayer/codecs/ethermint" + "github.com/cosmos/relayer/v2/relayer/codecs/injective" + "github.com/cosmos/relayer/v2/relayer/provider" +) + +const ethereumCoinType = uint32(60) + +var ( + // SupportedAlgorithms defines the list of signing algorithms used on Evmos: + // - secp256k1 (Cosmos) + // - eth_secp256k1 (Ethereum) + SupportedAlgorithms = keyring.SigningAlgoList{hd.Secp256k1, ethermint.EthSecp256k1, injective.EthSecp256k1} + // SupportedAlgorithmsLedger defines the list of signing algorithms used on Evmos for the Ledger device: + // - secp256k1 (Cosmos) + // - eth_secp256k1 (Ethereum) + SupportedAlgorithmsLedger = keyring.SigningAlgoList{hd.Secp256k1, ethermint.EthSecp256k1, injective.EthSecp256k1} +) + +// KeyringAlgoOptions defines a function keys options for the ethereum Secp256k1 curve. +// It supports secp256k1 and eth_secp256k1 keys for accounts. +func KeyringAlgoOptions() keyring.Option { + return func(options *keyring.Options) { + options.SupportedAlgos = SupportedAlgorithms + options.SupportedAlgosLedger = SupportedAlgorithmsLedger + } +} + +// CreateKeystore initializes a new instance of a keyring at the specified path in the local filesystem. +func (cc *PenumbraProvider) CreateKeystore(path string) error { + keybase, err := keyring.New(cc.PCfg.ChainID, cc.PCfg.KeyringBackend, cc.PCfg.KeyDirectory, cc.Input, cc.Codec.Marshaler, KeyringAlgoOptions()) + if err != nil { + return err + } + cc.Keybase = keybase + return nil +} + +// KeystoreCreated returns true if there is an existing keystore instance at the specified path, it returns false otherwise. +func (cc *PenumbraProvider) KeystoreCreated(path string) bool { + if _, err := os.Stat(cc.PCfg.KeyDirectory); errors.Is(err, os.ErrNotExist) { + return false + } else if cc.Keybase == nil { + return false + } + return true +} + +// AddKey generates a new mnemonic which is then converted to a private key and BIP-39 HD Path and persists it to the keystore. +// It fails if there is an existing key with the same address. +func (cc *PenumbraProvider) AddKey(name string, coinType uint32) (output *provider.KeyOutput, err error) { + ko, err := cc.KeyAddOrRestore(name, coinType) + if err != nil { + return nil, err + } + return ko, nil +} + +// RestoreKey converts a mnemonic to a private key and BIP-39 HD Path and persists it to the keystore. +// It fails if there is an existing key with the same address. +func (cc *PenumbraProvider) RestoreKey(name, mnemonic string, coinType uint32) (address string, err error) { + ko, err := cc.KeyAddOrRestore(name, coinType, mnemonic) + if err != nil { + return "", err + } + return ko.Address, nil +} + +// KeyAddOrRestore either generates a new mnemonic or uses the specified mnemonic and converts it to a private key +// and BIP-39 HD Path which is then persisted to the keystore. It fails if there is an existing key with the same address. +func (cc *PenumbraProvider) KeyAddOrRestore(keyName string, coinType uint32, mnemonic ...string) (*provider.KeyOutput, error) { + var mnemonicStr string + var err error + algo := keyring.SignatureAlgo(hd.Secp256k1) + + if len(mnemonic) > 0 { + mnemonicStr = mnemonic[0] + } else { + mnemonicStr, err = CreateMnemonic() + if err != nil { + return nil, err + } + } + + if coinType == ethereumCoinType { + algo = keyring.SignatureAlgo(ethermint.EthSecp256k1) + for _, codec := range cc.PCfg.ExtraCodecs { + if codec == "injective" { + algo = keyring.SignatureAlgo(injective.EthSecp256k1) + } + } + } + + info, err := cc.Keybase.NewAccount(keyName, mnemonicStr, "", hd.CreateHDPath(coinType, 0, 0).String(), algo) + if err != nil { + return nil, err + } + + acc, err := info.GetAddress() + if err != nil { + return nil, err + } + + out, err := cc.EncodeBech32AccAddr(acc) + if err != nil { + return nil, err + } + return &provider.KeyOutput{Mnemonic: mnemonicStr, Address: out}, nil +} + +// ShowAddress retrieves a key by name from the keystore and returns the bech32 encoded string representation of that key. +func (cc *PenumbraProvider) ShowAddress(name string) (address string, err error) { + info, err := cc.Keybase.Key(name) + if err != nil { + return "", err + } + acc, err := info.GetAddress() + if err != nil { + return "", nil + } + out, err := cc.EncodeBech32AccAddr(acc) + if err != nil { + return "", err + } + return out, nil +} + +// ListAddresses returns a map of bech32 encoded strings representing all keys currently in the keystore. +func (cc *PenumbraProvider) ListAddresses() (map[string]string, error) { + out := map[string]string{} + info, err := cc.Keybase.List() + if err != nil { + return nil, err + } + for _, k := range info { + acc, err := k.GetAddress() + if err != nil { + return nil, err + } + addr, err := cc.EncodeBech32AccAddr(acc) + if err != nil { + return nil, err + } + out[k.Name] = addr + } + return out, nil +} + +// DeleteKey removes a key from the keystore for the specified name. +func (cc *PenumbraProvider) DeleteKey(name string) error { + if err := cc.Keybase.Delete(name); err != nil { + return err + } + return nil +} + +// KeyExists returns true if a key with the specified name exists in the keystore, it returns false otherwise. +func (cc *PenumbraProvider) KeyExists(name string) bool { + k, err := cc.Keybase.Key(name) + if err != nil { + return false + } + + return k.Name == name + +} + +// ExportPrivKeyArmor returns a private key in ASCII armored format. +// It returns an error if the key does not exist or a wrong encryption passphrase is supplied. +func (cc *PenumbraProvider) ExportPrivKeyArmor(keyName string) (armor string, err error) { + return cc.Keybase.ExportPrivKeyArmor(keyName, ckeys.DefaultKeyPass) +} + +// GetKeyAddress returns the account address representation for the currently configured key. +func (cc *PenumbraProvider) GetKeyAddress() (sdk.AccAddress, error) { + info, err := cc.Keybase.Key(cc.PCfg.Key) + if err != nil { + return nil, err + } + return info.GetAddress() +} + +// CreateMnemonic generates a new mnemonic. +func CreateMnemonic() (string, error) { + entropySeed, err := bip39.NewEntropy(256) + if err != nil { + return "", err + } + mnemonic, err := bip39.NewMnemonic(entropySeed) + if err != nil { + return "", err + } + return mnemonic, nil +} + +// EncodeBech32AccAddr returns the string bech32 representation for the specified account address. +// It returns an empty sting if the byte slice is 0-length. +// It returns an error if the bech32 conversion fails or the prefix is empty. +func (cc *PenumbraProvider) EncodeBech32AccAddr(addr sdk.AccAddress) (string, error) { + return sdk.Bech32ifyAddressBytes(cc.PCfg.AccountPrefix, addr) +} diff --git a/relayer/chains/penumbra/log.go b/relayer/chains/penumbra/log.go new file mode 100644 index 000000000..3c4661cc5 --- /dev/null +++ b/relayer/chains/penumbra/log.go @@ -0,0 +1,157 @@ +package penumbra + +import ( + "reflect" + + "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" + typestx "github.com/cosmos/cosmos-sdk/types/tx" + transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + "github.com/cosmos/relayer/v2/relayer/provider" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +) + +// getChannelsIfPresent scans the events for channel tags +func getChannelsIfPresent(events []provider.RelayerEvent) []zapcore.Field { + channelTags := []string{srcChanTag, dstChanTag} + fields := []zap.Field{} + + // While a transaction may have multiple messages, we just need to first + // pair of channels + foundTag := map[string]struct{}{} + + for _, event := range events { + for _, tag := range channelTags { + for attributeKey, attributeValue := range event.Attributes { + if attributeKey == tag { + // Only append the tag once + // TODO: what if they are different? + if _, ok := foundTag[tag]; !ok { + fields = append(fields, zap.String(tag, attributeValue)) + foundTag[tag] = struct{}{} + } + } + } + } + } + return fields +} + +// LogFailedTx takes the transaction and the messages to create it and logs the appropriate data +func (cc *PenumbraProvider) LogFailedTx(res *provider.RelayerTxResponse, err error, msgs []provider.RelayerMessage) { + // Include the chain_id + fields := []zapcore.Field{zap.String("chain_id", cc.ChainId())} + + // Extract the channels from the events, if present + if res != nil { + channels := getChannelsIfPresent(res.Events) + fields = append(fields, channels...) + } + fields = append(fields, msgTypesField(msgs)) + + if err != nil { + // Make a copy since we may continue to the warning + errorFields := append(fields, zap.Error(err)) + cc.log.Error( + "Failed sending cosmos transaction", + errorFields..., + ) + + if res == nil { + return + } + } + + if res.Code != 0 && res.Data != "" { + fields = append(fields, zap.Object("response", res)) + cc.log.Warn( + "Sent transaction but received failure response", + fields..., + ) + } +} + +// LogSuccessTx take the transaction and the messages to create it and logs the appropriate data +func (cc *PenumbraProvider) LogSuccessTx(res *sdk.TxResponse, msgs []provider.RelayerMessage) { + // Include the chain_id + fields := []zapcore.Field{zap.String("chain_id", cc.ChainId())} + + // Extract the channels from the events, if present + if res != nil { + events := parseEventsFromTxResponse(res) + fields = append(fields, getChannelsIfPresent(events)...) + } + + // Include the gas used + fields = append(fields, zap.Int64("gas_used", res.GasUsed)) + + // Extract fees and fee_payer if present + ir := types.NewInterfaceRegistry() + var m sdk.Msg + if err := ir.UnpackAny(res.Tx, &m); err == nil { + if tx, ok := m.(*typestx.Tx); ok { + fields = append(fields, zap.Stringer("fees", tx.GetFee())) + if feePayer := getFeePayer(tx); feePayer != "" { + fields = append(fields, zap.String("fee_payer", feePayer)) + } + } else { + cc.log.Debug( + "Failed to convert message to Tx type", + zap.Stringer("type", reflect.TypeOf(m)), + ) + } + } else { + cc.log.Debug("Failed to unpack response Tx into sdk.Msg", zap.Error(err)) + } + + // Include the height, msgType, and tx_hash + fields = append(fields, + zap.Int64("height", res.Height), + msgTypesField(msgs), + zap.String("tx_hash", res.TxHash), + ) + + // Log the succesful transaction with fields + cc.log.Info( + "Successful transaction", + fields..., + ) +} + +func msgTypesField(msgs []provider.RelayerMessage) zap.Field { + msgTypes := make([]string, len(msgs)) + for i, m := range msgs { + msgTypes[i] = m.Type() + } + return zap.Strings("msg_types", msgTypes) +} + +// getFeePayer returns the bech32 address of the fee payer of a transaction. +// This uses the fee payer field if set, +// otherwise falls back to the address of whoever signed the first message. +func getFeePayer(tx *typestx.Tx) string { + payer := tx.AuthInfo.Fee.Payer + if payer != "" { + return payer + } + + switch firstMsg := tx.GetMsgs()[0].(type) { + case *transfertypes.MsgTransfer: + // There is a possible data race around concurrent map access + // in the cosmos sdk when it converts the address from bech32. + // We don't need the address conversion; just the sender is all that + // GetSigners is doing under the hood anyway. + return firstMsg.Sender + case *clienttypes.MsgCreateClient: + // Without this particular special case, there is a panic in ibc-go + // due to the sdk config singleton expecting one bech32 prefix but seeing another. + return firstMsg.Signer + case *clienttypes.MsgUpdateClient: + // Same failure mode as MsgCreateClient. + return firstMsg.Signer + default: + return firstMsg.GetSigners()[0].String() + } +} diff --git a/relayer/chains/penumbra/message_handlers.go b/relayer/chains/penumbra/message_handlers.go new file mode 100644 index 000000000..69f3b3538 --- /dev/null +++ b/relayer/chains/penumbra/message_handlers.go @@ -0,0 +1,168 @@ +package penumbra + +import ( + conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer/processor" + "github.com/cosmos/relayer/v2/relayer/provider" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +) + +func (pcp *PenumbraChainProcessor) handleMessage(m ibcMessage, c processor.IBCMessagesCache) { + switch t := m.info.(type) { + case *packetInfo: + pcp.handlePacketMessage(m.eventType, provider.PacketInfo(*t), c) + case *channelInfo: + pcp.handleChannelMessage(m.eventType, provider.ChannelInfo(*t), c) + case *connectionInfo: + pcp.handleConnectionMessage(m.eventType, provider.ConnectionInfo(*t), c) + case *clientInfo: + pcp.handleClientMessage(m.eventType, *t) + } +} + +func (pcp *PenumbraChainProcessor) handlePacketMessage(action string, pi provider.PacketInfo, c processor.IBCMessagesCache) { + channelKey, err := processor.PacketInfoChannelKey(action, pi) + if err != nil { + pcp.log.Error("Unexpected error handling packet message", + zap.String("action", action), + zap.Uint64("sequence", pi.Sequence), + zap.Any("channel", channelKey), + zap.Error(err), + ) + return + } + + if !c.PacketFlow.ShouldRetainSequence(pcp.pathProcessors, channelKey, pcp.chainProvider.ChainId(), action, pi.Sequence) { + pcp.log.Warn("Not retaining packet message", + zap.String("action", action), + zap.Uint64("sequence", pi.Sequence), + zap.Any("channel", channelKey), + ) + return + } + + c.PacketFlow.Retain(channelKey, action, pi) + pcp.logPacketMessage(action, pi) +} + +func (pcp *PenumbraChainProcessor) handleChannelMessage(eventType string, ci provider.ChannelInfo, ibcMessagesCache processor.IBCMessagesCache) { + pcp.channelConnections[ci.ChannelID] = ci.ConnID + channelKey := processor.ChannelInfoChannelKey(ci) + + if eventType == chantypes.EventTypeChannelOpenInit { + found := false + for k := range pcp.channelStateCache { + // Don't add a channelKey to the channelStateCache without counterparty channel ID + // since we already have the channelKey in the channelStateCache which includes the + // counterparty channel ID. + if k.MsgInitKey() == channelKey { + found = true + break + } + } + if !found { + pcp.channelStateCache[channelKey] = false + } + } else { + switch eventType { + case chantypes.EventTypeChannelOpenTry: + pcp.channelStateCache[channelKey] = false + case chantypes.EventTypeChannelOpenAck, chantypes.EventTypeChannelOpenConfirm: + pcp.channelStateCache[channelKey] = true + case chantypes.EventTypeChannelCloseConfirm: + for k := range pcp.channelStateCache { + if k.PortID == ci.PortID && k.ChannelID == ci.ChannelID { + pcp.channelStateCache[k] = false + break + } + } + } + // Clear out MsgInitKeys once we have the counterparty channel ID + delete(pcp.channelStateCache, channelKey.MsgInitKey()) + } + + ibcMessagesCache.ChannelHandshake.Retain(channelKey, eventType, ci) + + pcp.logChannelMessage(eventType, ci) +} + +func (pcp *PenumbraChainProcessor) handleConnectionMessage(eventType string, ci provider.ConnectionInfo, ibcMessagesCache processor.IBCMessagesCache) { + pcp.connectionClients[ci.ConnID] = ci.ClientID + connectionKey := processor.ConnectionInfoConnectionKey(ci) + if eventType == conntypes.EventTypeConnectionOpenInit { + found := false + for k := range pcp.connectionStateCache { + // Don't add a connectionKey to the connectionStateCache without counterparty connection ID + // since we already have the connectionKey in the connectionStateCache which includes the + // counterparty connection ID. + if k.MsgInitKey() == connectionKey { + found = true + break + } + } + if !found { + pcp.connectionStateCache[connectionKey] = false + } + } else { + // Clear out MsgInitKeys once we have the counterparty connection ID + delete(pcp.connectionStateCache, connectionKey.MsgInitKey()) + open := (eventType == conntypes.EventTypeConnectionOpenAck || eventType == conntypes.EventTypeConnectionOpenConfirm) + pcp.connectionStateCache[connectionKey] = open + } + ibcMessagesCache.ConnectionHandshake.Retain(connectionKey, eventType, ci) + + pcp.logConnectionMessage(eventType, ci) +} + +func (pcp *PenumbraChainProcessor) handleClientMessage(eventType string, ci clientInfo) { + pcp.latestClientState.update(ci) + pcp.logObservedIBCMessage(eventType, zap.String("client_id", ci.clientID)) +} + +func (pcp *PenumbraChainProcessor) logObservedIBCMessage(m string, fields ...zap.Field) { + pcp.log.With(zap.String("event_type", m)).Debug("Observed IBC message", fields...) +} + +func (pcp *PenumbraChainProcessor) logPacketMessage(message string, pi provider.PacketInfo) { + if !pcp.log.Core().Enabled(zapcore.DebugLevel) { + return + } + fields := []zap.Field{ + zap.Uint64("sequence", pi.Sequence), + zap.String("src_channel", pi.SourceChannel), + zap.String("src_port", pi.SourcePort), + zap.String("dst_channel", pi.DestChannel), + zap.String("dst_port", pi.DestPort), + } + if pi.TimeoutHeight.RevisionHeight > 0 { + fields = append(fields, zap.Uint64("timeout_height", pi.TimeoutHeight.RevisionHeight)) + } + if pi.TimeoutHeight.RevisionNumber > 0 { + fields = append(fields, zap.Uint64("timeout_height_revision", pi.TimeoutHeight.RevisionNumber)) + } + if pi.TimeoutTimestamp > 0 { + fields = append(fields, zap.Uint64("timeout_timestamp", pi.TimeoutTimestamp)) + } + pcp.logObservedIBCMessage(message, fields...) +} + +func (pcp *PenumbraChainProcessor) logChannelMessage(message string, ci provider.ChannelInfo) { + pcp.logObservedIBCMessage(message, + zap.String("channel_id", ci.ChannelID), + zap.String("port_id", ci.PortID), + zap.String("counterparty_channel_id", ci.CounterpartyChannelID), + zap.String("counterparty_port_id", ci.CounterpartyPortID), + zap.String("connection_id", ci.ConnID), + ) +} + +func (pcp *PenumbraChainProcessor) logConnectionMessage(message string, ci provider.ConnectionInfo) { + pcp.logObservedIBCMessage(message, + zap.String("client_id", ci.ClientID), + zap.String("connection_id", ci.ConnID), + zap.String("counterparty_client_id", ci.CounterpartyClientID), + zap.String("counterparty_connection_id", ci.CounterpartyConnID), + ) +} diff --git a/relayer/chains/penumbra/msg.go b/relayer/chains/penumbra/msg.go new file mode 100644 index 000000000..689a3267d --- /dev/null +++ b/relayer/chains/penumbra/msg.go @@ -0,0 +1,80 @@ +package penumbra + +import ( + "fmt" + + "github.com/cosmos/cosmos-sdk/codec" + sdk "github.com/cosmos/cosmos-sdk/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + "github.com/cosmos/relayer/v2/relayer/provider" + "github.com/gogo/protobuf/proto" + "go.uber.org/zap/zapcore" +) + +type PenumbraMessage struct { + Msg sdk.Msg +} + +func NewPenumbraMessage(msg sdk.Msg) provider.RelayerMessage { + return PenumbraMessage{ + Msg: msg, + } +} + +func PenumbraMsg(rm provider.RelayerMessage) sdk.Msg { + if val, ok := rm.(PenumbraMessage); !ok { + fmt.Printf("got data of type %T but wanted PenumbraMessage \n", val) + return nil + } else { + return val.Msg + } +} + +// typedPenumbraMsg does not accept nil. IBC Message must be of the requested type. +func typedPenumbraMsg[T *chantypes.MsgRecvPacket | *chantypes.MsgAcknowledgement](msg provider.RelayerMessage) T { + if msg == nil { + panic("msg is nil") + } + cosmosMsg := PenumbraMsg(msg) + if cosmosMsg == nil { + panic("cosmosMsg is nil") + } + return cosmosMsg.(T) +} + +func PenumbraMsgs(rm ...provider.RelayerMessage) []sdk.Msg { + sdkMsgs := make([]sdk.Msg, 0) + for _, rMsg := range rm { + switch rMsg.(type) { + case PenumbraMessage: + sdkMsgs = append(sdkMsgs, rMsg.(PenumbraMessage).Msg) + case cosmos.CosmosMessage: + sdkMsgs = append(sdkMsgs, rMsg.(cosmos.CosmosMessage).Msg) + default: + fmt.Printf("got data of type %T but wanted PenumbraMessage \n", rMsg) + return nil + } + } + return sdkMsgs +} + +func (cm PenumbraMessage) Type() string { + return sdk.MsgTypeURL(cm.Msg) +} + +func (cm PenumbraMessage) MsgBytes() ([]byte, error) { + return proto.Marshal(cm.Msg) +} + +// MarshalLogObject is used to encode cm to a zap logger with the zap.Object field type. +func (cm PenumbraMessage) MarshalLogObject(enc zapcore.ObjectEncoder) error { + // Using plain json.Marshal or calling cm.Msg.String() both fail miserably here. + // There is probably a better way to encode the message than this. + j, err := codec.NewLegacyAmino().MarshalJSON(cm.Msg) + if err != nil { + return err + } + enc.AddByteString("msg_json", j) + return nil +} diff --git a/relayer/chains/penumbra/penumbra_chain_processor.go b/relayer/chains/penumbra/penumbra_chain_processor.go new file mode 100644 index 000000000..f1cc169a1 --- /dev/null +++ b/relayer/chains/penumbra/penumbra_chain_processor.go @@ -0,0 +1,415 @@ +package penumbra + +import ( + "context" + "errors" + "fmt" + "time" + + "github.com/avast/retry-go/v4" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + ctypes "github.com/cometbft/cometbft/rpc/core/types" + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer/processor" + "github.com/cosmos/relayer/v2/relayer/provider" + + "go.uber.org/zap" + "golang.org/x/sync/errgroup" +) + +const blockResultsQueryTimeout = 2 * time.Minute + +type PenumbraChainProcessor struct { + log *zap.Logger + + chainProvider *PenumbraProvider + + pathProcessors processor.PathProcessors + + // indicates whether queries are in sync with latest height of the chain + inSync bool + + // highest block + latestBlock provider.LatestBlock + + // holds highest consensus height and header for all clients + latestClientState + + // holds open state for known connections + connectionStateCache processor.ConnectionStateCache + + // holds open state for known channels + channelStateCache processor.ChannelStateCache + + // map of connection ID to client ID + connectionClients map[string]string + + // map of channel ID to connection ID + channelConnections map[string]string +} + +func NewPenumbraChainProcessor(log *zap.Logger, provider *PenumbraProvider) *PenumbraChainProcessor { + return &PenumbraChainProcessor{ + log: log.With(zap.String("chain_name", provider.ChainName()), zap.String("chain_id", provider.ChainId())), + chainProvider: provider, + latestClientState: make(latestClientState), + connectionStateCache: make(processor.ConnectionStateCache), + channelStateCache: make(processor.ChannelStateCache), + connectionClients: make(map[string]string), + channelConnections: make(map[string]string), + } +} + +const ( + queryTimeout = 5 * time.Second + latestHeightQueryRetryDelay = 1 * time.Second + latestHeightQueryRetries = 5 + + defaultMinQueryLoopDuration = 1 * time.Second + inSyncNumBlocksThreshold = 2 +) + +type msgHandlerParams struct { + // incoming IBC message + messageInfo any + + // reference to the caches that will be assembled by the handlers in this file + ibcMessagesCache processor.IBCMessagesCache +} + +// latestClientState is a map of clientID to the latest clientInfo for that client. +type latestClientState map[string]provider.ClientState + +func (l latestClientState) update(clientInfo clientInfo) { + existingClientInfo, ok := l[clientInfo.clientID] + if ok && clientInfo.consensusHeight.LT(existingClientInfo.ConsensusHeight) { + // height is less than latest, so no-op + return + } + // TODO: don't hardcode + tp := time.Hour * 2 + + // update latest if no existing state or provided consensus height is newer + l[clientInfo.clientID] = clientInfo.ClientState(tp) +} + +// Provider returns the ChainProvider, which provides the methods for querying, assembling IBC messages, and sending transactions. +func (pcp *PenumbraChainProcessor) Provider() provider.ChainProvider { + return pcp.chainProvider +} + +// Set the PathProcessors that this ChainProcessor should publish relevant IBC events to. +// ChainProcessors need reference to their PathProcessors and vice-versa, handled by EventProcessorBuilder.Build(). +func (pcp *PenumbraChainProcessor) SetPathProcessors(pathProcessors processor.PathProcessors) { + pcp.pathProcessors = pathProcessors +} + +// latestHeightWithRetry will query for the latest height, retrying in case of failure. +// It will delay by latestHeightQueryRetryDelay between attempts, up to latestHeightQueryRetries. +func (pcp *PenumbraChainProcessor) latestHeightWithRetry(ctx context.Context) (latestHeight int64, err error) { + return latestHeight, retry.Do(func() error { + latestHeightQueryCtx, cancelLatestHeightQueryCtx := context.WithTimeout(ctx, queryTimeout) + defer cancelLatestHeightQueryCtx() + var err error + latestHeight, err = pcp.chainProvider.QueryLatestHeight(latestHeightQueryCtx) + return err + }, retry.Context(ctx), retry.Attempts(latestHeightQueryRetries), retry.Delay(latestHeightQueryRetryDelay), retry.LastErrorOnly(true), retry.OnRetry(func(n uint, err error) { + pcp.log.Info( + "Failed to query latest height", + zap.Uint("attempt", n+1), + zap.Uint("max_attempts", latestHeightQueryRetries), + zap.Error(err), + ) + })) +} + +// clientState will return the most recent client state if client messages +// have already been observed for the clientID, otherwise it will query for it. +func (pcp *PenumbraChainProcessor) clientState(ctx context.Context, clientID string) (provider.ClientState, error) { + if state, ok := pcp.latestClientState[clientID]; ok { + return state, nil + } + cs, err := pcp.chainProvider.QueryClientState(ctx, int64(pcp.latestBlock.Height), clientID) + if err != nil { + return provider.ClientState{}, err + } + clientState := provider.ClientState{ + ClientID: clientID, + ConsensusHeight: cs.GetLatestHeight().(clienttypes.Height), + } + pcp.latestClientState[clientID] = clientState + return clientState, nil +} + +// queryCyclePersistence hold the variables that should be retained across queryCycles. +type queryCyclePersistence struct { + latestHeight int64 + latestQueriedBlock int64 + minQueryLoopDuration time.Duration +} + +// Run starts the query loop for the chain which will gather applicable ibc messages and push events out to the relevant PathProcessors. +// The initialBlockHistory parameter determines how many historical blocks should be fetched and processed before continuing with current blocks. +// ChainProcessors should obey the context and return upon context cancellation. +func (pcp *PenumbraChainProcessor) Run(ctx context.Context, initialBlockHistory uint64) error { + // this will be used for persistence across query cycle loop executions + persistence := queryCyclePersistence{ + minQueryLoopDuration: defaultMinQueryLoopDuration, + } + + // Infinite retry to get initial latest height + for { + latestHeight, err := pcp.latestHeightWithRetry(ctx) + if err != nil { + pcp.log.Error( + "Failed to query latest height after max attempts", + zap.Uint("attempts", latestHeightQueryRetries), + zap.Error(err), + ) + if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { + return nil + } + continue + } + persistence.latestHeight = latestHeight + break + } + + // this will make initial QueryLoop iteration look back initialBlockHistory blocks in history + latestQueriedBlock := persistence.latestHeight - int64(initialBlockHistory) + + if latestQueriedBlock < 0 { + latestQueriedBlock = 0 + } + + persistence.latestQueriedBlock = latestQueriedBlock + + var eg errgroup.Group + eg.Go(func() error { + return pcp.initializeConnectionState(ctx) + }) + eg.Go(func() error { + return pcp.initializeChannelState(ctx) + }) + if err := eg.Wait(); err != nil { + return err + } + + pcp.log.Debug("Entering main query loop") + + ticker := time.NewTicker(persistence.minQueryLoopDuration) + + for { + if err := pcp.queryCycle(ctx, &persistence); err != nil { + return err + } + select { + case <-ctx.Done(): + return nil + case <-ticker.C: + ticker.Reset(persistence.minQueryLoopDuration) + } + } +} + +// initializeConnectionState will bootstrap the connectionStateCache with the open connection state. +func (pcp *PenumbraChainProcessor) initializeConnectionState(ctx context.Context) error { + ctx, cancel := context.WithTimeout(ctx, queryTimeout) + defer cancel() + connections, err := pcp.chainProvider.QueryConnections(ctx) + if err != nil { + return fmt.Errorf("error querying connections: %w", err) + } + for _, c := range connections { + pcp.connectionClients[c.Id] = c.ClientId + pcp.connectionStateCache[processor.ConnectionKey{ + ConnectionID: c.Id, + ClientID: c.ClientId, + CounterpartyConnID: c.Counterparty.ConnectionId, + CounterpartyClientID: c.Counterparty.ClientId, + }] = c.State == conntypes.OPEN + } + return nil +} + +// initializeChannelState will bootstrap the channelStateCache with the open channel state. +func (pcp *PenumbraChainProcessor) initializeChannelState(ctx context.Context) error { + ctx, cancel := context.WithTimeout(ctx, queryTimeout) + defer cancel() + channels, err := pcp.chainProvider.QueryChannels(ctx) + if err != nil { + return fmt.Errorf("error querying channels: %w", err) + } + for _, ch := range channels { + if len(ch.ConnectionHops) != 1 { + pcp.log.Error("Found channel using multiple connection hops. Not currently supported, ignoring.", + zap.String("channel_id", ch.ChannelId), + zap.String("port_id", ch.PortId), + zap.Any("connection_hops", ch.ConnectionHops), + ) + continue + } + pcp.channelConnections[ch.ChannelId] = ch.ConnectionHops[0] + pcp.channelStateCache[processor.ChannelKey{ + ChannelID: ch.ChannelId, + PortID: ch.PortId, + CounterpartyChannelID: ch.Counterparty.ChannelId, + CounterpartyPortID: ch.Counterparty.PortId, + }] = ch.State == chantypes.OPEN + } + return nil +} + +// ABCI results from a block +type ResultBlockResults struct { + Height int64 `json:"height,string"` + TxsResults []*ExecTxResult `json:"txs_results"` + TotalGasUsed int64 `json:"total_gas_used,string"` + FinalizeBlockEvents []Event `json:"finalize_block_events"` + ValidatorUpdates []ValidatorUpdate `json:"validator_updates"` + ConsensusParamUpdates *tmproto.ConsensusParams `json:"consensus_param_updates"` +} + +func (pcp *PenumbraChainProcessor) queryCycle(ctx context.Context, persistence *queryCyclePersistence) error { + var err error + persistence.latestHeight, err = pcp.latestHeightWithRetry(ctx) + + // don't want to cause CosmosChainProcessor to quit here, can retry again next cycle. + if err != nil { + pcp.log.Error( + "Failed to query latest height after max attempts", + zap.Uint("attempts", latestHeightQueryRetries), + zap.Error(err), + ) + return nil + } + + pcp.log.Debug("Queried latest height", + zap.Int64("latest_height", persistence.latestHeight), + ) + + // used at the end of the cycle to send signal to path processors to start processing if both chains are in sync and no new messages came in this cycle + firstTimeInSync := false + + if !pcp.inSync { + if (persistence.latestHeight - persistence.latestQueriedBlock) < inSyncNumBlocksThreshold { + pcp.inSync = true + firstTimeInSync = true + pcp.log.Info("Chain is in sync") + } else { + pcp.log.Info("Chain is not yet in sync", + zap.Int64("latest_queried_block", persistence.latestQueriedBlock), + zap.Int64("latest_height", persistence.latestHeight), + ) + } + } + + ibcMessagesCache := processor.NewIBCMessagesCache() + + ibcHeaderCache := make(processor.IBCHeaderCache) + + ppChanged := false + + var latestHeader PenumbraIBCHeader + + newLatestQueriedBlock := persistence.latestQueriedBlock + + chainID := pcp.chainProvider.ChainId() + + for i := persistence.latestQueriedBlock + 1; i <= persistence.latestHeight; i++ { + var eg errgroup.Group + var blockRes *ctypes.ResultBlockResults + var ibcHeader provider.IBCHeader + i := i + eg.Go(func() (err error) { + queryCtx, cancelQueryCtx := context.WithTimeout(ctx, blockResultsQueryTimeout) + defer cancelQueryCtx() + blockRes, err = pcp.chainProvider.RPCClient.BlockResults(queryCtx, &i) + return err + }) + eg.Go(func() (err error) { + queryCtx, cancelQueryCtx := context.WithTimeout(ctx, queryTimeout) + defer cancelQueryCtx() + ibcHeader, err = pcp.chainProvider.QueryIBCHeader(queryCtx, i) + return err + }) + + if err := eg.Wait(); err != nil { + pcp.log.Warn("Error querying block data", zap.Error(err)) + break + } + + latestHeader = ibcHeader.(PenumbraIBCHeader) + + heightUint64 := uint64(i) + + pcp.latestBlock = provider.LatestBlock{ + Height: heightUint64, + Time: latestHeader.SignedHeader.Time, + } + + ibcHeaderCache[heightUint64] = latestHeader + ppChanged = true + + blockMsgs := pcp.ibcMessagesFromBlockEvents(blockRes.BeginBlockEvents, blockRes.EndBlockEvents, heightUint64, true) + for _, m := range blockMsgs { + pcp.handleMessage(m, ibcMessagesCache) + } + + for _, tx := range blockRes.TxsResults { + if tx.Code != 0 { + // tx was not successful + continue + } + messages := ibcMessagesFromEvents(pcp.log, tx.Events, chainID, heightUint64, true) + + for _, m := range messages { + pcp.handleMessage(m, ibcMessagesCache) + } + } + newLatestQueriedBlock = i + } + + if newLatestQueriedBlock == persistence.latestQueriedBlock { + return nil + } + + if !ppChanged { + if firstTimeInSync { + for _, pp := range pcp.pathProcessors { + pp.ProcessBacklogIfReady() + } + } + + return nil + } + + for _, pp := range pcp.pathProcessors { + clientID := pp.RelevantClientID(chainID) + clientState, err := pcp.clientState(ctx, clientID) + if err != nil { + pcp.log.Error("Error fetching client state", + zap.String("client_id", clientID), + zap.Error(err), + ) + continue + } + + pp.HandleNewData(chainID, processor.ChainProcessorCacheData{ + LatestBlock: pcp.latestBlock, + LatestHeader: latestHeader, + IBCMessagesCache: ibcMessagesCache.Clone(), + InSync: pcp.inSync, + ClientState: clientState, + ConnectionStateCache: pcp.connectionStateCache.FilterForClient(clientID), + ChannelStateCache: pcp.channelStateCache.FilterForClient(clientID, pcp.channelConnections, pcp.connectionClients), + IBCHeaderCache: ibcHeaderCache.Clone(), + }) + } + + persistence.latestQueriedBlock = newLatestQueriedBlock + + return nil +} diff --git a/relayer/chains/penumbra/provider.go b/relayer/chains/penumbra/provider.go new file mode 100644 index 000000000..604a9d7c2 --- /dev/null +++ b/relayer/chains/penumbra/provider.go @@ -0,0 +1,341 @@ +package penumbra + +import ( + "context" + "fmt" + "io" + "os" + "path" + "time" + + provtypes "github.com/cometbft/cometbft/light/provider" + prov "github.com/cometbft/cometbft/light/provider/http" + rpcclient "github.com/cometbft/cometbft/rpc/client" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + jsonrpcclient "github.com/cometbft/cometbft/rpc/jsonrpc/client" + libclient "github.com/cometbft/cometbft/rpc/jsonrpc/client" + tmtypes "github.com/cometbft/cometbft/types" + "github.com/cosmos/cosmos-sdk/crypto/keyring" + "github.com/cosmos/cosmos-sdk/types/module" + "github.com/cosmos/gogoproto/proto" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + tmclient "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + "github.com/cosmos/relayer/v2/relayer/codecs/ethermint" + "github.com/cosmos/relayer/v2/relayer/provider" + "go.uber.org/zap" + "golang.org/x/mod/semver" +) + +var ( + _ provider.ChainProvider = &PenumbraProvider{} + _ provider.KeyProvider = &PenumbraProvider{} + _ provider.ProviderConfig = &PenumbraProviderConfig{} +) + +const cometEncodingThreshold = "v0.37.0-alpha" + +type PenumbraProviderConfig struct { + KeyDirectory string `json:"key-directory" yaml:"key-directory"` + Key string `json:"key" yaml:"key"` + ChainName string `json:"-" yaml:"-"` + ChainID string `json:"chain-id" yaml:"chain-id"` + RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` + AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` + KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` + GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` + GasPrices string `json:"gas-prices" yaml:"gas-prices"` + MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + Debug bool `json:"debug" yaml:"debug"` + Timeout string `json:"timeout" yaml:"timeout"` + BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` + OutputFormat string `json:"output-format" yaml:"output-format"` + SignModeStr string `json:"sign-mode" yaml:"sign-mode"` + ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` + Modules []module.AppModuleBasic `json:"-" yaml:"-"` + Slip44 int `json:"coin-type" yaml:"coin-type"` + Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` +} + +func (pc PenumbraProviderConfig) Validate() error { + if _, err := time.ParseDuration(pc.Timeout); err != nil { + return fmt.Errorf("invalid Timeout: %w", err) + } + return nil +} + +func (pc PenumbraProviderConfig) BroadcastMode() provider.BroadcastMode { + return pc.Broadcast +} + +// NewProvider validates the PenumbraProviderConfig, instantiates a ChainClient and then instantiates a CosmosProvider +func (pc PenumbraProviderConfig) NewProvider(log *zap.Logger, homepath string, debug bool, chainName string) (provider.ChainProvider, error) { + if err := pc.Validate(); err != nil { + return nil, err + } + + pc.KeyDirectory = keysDir(homepath, pc.ChainID) + + pc.ChainName = chainName + pc.Modules = append([]module.AppModuleBasic{}, moduleBasics...) + + if pc.Broadcast == "" { + pc.Broadcast = provider.BroadcastModeBatch + } + + httpClient, err := jsonrpcclient.DefaultHTTPClient(pc.RPCAddr) + if err != nil { + return nil, err + } + + rc, err := jsonrpcclient.NewWithHTTPClient(pc.RPCAddr, httpClient) + if err != nil { + return nil, err + } + + return &PenumbraProvider{ + log: log, + PCfg: pc, + KeyringOptions: []keyring.Option{ethermint.EthSecp256k1Option()}, + Input: os.Stdin, + Output: os.Stdout, + + // TODO: this is a bit of a hack, we should probably have a better way to inject modules + Codec: makeCodec(pc.Modules, pc.ExtraCodecs), + RPCCaller: rc, + }, nil +} + +type PenumbraIBCHeader struct { + SignedHeader *tmtypes.SignedHeader + ValidatorSet *tmtypes.ValidatorSet +} + +func (h PenumbraIBCHeader) Height() uint64 { + return uint64(h.SignedHeader.Height) +} + +func (h PenumbraIBCHeader) ConsensusState() ibcexported.ConsensusState { + return &tmclient.ConsensusState{ + Timestamp: h.SignedHeader.Time, + Root: commitmenttypes.NewMerkleRoot(h.SignedHeader.AppHash), + NextValidatorsHash: h.ValidatorSet.Hash(), + } +} + +func (h PenumbraIBCHeader) NextValidatorsHash() []byte { + return h.SignedHeader.NextValidatorsHash +} + +type PenumbraProvider struct { + log *zap.Logger + + PCfg PenumbraProviderConfig + Keybase keyring.Keyring + KeyringOptions []keyring.Option + RPCClient rpcclient.Client + LightProvider provtypes.Provider + Input io.Reader + Output io.Writer + Codec Codec + RPCCaller jsonrpcclient.Caller + + // for comet < v0.37, decode tm events as base64 + cometLegacyEncoding bool +} + +func (cc *PenumbraProvider) ProviderConfig() provider.ProviderConfig { + return cc.PCfg +} + +func (cc *PenumbraProvider) ChainId() string { + return cc.PCfg.ChainID +} + +func (cc *PenumbraProvider) ChainName() string { + return cc.PCfg.ChainName +} + +func (cc *PenumbraProvider) Type() string { + return "penumbra" +} + +func (cc *PenumbraProvider) Key() string { + return cc.PCfg.Key +} + +func (cc *PenumbraProvider) Timeout() string { + return cc.PCfg.Timeout +} + +func (cc *PenumbraProvider) CommitmentPrefix() commitmenttypes.MerklePrefix { + return commitmenttypes.NewMerklePrefix([]byte("PenumbraAppHash")) +} + +// Address returns the chains configured address as a string +func (cc *PenumbraProvider) Address() (string, error) { + info, err := cc.Keybase.Key(cc.PCfg.Key) + if err != nil { + return "", err + } + + acc, err := info.GetAddress() + if err != nil { + return "", err + } + + out, err := cc.EncodeBech32AccAddr(acc) + if err != nil { + return "", err + } + + return out, err +} + +func (cc *PenumbraProvider) TrustingPeriod(ctx context.Context) (time.Duration, error) { + // TODO + return time.Hour * 2, nil + /* + res, err := cc.QueryStakingParams(ctx) + if err != nil { + return 0, err + } + + // We want the trusting period to be 85% of the unbonding time. + // Go mentions that the time.Duration type can track approximately 290 years. + // We don't want to lose precision if the duration is a very long duration + // by converting int64 to float64. + // Use integer math the whole time, first reducing by a factor of 100 + // and then re-growing by 85x. + tp := res.UnbondingTime / 100 * 85 + + // And we only want the trusting period to be whole hours. + return tp.Truncate(time.Hour), nil + */ +} + +// Sprint returns the json representation of the specified proto message. +func (cc *PenumbraProvider) Sprint(toPrint proto.Message) (string, error) { + out, err := cc.Codec.Marshaler.MarshalJSON(toPrint) + if err != nil { + return "", err + } + return string(out), nil +} + +// Init initializes the keystore, RPC client, amd light client provider. +// Once initialization is complete an attempt to query the underlying node's tendermint version is performed. +// NOTE: Init must be called after creating a new instance of CosmosProvider. +func (cc *PenumbraProvider) Init(ctx context.Context) error { + keybase, err := keyring.New(cc.PCfg.ChainID, cc.PCfg.KeyringBackend, cc.PCfg.KeyDirectory, cc.Input, cc.Codec.Marshaler, cc.KeyringOptions...) + if err != nil { + return err + } + // TODO: figure out how to deal with input or maybe just make all keyring backends test? + + timeout, err := time.ParseDuration(cc.PCfg.Timeout) + if err != nil { + return err + } + + rpcClient, err := newRPCClient(cc.PCfg.RPCAddr, timeout) + if err != nil { + return err + } + + lightprovider, err := prov.New(cc.PCfg.ChainID, cc.PCfg.RPCAddr) + if err != nil { + return err + } + + cc.RPCClient = rpcClient + cc.LightProvider = lightprovider + cc.Keybase = keybase + + status, err := cc.QueryStatus(ctx) + if err != nil { + // Operations can occur before the node URL is added to the config, so noop here. + return nil + } + + cc.setCometVersion(cc.log, status.NodeInfo.Version) + + return nil +} + +// WaitForNBlocks blocks until the next block on a given chain +func (cc *PenumbraProvider) WaitForNBlocks(ctx context.Context, n int64) error { + var initial int64 + h, err := cc.RPCClient.Status(ctx) + if err != nil { + return err + } + if h.SyncInfo.CatchingUp { + return fmt.Errorf("chain catching up") + } + initial = h.SyncInfo.LatestBlockHeight + for { + h, err = cc.RPCClient.Status(ctx) + if err != nil { + return err + } + if h.SyncInfo.LatestBlockHeight > initial+n { + return nil + } + select { + case <-time.After(10 * time.Millisecond): + // Nothing to do. + case <-ctx.Done(): + return ctx.Err() + } + } +} + +func (cc *PenumbraProvider) BlockTime(ctx context.Context, height int64) (time.Time, error) { + resultBlock, err := cc.RPCClient.Block(ctx, &height) + if err != nil { + return time.Time{}, err + } + return resultBlock.Block.Time, nil +} + +func toPenumbraPacket(pi provider.PacketInfo) chantypes.Packet { + return chantypes.Packet{ + Sequence: pi.Sequence, + SourcePort: pi.SourcePort, + SourceChannel: pi.SourceChannel, + DestinationPort: pi.DestPort, + DestinationChannel: pi.DestChannel, + Data: pi.Data, + TimeoutHeight: pi.TimeoutHeight, + TimeoutTimestamp: pi.TimeoutTimestamp, + } +} + +func (cc *PenumbraProvider) setCometVersion(log *zap.Logger, version string) { + cc.cometLegacyEncoding = cc.legacyEncodedEvents(log, version) +} + +func (cc *PenumbraProvider) legacyEncodedEvents(log *zap.Logger, version string) bool { + return semver.Compare("v"+version, cometEncodingThreshold) < 0 +} + +// keysDir returns a string representing the path on the local filesystem where the keystore will be initialized. +func keysDir(home, chainID string) string { + return path.Join(home, "keys", chainID) +} + +// newRPCClient initializes a new tendermint RPC client connected to the specified address. +func newRPCClient(addr string, timeout time.Duration) (*rpchttp.HTTP, error) { + httpClient, err := libclient.DefaultHTTPClient(addr) + if err != nil { + return nil, err + } + httpClient.Timeout = timeout + rpcClient, err := rpchttp.NewWithClient(addr, "/websocket", httpClient) + if err != nil { + return nil, err + } + return rpcClient, nil +} diff --git a/relayer/chains/penumbra/query.go b/relayer/chains/penumbra/query.go new file mode 100644 index 000000000..da651ef93 --- /dev/null +++ b/relayer/chains/penumbra/query.go @@ -0,0 +1,985 @@ +package penumbra + +import ( + "context" + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + "strings" + "time" + + abci "github.com/cometbft/cometbft/abci/types" + coretypes "github.com/cometbft/cometbft/rpc/core/types" + tmtypes "github.com/cometbft/cometbft/types" + "github.com/cosmos/cosmos-sdk/codec" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + querytypes "github.com/cosmos/cosmos-sdk/types/query" + bankTypes "github.com/cosmos/cosmos-sdk/x/bank/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types" + host "github.com/cosmos/ibc-go/v7/modules/core/24-host" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + tmclient "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + "github.com/cosmos/relayer/v2/relayer/provider" + "go.uber.org/zap" + "golang.org/x/sync/errgroup" +) + +var _ provider.QueryProvider = &PenumbraProvider{} + +// QueryTx takes a transaction hash and returns the transaction +func (cc *PenumbraProvider) QueryTx(ctx context.Context, hashHex string) (*provider.RelayerTxResponse, error) { + hash, err := hex.DecodeString(hashHex) + if err != nil { + return nil, err + } + + resp, err := cc.RPCClient.Tx(ctx, hash, true) + if err != nil { + return nil, err + } + + events := parseEventsFromResponseDeliverTx(resp.TxResult) + + return &provider.RelayerTxResponse{ + Height: resp.Height, + TxHash: string(hash), + Code: resp.TxResult.Code, + Data: string(resp.TxResult.Data), + Events: events, + }, nil +} + +// QueryTxs returns an array of transactions given a tag +func (cc *PenumbraProvider) QueryTxs(ctx context.Context, page, limit int, events []string) ([]*provider.RelayerTxResponse, error) { + if len(events) == 0 { + return nil, errors.New("must declare at least one event to search") + } + + if page <= 0 { + return nil, errors.New("page must greater than 0") + } + + if limit <= 0 { + return nil, errors.New("limit must greater than 0") + } + + res, err := cc.RPCClient.TxSearch(ctx, strings.Join(events, " AND "), true, &page, &limit, "") + if err != nil { + return nil, err + } + + // Currently, we only call QueryTxs() in two spots and in both of them we are expecting there to only be, + // at most, one tx in the response. Because of this we don't want to initialize the slice with an initial size. + var txResps []*provider.RelayerTxResponse + for _, tx := range res.Txs { + relayerEvents := parseEventsFromResponseDeliverTx(tx.TxResult) + txResps = append(txResps, &provider.RelayerTxResponse{ + Height: tx.Height, + TxHash: string(tx.Hash), + Code: tx.TxResult.Code, + Data: string(tx.TxResult.Data), + Events: relayerEvents, + }) + } + return txResps, nil +} + +// parseEventsFromResponseDeliverTx parses the events from a ResponseDeliverTx and builds a slice +// of provider.RelayerEvent's. +func parseEventsFromResponseDeliverTx(resp abci.ResponseDeliverTx) []provider.RelayerEvent { + var events []provider.RelayerEvent + + for _, event := range resp.Events { + attributes := make(map[string]string) + for _, attribute := range event.Attributes { + attributes[string(attribute.Key)] = string(attribute.Value) + } + events = append(events, provider.RelayerEvent{ + EventType: event.Type, + Attributes: attributes, + }) + } + return events +} + +// QueryBalance returns the amount of coins in the relayer account +func (cc *PenumbraProvider) QueryBalance(ctx context.Context, keyName string) (sdk.Coins, error) { + addr, err := cc.ShowAddress(keyName) + if err != nil { + return nil, err + } + + return cc.QueryBalanceWithAddress(ctx, addr) +} + +// QueryBalanceWithAddress returns the amount of coins in the relayer account with address as input +// TODO add pagination support +func (cc *PenumbraProvider) QueryBalanceWithAddress(ctx context.Context, address string) (sdk.Coins, error) { + p := &bankTypes.QueryAllBalancesRequest{Address: address, Pagination: DefaultPageRequest()} + queryClient := bankTypes.NewQueryClient(cc) + + res, err := queryClient.AllBalances(ctx, p) + if err != nil { + return nil, err + } + + return res.Balances, nil +} + +// QueryUnbondingPeriod returns the unbonding period of the chain +func (cc *PenumbraProvider) QueryUnbondingPeriod(ctx context.Context) (time.Duration, error) { + // TODO: + return time.Hour * 4, nil + /* + req := stakingtypes.QueryParamsRequest{} + queryClient := stakingtypes.NewQueryClient(cc) + + res, err := queryClient.Params(ctx, &req) + if err != nil { + return 0, err + } + + return res.Params.UnbondingTime, nil + */ +} + +// QueryTendermintProof performs an ABCI query with the given key and returns +// the value of the query, the proto encoded merkle proof, and the height of +// the Tendermint block containing the state root. The desired tendermint height +// to perform the query should be set in the client context. The query will be +// performed at one below this height (at the IAVL version) in order to obtain +// the correct merkle proof. Proof queries at height less than or equal to 2 are +// not supported. Queries with a client context height of 0 will perform a query +// at the latest state available. +// Issue: https://github.com/cosmos/cosmos-sdk/issues/6567 +func (cc *PenumbraProvider) QueryTendermintProof(ctx context.Context, height int64, key []byte) ([]byte, []byte, clienttypes.Height, error) { + // ABCI queries at heights 1, 2 or less than or equal to 0 are not supported. + // Base app does not support queries for height less than or equal to 1. + // Therefore, a query at height 2 would be equivalent to a query at height 3. + // A height of 0 will query with the lastest state. + if height != 0 && height <= 2 { + return nil, nil, clienttypes.Height{}, fmt.Errorf("proof queries at height <= 2 are not supported") + } + + if height != 0 { + height-- + } + + cc.log.Debug("Querying K/V", zap.String("ChainId", cc.ChainId()), zap.Int64("Height", height), zap.String("Key", string(key))) + req := abci.RequestQuery{ + Path: "state/key", + Height: height, + Data: key, + Prove: true, + } + + res, err := cc.QueryABCI(ctx, req) + if err != nil { + return nil, nil, clienttypes.Height{}, err + } + + merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps) + if err != nil { + return nil, nil, clienttypes.Height{}, err + } + + cdc := codec.NewProtoCodec(cc.Codec.InterfaceRegistry) + + proofBz, err := cdc.Marshal(&merkleProof) + if err != nil { + return nil, nil, clienttypes.Height{}, err + } + + revision := clienttypes.ParseChainID(cc.PCfg.ChainID) + return res.Value, proofBz, clienttypes.NewHeight(revision, uint64(res.Height)+1), nil +} + +// QueryClientStateResponse retrieves the latest consensus state for a client in state at a given height +func (cc *PenumbraProvider) QueryClientStateResponse(ctx context.Context, height int64, srcClientId string) (*clienttypes.QueryClientStateResponse, error) { + key := host.FullClientStateKey(srcClientId) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + // check if client exists + if len(value) == 0 { + return nil, sdkerrors.Wrap(clienttypes.ErrClientNotFound, srcClientId) + } + + cdc := codec.NewProtoCodec(cc.Codec.InterfaceRegistry) + + clientState, err := clienttypes.UnmarshalClientState(cdc, value) + if err != nil { + return nil, err + } + cc.log.Debug("QueryClientStateResponse", zap.Int64("Height", height), zap.Any("proofHeight", proofHeight), zap.String("Key", string(key)), zap.Any("ClientState", clientState)) + + anyClientState, err := clienttypes.PackClientState(clientState) + if err != nil { + return nil, err + } + + return &clienttypes.QueryClientStateResponse{ + ClientState: anyClientState, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// QueryClientState retrieves the latest consensus state for a client in state at a given height +// and unpacks it to exported client state interface +func (cc *PenumbraProvider) QueryClientState(ctx context.Context, height int64, clientid string) (ibcexported.ClientState, error) { + clientStateRes, err := cc.QueryClientStateResponse(ctx, height, clientid) + if err != nil { + return nil, err + } + + clientStateExported, err := clienttypes.UnpackClientState(clientStateRes.ClientState) + if err != nil { + return nil, err + } + + return clientStateExported, nil +} + +// QueryClientConsensusState retrieves the latest consensus state for a client in state at a given height +func (cc *PenumbraProvider) QueryClientConsensusState(ctx context.Context, chainHeight int64, clientid string, clientHeight ibcexported.Height) (*clienttypes.QueryConsensusStateResponse, error) { + key := host.FullConsensusStateKey(clientid, clientHeight) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, chainHeight, key) + if err != nil { + return nil, err + } + + // check if consensus state exists + if len(value) == 0 { + return nil, sdkerrors.Wrap(clienttypes.ErrConsensusStateNotFound, clientid) + } + + cdc := codec.NewProtoCodec(cc.Codec.InterfaceRegistry) + + cs, err := clienttypes.UnmarshalConsensusState(cdc, value) + if err != nil { + return nil, err + } + + anyConsensusState, err := clienttypes.PackConsensusState(cs) + if err != nil { + return nil, err + } + + return &clienttypes.QueryConsensusStateResponse{ + ConsensusState: anyConsensusState, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// QueryUpgradeProof performs an abci query with the given key and returns the proto encoded merkle proof +// for the query and the height at which the proof will succeed on a tendermint verifier. +func (cc *PenumbraProvider) QueryUpgradeProof(ctx context.Context, key []byte, height uint64) ([]byte, clienttypes.Height, error) { + res, err := cc.QueryABCI(ctx, abci.RequestQuery{ + Path: "state/key", + Height: int64(height - 1), + Data: key, + Prove: true, + }) + if err != nil { + return nil, clienttypes.Height{}, err + } + + merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps) + if err != nil { + return nil, clienttypes.Height{}, err + } + + proof, err := cc.Codec.Marshaler.Marshal(&merkleProof) + if err != nil { + return nil, clienttypes.Height{}, err + } + + revision := clienttypes.ParseChainID(cc.PCfg.ChainID) + + // proof height + 1 is returned as the proof created corresponds to the height the proof + // was created in the IAVL tree. Tendermint and subsequently the clients that rely on it + // have heights 1 above the IAVL tree. Thus we return proof height + 1 + return proof, clienttypes.Height{ + RevisionNumber: revision, + RevisionHeight: uint64(res.Height + 1), + }, nil +} + +// QueryUpgradedClient returns upgraded client info +func (cc *PenumbraProvider) QueryUpgradedClient(ctx context.Context, height int64) (*clienttypes.QueryClientStateResponse, error) { + req := clienttypes.QueryUpgradedClientStateRequest{} + + queryClient := clienttypes.NewQueryClient(cc) + + res, err := queryClient.UpgradedClientState(ctx, &req) + if err != nil { + return nil, err + } + + if res == nil || res.UpgradedClientState == nil { + return nil, fmt.Errorf("upgraded client state plan does not exist at height %d", height) + } + + proof, proofHeight, err := cc.QueryUpgradeProof(ctx, upgradetypes.UpgradedClientKey(height), uint64(height)) + if err != nil { + return nil, err + } + + return &clienttypes.QueryClientStateResponse{ + ClientState: res.UpgradedClientState, + Proof: proof, + ProofHeight: proofHeight, + }, nil +} + +// QueryUpgradedConsState returns upgraded consensus state and height of client +func (cc *PenumbraProvider) QueryUpgradedConsState(ctx context.Context, height int64) (*clienttypes.QueryConsensusStateResponse, error) { + req := clienttypes.QueryUpgradedConsensusStateRequest{} + + queryClient := clienttypes.NewQueryClient(cc) + + res, err := queryClient.UpgradedConsensusState(ctx, &req) + if err != nil { + return nil, err + } + + if res == nil || res.UpgradedConsensusState == nil { + return nil, fmt.Errorf("upgraded consensus state plan does not exist at height %d", height) + } + + proof, proofHeight, err := cc.QueryUpgradeProof(ctx, upgradetypes.UpgradedConsStateKey(height), uint64(height)) + if err != nil { + return nil, err + } + + return &clienttypes.QueryConsensusStateResponse{ + ConsensusState: res.UpgradedConsensusState, + Proof: proof, + ProofHeight: proofHeight, + }, nil +} + +// QueryConsensusState returns a consensus state for a given chain to be used as a +// client in another chain, fetches latest height when passed 0 as arg +func (cc *PenumbraProvider) QueryConsensusState(ctx context.Context, height int64) (ibcexported.ConsensusState, int64, error) { + commit, err := cc.RPCClient.Commit(ctx, &height) + if err != nil { + return &tmclient.ConsensusState{}, 0, err + } + + page := 1 + count := 10_000 + + nextHeight := height + 1 + nextVals, err := cc.RPCClient.Validators(ctx, &nextHeight, &page, &count) + if err != nil { + return &tmclient.ConsensusState{}, 0, err + } + + state := &tmclient.ConsensusState{ + Timestamp: commit.Time, + Root: commitmenttypes.NewMerkleRoot(commit.AppHash), + NextValidatorsHash: tmtypes.NewValidatorSet(nextVals.Validators).Hash(), + } + + return state, height, nil +} + +// QueryClients queries all the clients! +// TODO add pagination support +func (cc *PenumbraProvider) QueryClients(ctx context.Context) (clienttypes.IdentifiedClientStates, error) { + qc := clienttypes.NewQueryClient(cc) + state, err := qc.ClientStates(ctx, &clienttypes.QueryClientStatesRequest{ + Pagination: DefaultPageRequest(), + }) + if err != nil { + return nil, err + } + return state.ClientStates, nil +} + +// QueryConnection returns the remote end of a given connection +func (cc *PenumbraProvider) QueryConnection(ctx context.Context, height int64, connectionid string) (*conntypes.QueryConnectionResponse, error) { + res, err := cc.queryConnectionABCI(ctx, height, connectionid) + if err != nil && strings.Contains(err.Error(), "not found") { + return &conntypes.QueryConnectionResponse{ + Connection: &conntypes.ConnectionEnd{ + ClientId: "client", + Versions: []*conntypes.Version{}, + State: conntypes.UNINITIALIZED, + Counterparty: conntypes.Counterparty{ + ClientId: "client", + ConnectionId: "connection", + Prefix: commitmenttypes.MerklePrefix{KeyPrefix: []byte{}}, + }, + DelayPeriod: 0, + }, + Proof: []byte{}, + ProofHeight: clienttypes.Height{RevisionNumber: 0, RevisionHeight: 0}, + }, nil + } else if err != nil { + return nil, err + } + return res, nil +} + +func (cc *PenumbraProvider) queryConnectionABCI(ctx context.Context, height int64, connectionID string) (*conntypes.QueryConnectionResponse, error) { + key := host.ConnectionKey(connectionID) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + // check if connection exists + if len(value) == 0 { + return nil, sdkerrors.Wrap(conntypes.ErrConnectionNotFound, connectionID) + } + + cdc := codec.NewProtoCodec(cc.Codec.InterfaceRegistry) + + var connection conntypes.ConnectionEnd + if err := cdc.Unmarshal(value, &connection); err != nil { + return nil, err + } + + return &conntypes.QueryConnectionResponse{ + Connection: &connection, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// QueryConnections gets any connections on a chain +// TODO add pagination support +func (cc *PenumbraProvider) QueryConnections(ctx context.Context) (conns []*conntypes.IdentifiedConnection, err error) { + qc := conntypes.NewQueryClient(cc) + res, err := qc.Connections(ctx, &conntypes.QueryConnectionsRequest{ + Pagination: DefaultPageRequest(), + }) + if err != nil || res == nil { + return nil, err + } + return res.Connections, err +} + +// QueryConnectionsUsingClient gets any connections that exist between chain and counterparty +// TODO add pagination support +func (cc *PenumbraProvider) QueryConnectionsUsingClient(ctx context.Context, height int64, clientid string) (*conntypes.QueryConnectionsResponse, error) { + qc := conntypes.NewQueryClient(cc) + res, err := qc.Connections(ctx, &conntypes.QueryConnectionsRequest{ + Pagination: DefaultPageRequest(), + }) + return res, err +} + +// GenerateConnHandshakeProof generates all the proofs needed to prove the existence of the +// connection state on this chain. A counterparty should use these generated proofs. +func (cc *PenumbraProvider) GenerateConnHandshakeProof(ctx context.Context, height int64, clientId, connId string) (clientState ibcexported.ClientState, clientStateProof []byte, consensusProof []byte, connectionProof []byte, connectionProofHeight ibcexported.Height, err error) { + var ( + clientStateRes *clienttypes.QueryClientStateResponse + consensusStateRes *clienttypes.QueryConsensusStateResponse + connectionStateRes *conntypes.QueryConnectionResponse + eg = new(errgroup.Group) + ) + + // query for the client state for the proof and get the height to query the consensus state at. + clientStateRes, err = cc.QueryClientStateResponse(ctx, height, clientId) + if err != nil { + return nil, nil, nil, nil, clienttypes.Height{}, err + } + + clientState, err = clienttypes.UnpackClientState(clientStateRes.ClientState) + if err != nil { + return nil, nil, nil, nil, clienttypes.Height{}, err + } + + eg.Go(func() error { + var err error + consensusStateRes, err = cc.QueryClientConsensusState(ctx, height, clientId, clientState.GetLatestHeight()) + return err + }) + eg.Go(func() error { + var err error + connectionStateRes, err = cc.QueryConnection(ctx, height, connId) + return err + }) + + if err := eg.Wait(); err != nil { + return nil, nil, nil, nil, clienttypes.Height{}, err + } + cc.log.Debug("GenerateConnHandshakeProof", zap.Int64("height", height), zap.Any("connId", connId), zap.Any("connectionStateRes", connectionStateRes)) + + return clientState, clientStateRes.Proof, consensusStateRes.Proof, connectionStateRes.Proof, connectionStateRes.ProofHeight, nil +} + +// QueryChannel returns the channel associated with a channelID +func (cc *PenumbraProvider) QueryChannel(ctx context.Context, height int64, channelid, portid string) (chanRes *chantypes.QueryChannelResponse, err error) { + res, err := cc.queryChannelABCI(ctx, height, portid, channelid) + if err != nil && strings.Contains(err.Error(), "not found") { + + return &chantypes.QueryChannelResponse{ + Channel: &chantypes.Channel{ + State: chantypes.UNINITIALIZED, + Ordering: chantypes.UNORDERED, + Counterparty: chantypes.Counterparty{ + PortId: "port", + ChannelId: "channel", + }, + ConnectionHops: []string{}, + Version: "version", + }, + Proof: []byte{}, + ProofHeight: clienttypes.Height{ + RevisionNumber: 0, + RevisionHeight: 0, + }, + }, nil + } else if err != nil { + return nil, err + } + return res, nil +} + +func (cc *PenumbraProvider) queryChannelABCI(ctx context.Context, height int64, portID, channelID string) (*chantypes.QueryChannelResponse, error) { + key := host.ChannelKey(portID, channelID) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + // check if channel exists + if len(value) == 0 { + return nil, sdkerrors.Wrapf(chantypes.ErrChannelNotFound, "portID (%s), channelID (%s)", portID, channelID) + } + + cdc := codec.NewProtoCodec(cc.Codec.InterfaceRegistry) + + var channel chantypes.Channel + if err := cdc.Unmarshal(value, &channel); err != nil { + return nil, err + } + + return &chantypes.QueryChannelResponse{ + Channel: &channel, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// QueryChannelClient returns the client state of the client supporting a given channel +func (cc *PenumbraProvider) QueryChannelClient(ctx context.Context, height int64, channelid, portid string) (*clienttypes.IdentifiedClientState, error) { + qc := chantypes.NewQueryClient(cc) + cState, err := qc.ChannelClientState(ctx, &chantypes.QueryChannelClientStateRequest{ + PortId: portid, + ChannelId: channelid, + }) + if err != nil { + return nil, err + } + return cState.IdentifiedClientState, nil +} + +// QueryConnectionChannels queries the channels associated with a connection +func (cc *PenumbraProvider) QueryConnectionChannels(ctx context.Context, height int64, connectionid string) ([]*chantypes.IdentifiedChannel, error) { + qc := chantypes.NewQueryClient(cc) + chans, err := qc.ConnectionChannels(ctx, &chantypes.QueryConnectionChannelsRequest{ + Connection: connectionid, + Pagination: DefaultPageRequest(), + }) + if err != nil { + return nil, err + } + return chans.Channels, nil +} + +// QueryChannels returns all the channels that are registered on a chain +// TODO add pagination support +func (cc *PenumbraProvider) QueryChannels(ctx context.Context) ([]*chantypes.IdentifiedChannel, error) { + qc := chantypes.NewQueryClient(cc) + res, err := qc.Channels(ctx, &chantypes.QueryChannelsRequest{ + Pagination: DefaultPageRequest(), + }) + if err != nil { + return nil, err + } + return res.Channels, nil +} + +// QueryPacketCommitments returns an array of packet commitments +// TODO add pagination support +func (cc *PenumbraProvider) QueryPacketCommitments(ctx context.Context, height uint64, channelid, portid string) (commitments *chantypes.QueryPacketCommitmentsResponse, err error) { + qc := chantypes.NewQueryClient(cc) + c, err := qc.PacketCommitments(ctx, &chantypes.QueryPacketCommitmentsRequest{ + PortId: portid, + ChannelId: channelid, + Pagination: DefaultPageRequest(), + }) + if err != nil { + return nil, err + } + return c, nil +} + +// QueryPacketAcknowledgements returns an array of packet acks +// TODO add pagination support +func (cc *PenumbraProvider) QueryPacketAcknowledgements(ctx context.Context, height uint64, channelid, portid string) (acknowledgements []*chantypes.PacketState, err error) { + qc := chantypes.NewQueryClient(cc) + acks, err := qc.PacketAcknowledgements(ctx, &chantypes.QueryPacketAcknowledgementsRequest{ + PortId: portid, + ChannelId: channelid, + Pagination: DefaultPageRequest(), + }) + if err != nil { + return nil, err + } + return acks.Acknowledgements, nil +} + +// QueryUnreceivedPackets returns a list of unrelayed packet commitments +func (cc *PenumbraProvider) QueryUnreceivedPackets(ctx context.Context, height uint64, channelid, portid string, seqs []uint64) ([]uint64, error) { + qc := chantypes.NewQueryClient(cc) + res, err := qc.UnreceivedPackets(ctx, &chantypes.QueryUnreceivedPacketsRequest{ + PortId: portid, + ChannelId: channelid, + PacketCommitmentSequences: seqs, + }) + if err != nil { + return nil, err + } + return res.Sequences, nil +} + +// QueryUnreceivedAcknowledgements returns a list of unrelayed packet acks +func (cc *PenumbraProvider) QueryUnreceivedAcknowledgements(ctx context.Context, height uint64, channelid, portid string, seqs []uint64) ([]uint64, error) { + qc := chantypes.NewQueryClient(cc) + res, err := qc.UnreceivedAcks(ctx, &chantypes.QueryUnreceivedAcksRequest{ + PortId: portid, + ChannelId: channelid, + PacketAckSequences: seqs, + }) + if err != nil { + return nil, err + } + return res.Sequences, nil +} + +// QueryNextSeqRecv returns the next seqRecv for a configured channel +func (cc *PenumbraProvider) QueryNextSeqRecv(ctx context.Context, height int64, channelid, portid string) (recvRes *chantypes.QueryNextSequenceReceiveResponse, err error) { + key := host.NextSequenceRecvKey(portid, channelid) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + // check if next sequence receive exists + if len(value) == 0 { + return nil, sdkerrors.Wrapf(chantypes.ErrChannelNotFound, "portID (%s), channelID (%s)", portid, channelid) + } + + sequence := binary.BigEndian.Uint64(value) + + return &chantypes.QueryNextSequenceReceiveResponse{ + NextSequenceReceive: sequence, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// QueryPacketCommitment returns the packet commitment proof at a given height +func (cc *PenumbraProvider) QueryPacketCommitment(ctx context.Context, height int64, channelid, portid string, seq uint64) (comRes *chantypes.QueryPacketCommitmentResponse, err error) { + key := host.PacketCommitmentKey(portid, channelid, seq) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + // check if packet commitment exists + if len(value) == 0 { + return nil, sdkerrors.Wrapf(chantypes.ErrPacketCommitmentNotFound, "portID (%s), channelID (%s), sequence (%d)", portid, channelid, seq) + } + + return &chantypes.QueryPacketCommitmentResponse{ + Commitment: value, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// QueryPacketAcknowledgement returns the packet ack proof at a given height +func (cc *PenumbraProvider) QueryPacketAcknowledgement(ctx context.Context, height int64, channelid, portid string, seq uint64) (ackRes *chantypes.QueryPacketAcknowledgementResponse, err error) { + key := host.PacketAcknowledgementKey(portid, channelid, seq) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + if len(value) == 0 { + return nil, sdkerrors.Wrapf(chantypes.ErrInvalidAcknowledgement, "portID (%s), channelID (%s), sequence (%d)", portid, channelid, seq) + } + + return &chantypes.QueryPacketAcknowledgementResponse{ + Acknowledgement: value, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// QueryPacketReceipt returns the packet receipt proof at a given height +func (cc *PenumbraProvider) QueryPacketReceipt(ctx context.Context, height int64, channelid, portid string, seq uint64) (recRes *chantypes.QueryPacketReceiptResponse, err error) { + key := host.PacketReceiptKey(portid, channelid, seq) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + return &chantypes.QueryPacketReceiptResponse{ + Received: value != nil, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +func (cc *PenumbraProvider) QueryLatestHeight(ctx context.Context) (int64, error) { + stat, err := cc.RPCClient.Status(ctx) + if err != nil { + return -1, err + } else if stat.SyncInfo.CatchingUp { + return -1, fmt.Errorf("node at %s running chain %s not caught up", cc.PCfg.RPCAddr, cc.PCfg.ChainID) + } + return stat.SyncInfo.LatestBlockHeight, nil +} + +// QueryHeaderAtHeight returns the header at a given height +func (cc *PenumbraProvider) QueryHeaderAtHeight(ctx context.Context, height int64) (ibcexported.ClientMessage, error) { + var ( + page = 1 + perPage = 100000 + ) + if height <= 0 { + return nil, fmt.Errorf("must pass in valid height, %d not valid", height) + } + + res, err := cc.RPCClient.Commit(ctx, &height) + if err != nil { + return nil, err + } + + val, err := cc.RPCClient.Validators(ctx, &height, &page, &perPage) + if err != nil { + return nil, err + } + + protoVal, err := tmtypes.NewValidatorSet(val.Validators).ToProto() + if err != nil { + return nil, err + } + + return &tmclient.Header{ + // NOTE: This is not a SignedHeader + // We are missing a light.Commit type here + SignedHeader: res.SignedHeader.ToProto(), + ValidatorSet: protoVal, + }, nil +} + +// QueryDenomTrace takes a denom from IBC and queries the information about it +func (cc *PenumbraProvider) QueryDenomTrace(ctx context.Context, denom string) (*transfertypes.DenomTrace, error) { + transfers, err := transfertypes.NewQueryClient(cc).DenomTrace(ctx, + &transfertypes.QueryDenomTraceRequest{ + Hash: denom, + }) + if err != nil { + return nil, err + } + return transfers.DenomTrace, nil +} + +// QueryDenomTraces returns all the denom traces from a given chain +// TODO add pagination support +func (cc *PenumbraProvider) QueryDenomTraces(ctx context.Context, offset, limit uint64, height int64) ([]transfertypes.DenomTrace, error) { + transfers, err := transfertypes.NewQueryClient(cc).DenomTraces(ctx, + &transfertypes.QueryDenomTracesRequest{ + Pagination: DefaultPageRequest(), + }) + if err != nil { + return nil, err + } + return transfers.DenomTraces, nil +} + +func (cc *PenumbraProvider) QueryStakingParams(ctx context.Context) (*stakingtypes.Params, error) { + res, err := stakingtypes.NewQueryClient(cc).Params(ctx, &stakingtypes.QueryParamsRequest{}) + if err != nil { + return nil, err + } + return &res.Params, nil +} + +func DefaultPageRequest() *querytypes.PageRequest { + return &querytypes.PageRequest{ + Key: []byte(""), + Offset: 0, + Limit: 1000, + CountTotal: true, + } +} + +func (cc *PenumbraProvider) QueryConsensusStateABCI(ctx context.Context, clientID string, height ibcexported.Height) (*clienttypes.QueryConsensusStateResponse, error) { + key := host.FullConsensusStateKey(clientID, height) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, int64(height.GetRevisionHeight()), key) + if err != nil { + return nil, err + } + + // check if consensus state exists + if len(value) == 0 { + return nil, sdkerrors.Wrap(clienttypes.ErrConsensusStateNotFound, clientID) + } + + // TODO do we really want to create a new codec? ChainClient exposes proto.Marshaler + cdc := codec.NewProtoCodec(cc.Codec.InterfaceRegistry) + + cs, err := clienttypes.UnmarshalConsensusState(cdc, value) + if err != nil { + return nil, err + } + + anyConsensusState, err := clienttypes.PackConsensusState(cs) + if err != nil { + return nil, err + } + + return &clienttypes.QueryConsensusStateResponse{ + ConsensusState: anyConsensusState, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + +// queryIBCMessages returns an array of IBC messages given a tag +func (cc *PenumbraProvider) queryIBCMessages(ctx context.Context, log *zap.Logger, page, limit int, query string) ([]ibcMessage, error) { + if query == "" { + return nil, errors.New("query string must be provided") + } + + if page <= 0 { + return nil, errors.New("page must greater than 0") + } + + if limit <= 0 { + return nil, errors.New("limit must greater than 0") + } + + res, err := cc.RPCClient.TxSearch(ctx, query, true, &page, &limit, "") + if err != nil { + return nil, err + } + var ibcMsgs []ibcMessage + chainID := cc.ChainId() + for _, tx := range res.Txs { + ibcMsgs = append(ibcMsgs, ibcMessagesFromEvents(log, tx.TxResult.Events, chainID, 0, true)...) + } + + return ibcMsgs, nil +} + +func sendPacketQuery(channelID string, portID string, seq uint64) string { + x := []string{ + fmt.Sprintf("%s.packet_src_channel='%s'", spTag, channelID), + fmt.Sprintf("%s.packet_src_port='%s'", spTag, portID), + fmt.Sprintf("%s.packet_sequence='%d'", spTag, seq), + } + return strings.Join(x, " AND ") +} + +func (cc *PenumbraProvider) QuerySendPacket( + ctx context.Context, + srcChanID, + srcPortID string, + sequence uint64, +) (provider.PacketInfo, error) { + q := sendPacketQuery(srcChanID, srcPortID, sequence) + ibcMsgs, err := cc.queryIBCMessages(ctx, cc.log, 1, 1000, q) + if err != nil { + return provider.PacketInfo{}, err + } + for _, msg := range ibcMsgs { + if msg.eventType != chantypes.EventTypeSendPacket { + continue + } + if pi, ok := msg.info.(*packetInfo); ok { + if pi.SourceChannel == srcChanID && pi.SourcePort == srcPortID && pi.Sequence == sequence { + return provider.PacketInfo(*pi), nil + } + } + } + return provider.PacketInfo{}, fmt.Errorf("no ibc messages found for send_packet query: %s", q) +} + +func writeAcknowledgementQuery(channelID string, portID string, seq uint64) string { + x := []string{ + fmt.Sprintf("%s.packet_dst_channel='%s'", waTag, channelID), + fmt.Sprintf("%s.packet_dst_port='%s'", waTag, portID), + fmt.Sprintf("%s.packet_sequence='%d'", waTag, seq), + } + return strings.Join(x, " AND ") +} + +func (cc *PenumbraProvider) QueryRecvPacket( + ctx context.Context, + dstChanID, + dstPortID string, + sequence uint64, +) (provider.PacketInfo, error) { + q := writeAcknowledgementQuery(dstChanID, dstPortID, sequence) + ibcMsgs, err := cc.queryIBCMessages(ctx, cc.log, 1, 1000, q) + if err != nil { + return provider.PacketInfo{}, err + } + for _, msg := range ibcMsgs { + if msg.eventType != chantypes.EventTypeWriteAck { + continue + } + if pi, ok := msg.info.(*packetInfo); ok { + if pi.DestChannel == dstChanID && pi.DestPort == dstPortID && pi.Sequence == sequence { + return provider.PacketInfo(*pi), nil + } + } + } + return provider.PacketInfo{}, fmt.Errorf("no ibc messages found for write_acknowledgement query: %s", q) +} + +// QueryStatus queries the current node status. +func (cc *PenumbraProvider) QueryStatus(ctx context.Context) (*coretypes.ResultStatus, error) { + status, err := cc.RPCClient.Status(ctx) + if err != nil { + return nil, fmt.Errorf("failed to query node status: %w", err) + } + return status, nil +} + +func (cc *PenumbraProvider) QueryICQWithProof(ctx context.Context, msgType string, request []byte, height uint64) (provider.ICQProof, error) { + //TODO implement me + panic("implement me") +} diff --git a/relayer/chains/penumbra/relayer_packets.go b/relayer/chains/penumbra/relayer_packets.go new file mode 100644 index 000000000..7e5057037 --- /dev/null +++ b/relayer/chains/penumbra/relayer_packets.go @@ -0,0 +1,232 @@ +package penumbra + +import ( + "context" + "fmt" + + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer/provider" +) + +var ( + _ provider.RelayPacket = relayMsgTimeout{} + _ provider.RelayPacket = relayMsgRecvPacket{} + _ provider.RelayPacket = relayMsgPacketAck{} +) + +type relayMsgTimeout struct { + packetData []byte + seq uint64 + timeout clienttypes.Height + timeoutStamp uint64 + dstRecvRes *chantypes.QueryPacketReceiptResponse + + pass bool +} + +func (rp relayMsgTimeout) Data() []byte { + return rp.packetData +} + +func (rp relayMsgTimeout) Seq() uint64 { + return rp.seq +} + +func (rp relayMsgTimeout) Timeout() clienttypes.Height { + return rp.timeout +} + +func (rp relayMsgTimeout) TimeoutStamp() uint64 { + return rp.timeoutStamp +} + +func (rp relayMsgTimeout) FetchCommitResponse(ctx context.Context, dst provider.ChainProvider, queryHeight uint64, dstChanId, dstPortId string) error { + dstRecvRes, err := dst.QueryPacketReceipt(ctx, int64(queryHeight)-1, dstChanId, dstPortId, rp.seq) + switch { + case err != nil: + return err + case dstRecvRes.Proof == nil: + return fmt.Errorf("timeout packet receipt proof seq(%d) is nil", rp.seq) + default: + rp.dstRecvRes = dstRecvRes + return nil + } +} + +func (rp relayMsgTimeout) Msg(src provider.ChainProvider, srcPortId, srcChanId, dstPortId, dstChanId string) (provider.RelayerMessage, error) { + if rp.dstRecvRes == nil { + return nil, fmt.Errorf("timeout packet [%s]seq{%d} has no associated proofs", src.ChainId(), rp.seq) + } + addr, err := src.Address() + if err != nil { + return nil, err + } + + msg := &chantypes.MsgTimeout{ + Packet: chantypes.Packet{ + Sequence: rp.seq, + SourcePort: srcPortId, + SourceChannel: srcChanId, + DestinationPort: dstPortId, + DestinationChannel: dstChanId, + Data: rp.packetData, + TimeoutHeight: rp.timeout, + TimeoutTimestamp: rp.timeoutStamp, + }, + ProofUnreceived: rp.dstRecvRes.Proof, + ProofHeight: rp.dstRecvRes.ProofHeight, + NextSequenceRecv: rp.seq, + Signer: addr, + } + + return NewPenumbraMessage(msg), nil +} + +type relayMsgRecvPacket struct { + packetData []byte + seq uint64 + timeout clienttypes.Height + timeoutStamp uint64 + dstComRes *chantypes.QueryPacketCommitmentResponse +} + +func (rp relayMsgRecvPacket) timeoutPacket() *relayMsgTimeout { + return &relayMsgTimeout{ + packetData: rp.packetData, + seq: rp.seq, + timeout: rp.timeout, + timeoutStamp: rp.timeoutStamp, + dstRecvRes: nil, + pass: false, + } +} + +func (rp relayMsgRecvPacket) Data() []byte { + return rp.packetData +} + +func (rp relayMsgRecvPacket) Seq() uint64 { + return rp.seq +} + +func (rp relayMsgRecvPacket) Timeout() clienttypes.Height { + return rp.timeout +} + +func (rp relayMsgRecvPacket) TimeoutStamp() uint64 { + return rp.timeoutStamp +} + +func (rp relayMsgRecvPacket) FetchCommitResponse(ctx context.Context, dst provider.ChainProvider, queryHeight uint64, dstChanId, dstPortId string) error { + dstCommitRes, err := dst.QueryPacketCommitment(ctx, int64(queryHeight)-1, dstChanId, dstPortId, rp.seq) + switch { + case err != nil: + return err + case dstCommitRes.Proof == nil: + return fmt.Errorf("recv packet commitment proof seq(%d) is nil", rp.seq) + case dstCommitRes.Commitment == nil: + return fmt.Errorf("recv packet commitment query seq(%d) is nil", rp.seq) + default: + rp.dstComRes = dstCommitRes + return nil + } +} + +func (rp relayMsgRecvPacket) Msg(src provider.ChainProvider, srcPortId, srcChanId, dstPortId, dstChanId string) (provider.RelayerMessage, error) { + if rp.dstComRes == nil { + return nil, fmt.Errorf("receive packet [%s]seq{%d} has no associated proofs", src.ChainId(), rp.seq) + } + addr, err := src.Address() + if err != nil { + return nil, err + } + + msg := &chantypes.MsgRecvPacket{ + Packet: chantypes.Packet{ + Sequence: rp.seq, + SourcePort: dstPortId, + SourceChannel: dstChanId, + DestinationPort: srcPortId, + DestinationChannel: srcChanId, + Data: rp.packetData, + TimeoutHeight: rp.timeout, + TimeoutTimestamp: rp.timeoutStamp, + }, + ProofCommitment: rp.dstComRes.Proof, + ProofHeight: rp.dstComRes.ProofHeight, + Signer: addr, + } + + return NewPenumbraMessage(msg), nil +} + +type relayMsgPacketAck struct { + packetData []byte + ack []byte + seq uint64 + timeout clienttypes.Height + timeoutStamp uint64 + dstComRes *chantypes.QueryPacketAcknowledgementResponse + + pass bool +} + +func (rp relayMsgPacketAck) Data() []byte { + return rp.packetData +} +func (rp relayMsgPacketAck) Seq() uint64 { + return rp.seq +} +func (rp relayMsgPacketAck) Timeout() clienttypes.Height { + return rp.timeout +} + +func (rp relayMsgPacketAck) TimeoutStamp() uint64 { + return rp.timeoutStamp +} + +func (rp relayMsgPacketAck) Msg(src provider.ChainProvider, srcPortId, srcChanId, dstPortId, dstChanId string) (provider.RelayerMessage, error) { + if rp.dstComRes == nil { + return nil, fmt.Errorf("ack packet [%s]seq{%d} has no associated proofs", src.ChainId(), rp.seq) + } + + addr, err := src.Address() + if err != nil { + return nil, err + } + + msg := &chantypes.MsgAcknowledgement{ + Packet: chantypes.Packet{ + Sequence: rp.seq, + SourcePort: srcPortId, + SourceChannel: srcChanId, + DestinationPort: dstPortId, + DestinationChannel: dstChanId, + Data: rp.packetData, + TimeoutHeight: rp.timeout, + TimeoutTimestamp: rp.timeoutStamp, + }, + Acknowledgement: rp.ack, + ProofAcked: rp.dstComRes.Proof, + ProofHeight: rp.dstComRes.ProofHeight, + Signer: addr, + } + + return NewPenumbraMessage(msg), nil +} + +func (rp relayMsgPacketAck) FetchCommitResponse(ctx context.Context, dst provider.ChainProvider, queryHeight uint64, dstChanId, dstPortId string) error { + dstCommitRes, err := dst.QueryPacketAcknowledgement(ctx, int64(queryHeight)-1, dstChanId, dstPortId, rp.seq) + switch { + case err != nil: + return err + case dstCommitRes.Proof == nil: + return fmt.Errorf("ack packet acknowledgement proof seq(%d) is nil", rp.seq) + case dstCommitRes.Acknowledgement == nil: + return fmt.Errorf("ack packet acknowledgement query seq(%d) is nil", rp.seq) + default: + rp.dstComRes = dstCommitRes + return nil + } +} diff --git a/relayer/chains/penumbra/tx.go b/relayer/chains/penumbra/tx.go new file mode 100644 index 000000000..2dc9e6db9 --- /dev/null +++ b/relayer/chains/penumbra/tx.go @@ -0,0 +1,2235 @@ +package penumbra + +import ( + "context" + "encoding/base64" + "errors" + "fmt" + "math/rand" + "regexp" + "strconv" + "strings" + "time" + + "github.com/avast/retry-go/v4" + abci "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/libs/bytes" + "github.com/cometbft/cometbft/light" + tmcrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + rpcclient "github.com/cometbft/cometbft/rpc/client" + coretypes "github.com/cometbft/cometbft/rpc/core/types" + tmtypes "github.com/cometbft/cometbft/types" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/store/rootmulti" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + cosmosproto "github.com/cosmos/gogoproto/proto" + transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types" + host "github.com/cosmos/ibc-go/v7/modules/core/24-host" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + tmclient "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + ics23 "github.com/cosmos/ics23/go" + "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + penumbracrypto "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + penumbraibctypes "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/ibc/v1alpha1" + penumbratypes "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/transaction/v1alpha1" + "github.com/cosmos/relayer/v2/relayer/provider" + "go.uber.org/zap" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +// Variables used for retries +var ( + rtyAttNum = uint(5) + rtyAtt = retry.Attempts(rtyAttNum) + rtyDel = retry.Delay(time.Millisecond * 400) + rtyErr = retry.LastErrorOnly(true) + numRegex = regexp.MustCompile("[0-9]+") + defaultBroadcastWaitTimeout = 10 * time.Minute + errUnknown = "unknown" +) + +// Default IBC settings +var ( + defaultChainPrefix = commitmenttypes.NewMerklePrefix([]byte("ibc")) + defaultDelayPeriod = uint64(0) +) + +// Strings for parsing events +var ( + spTag = "send_packet" + waTag = "write_acknowledgement" + srcChanTag = "packet_src_channel" + dstChanTag = "packet_dst_channel" + srcPortTag = "packet_src_port" + dstPortTag = "packet_dst_port" + dataTag = "packet_data" + ackTag = "packet_ack" + toHeightTag = "packet_timeout_height" + toTSTag = "packet_timeout_timestamp" + seqTag = "packet_sequence" +) + +const ( + ErrTimeoutAfterWaitingForTxBroadcast _err = "timed out after waiting for tx to get included in the block" +) + +type _err string + +func (e _err) Error() string { return string(e) } + +// Deprecated: this interface is used only internally for scenario we are +// deprecating (StdTxConfig support) +type intoAny interface { + AsAny() *codectypes.Any +} + +// SendMessage attempts to sign, encode & send a RelayerMessage +// This is used extensively in the relayer as an extension of the Provider interface +func (cc *PenumbraProvider) SendMessage(ctx context.Context, msg provider.RelayerMessage, memo string) (*provider.RelayerTxResponse, bool, error) { + return cc.SendMessages(ctx, []provider.RelayerMessage{msg}, memo) +} + +// takes a RelayerMessage, converts it to a PenumbraMessage, and wraps it into +// Penumbra's equivalent of the "message" abstraction, an Action. +func msgToPenumbraAction(msg sdk.Msg) (*penumbratypes.Action, error) { + anyMsg, err := codectypes.NewAnyWithValue(msg) + if err != nil { + return nil, err + } + + switch msg.(type) { + case *clienttypes.MsgCreateClient: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *clienttypes.MsgUpdateClient: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *conntypes.MsgConnectionOpenInit: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *conntypes.MsgConnectionOpenAck: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *conntypes.MsgConnectionOpenTry: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *conntypes.MsgConnectionOpenConfirm: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgChannelOpenInit: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgChannelOpenTry: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgChannelOpenAck: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgChannelOpenConfirm: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgChannelCloseInit: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgChannelCloseConfirm: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgRecvPacket: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + case *chantypes.MsgAcknowledgement: + return &penumbratypes.Action{ + Action: &penumbratypes.Action_IbcAction{IbcAction: &penumbraibctypes.IbcAction{ + RawAction: anyMsg, + }}, + }, nil + + default: + return nil, fmt.Errorf("unknown message type: %T", msg) + } +} + +// EventAttribute is a single key-value pair, associated with an event. +type EventAttribute struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Index bool `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` +} + +// Event allows application developers to attach additional information to +// ResponseFinalizeBlock, ResponseDeliverTx, ExecTxResult +// Later, transactions may be queried using these events. +type Event struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Attributes []EventAttribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"` +} + +// ExecTxResult contains results of executing one individual transaction. +// +// * Its structure is equivalent to #ResponseDeliverTx which will be deprecated/deleted +type ExecTxResult struct { + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"` + Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"` +} + +// Result of querying for a tx. This is from the new tendermint API. +type ResultTx struct { + Hash bytes.HexBytes `json:"hash"` + Height int64 `json:"height,string"` + Index uint32 `json:"index"` + TxResult ExecTxResult `json:"tx_result"` + Tx tmtypes.Tx `json:"tx"` + Proof tmtypes.TxProof `json:"proof,omitempty"` +} + +// ValidatorUpdate +type ValidatorUpdate struct { + PubKey tmcrypto.PublicKey `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key"` + Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"` +} + +func (cc *PenumbraProvider) getAnchor(ctx context.Context) (*penumbracrypto.MerkleRoot, error) { + status, err := cc.RPCClient.Status(ctx) + if err != nil { + return nil, err + } + maxHeight := status.SyncInfo.LatestBlockHeight + + // Generate a random block height to query between 1 and maxHeight + height := rand.Int63n(maxHeight-1) + 1 + + path := fmt.Sprintf("shielded_pool/anchor/%d", height) + + req := abci.RequestQuery{ + Path: "state/key", + Height: maxHeight, + Data: []byte(path), + Prove: false, + } + + res, err := cc.QueryABCI(ctx, req) + if err != nil { + path := fmt.Sprintf("sct/anchor/%d", height) + + req := abci.RequestQuery{ + Path: "state/key", + Height: maxHeight, + Data: []byte(path), + Prove: false, + } + res, err := cc.QueryABCI(ctx, req) + if err != nil { + return nil, err + } + + return &penumbracrypto.MerkleRoot{Inner: res.Value[2:]}, nil + } + + return &penumbracrypto.MerkleRoot{Inner: res.Value[2:]}, nil +} + +func parseEventsFromABCIResponse(resp abci.ResponseDeliverTx) []provider.RelayerEvent { + var events []provider.RelayerEvent + + for _, event := range resp.Events { + attributes := make(map[string]string) + for _, attribute := range event.Attributes { + // The key and value are base64-encoded strings, so we first have to decode them: + key, err := base64.StdEncoding.DecodeString(string(attribute.Key)) + if err != nil { + continue + } + value, err := base64.StdEncoding.DecodeString(string(attribute.Value)) + if err != nil { + continue + } + attributes[string(key)] = string(value) + } + events = append(events, provider.RelayerEvent{ + EventType: event.Type, + Attributes: attributes, + }) + } + return events + +} + +func (cc *PenumbraProvider) sendMessagesInner(ctx context.Context, msgs []provider.RelayerMessage, _memo string) (*coretypes.ResultBroadcastTx, error) { + + // TODO: fee estimation, fee payments + // NOTE: we do not actually need to sign this tx currently, since there + // are no fees required on the testnet. future versions of penumbra + // will have a signing protocol for this. + + txBody := penumbratypes.TransactionBody{ + Actions: make([]*penumbratypes.Action, 0), + Fee: &penumbracrypto.Fee{Amount: &penumbracrypto.Amount{Lo: 0, Hi: 0}}, + } + + for _, msg := range PenumbraMsgs(msgs...) { + action, err := msgToPenumbraAction(msg) + if err != nil { + return nil, err + } + txBody.Actions = append(txBody.Actions, action) + } + + anchor, err := cc.getAnchor(ctx) + if err != nil { + return nil, err + } + + tx := &penumbratypes.Transaction{ + Body: &txBody, + BindingSig: make([]byte, 64), // use the Cool Signature + Anchor: anchor, + } + + cc.log.Debug("Broadcasting penumbra tx") + txBytes, err := cosmosproto.Marshal(tx) + if err != nil { + return nil, err + } + + return cc.RPCClient.BroadcastTxSync(ctx, txBytes) +} + +// SendMessages attempts to sign, encode, & send a slice of RelayerMessages +// This is used extensively in the relayer as an extension of the Provider interface +// +// NOTE: An error is returned if there was an issue sending the transaction. A successfully sent, but failed +// transaction will not return an error. If a transaction is successfully sent, the result of the execution +// of that transaction will be logged. A boolean indicating if a transaction was successfully +// sent and executed successfully is returned. +func (cc *PenumbraProvider) SendMessages(ctx context.Context, msgs []provider.RelayerMessage, _memo string) (*provider.RelayerTxResponse, bool, error) { + var events []provider.RelayerEvent + var height int64 + var data []byte + var txhash string + var code uint32 + + syncRes, err := cc.sendMessagesInner(ctx, msgs, _memo) + if err != nil { + return nil, false, err + } + cc.log.Debug("Waiting for penumbra tx to commit", zap.String("syncRes", fmt.Sprintf("%+v", syncRes))) + + if err := retry.Do(func() error { + ctx, cancel := context.WithTimeout(ctx, 40*time.Second) + defer cancel() + + res, err := cc.RPCClient.Tx(ctx, syncRes.Hash, false) + if err != nil { + return err + } + cc.log.Debug("Received penumbra tx result", zap.String("res", fmt.Sprintf("%+v", res))) + + height = res.Height + txhash = syncRes.Hash.String() + code = res.TxResult.Code + + events = append(events, parseEventsFromABCIResponse(res.TxResult)...) + return nil + }, retry.Context(ctx), rtyAtt, rtyDel, rtyErr, retry.OnRetry(func(n uint, err error) { + cc.log.Info( + "Error building or broadcasting transaction", + zap.String("chain_id", cc.PCfg.ChainID), + zap.Uint("attempt", n+1), + zap.Uint("max_attempts", rtyAttNum), + zap.Error(err), + ) + })); err != nil { + return nil, false, err + } + + rlyResp := &provider.RelayerTxResponse{ + Height: height, + TxHash: txhash, + Code: code, + Data: string(data), + Events: events, + } + + // transaction was executed, log the success or failure using the tx response code + // NOTE: error is nil, logic should use the returned error to determine if the + // transaction was successfully executed. + if rlyResp.Code != 0 { + cc.LogFailedTx(rlyResp, nil, msgs) + return rlyResp, false, fmt.Errorf("transaction failed with code: %d", code) + } + + return rlyResp, true, nil +} + +func parseEventsFromTxResponse(resp *sdk.TxResponse) []provider.RelayerEvent { + var events []provider.RelayerEvent + + if resp == nil { + return events + } + + for _, logs := range resp.Logs { + for _, event := range logs.Events { + attributes := make(map[string]string) + for _, attribute := range event.Attributes { + attributes[attribute.Key] = attribute.Value + } + events = append(events, provider.RelayerEvent{ + EventType: event.Type, + Attributes: attributes, + }) + } + } + return events +} + +// CreateClient creates an sdk.Msg to update the client on src with consensus state from dst +func (cc *PenumbraProvider) MsgCreateClient(clientState ibcexported.ClientState, consensusState ibcexported.ConsensusState) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + + anyClientState, err := clienttypes.PackClientState(clientState) + if err != nil { + return nil, err + } + + anyConsensusState, err := clienttypes.PackConsensusState(consensusState) + if err != nil { + return nil, err + } + + msg := &clienttypes.MsgCreateClient{ + ClientState: anyClientState, + ConsensusState: anyConsensusState, + Signer: signer, + } + + return NewPenumbraMessage(msg), nil +} + +func (cc *PenumbraProvider) SubmitMisbehavior( /*TBD*/ ) (provider.RelayerMessage, error) { + return nil, nil +} + +func (cc *PenumbraProvider) MsgUpdateClient(srcClientId string, dstHeader ibcexported.ClientMessage) (provider.RelayerMessage, error) { + acc, err := cc.Address() + if err != nil { + return nil, err + } + + cosmosheader, ok := dstHeader.(*tmclient.Header) + if !ok { + panic("not cosmos header") + } + + valSet, err := tmtypes.ValidatorSetFromProto(cosmosheader.ValidatorSet) + if err != nil { + return nil, err + } + trustedValset, err := tmtypes.ValidatorSetFromProto(cosmosheader.TrustedValidators) + if err != nil { + return nil, err + } + cosmosheader.ValidatorSet.TotalVotingPower = valSet.TotalVotingPower() + cosmosheader.TrustedValidators.TotalVotingPower = trustedValset.TotalVotingPower() + + anyHeader, err := clienttypes.PackClientMessage(cosmosheader) + if err != nil { + return nil, err + } + + msg := &clienttypes.MsgUpdateClient{ + ClientId: srcClientId, + ClientMessage: anyHeader, + Signer: acc, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) ConnectionOpenInit(srcClientId, dstClientId string, dstPrefix commitmenttypes.MerklePrefix, dstHeader ibcexported.ClientMessage) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + version *conntypes.Version + ) + version = conntypes.DefaultIBCVersion + + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + counterparty := conntypes.Counterparty{ + ClientId: dstClientId, + ConnectionId: "", + Prefix: dstPrefix, + } + msg := &conntypes.MsgConnectionOpenInit{ + ClientId: srcClientId, + Counterparty: counterparty, + Version: version, + DelayPeriod: defaultDelayPeriod, + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ConnectionOpenTry(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, dstPrefix commitmenttypes.MerklePrefix, srcClientId, dstClientId, srcConnId, dstConnId string) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + ) + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + + cph, err := dstQueryProvider.QueryLatestHeight(ctx) + if err != nil { + return nil, err + } + + clientState, clientStateProof, consensusStateProof, connStateProof, proofHeight, err := dstQueryProvider.GenerateConnHandshakeProof(ctx, cph, dstClientId, dstConnId) + if err != nil { + return nil, err + } + + if len(connStateProof) == 0 { + // It is possible that we have asked for a proof too early. + // If the connection state proof is empty, there is no point in returning the MsgConnectionOpenTry. + // We are not using (*conntypes.MsgConnectionOpenTry).ValidateBasic here because + // that chokes on cross-chain bech32 details in ibc-go. + return nil, fmt.Errorf("received invalid zero-length connection state proof") + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + csAny, err := clienttypes.PackClientState(clientState) + if err != nil { + return nil, err + } + + counterparty := conntypes.Counterparty{ + ClientId: dstClientId, + ConnectionId: dstConnId, + Prefix: dstPrefix, + } + + // TODO: Get DelayPeriod from counterparty connection rather than using default value + msg := &conntypes.MsgConnectionOpenTry{ + ClientId: srcClientId, + PreviousConnectionId: srcConnId, + ClientState: csAny, + Counterparty: counterparty, + DelayPeriod: defaultDelayPeriod, + CounterpartyVersions: conntypes.ExportedVersionsToProto(conntypes.GetCompatibleVersions()), + ProofHeight: clienttypes.Height{ + RevisionNumber: proofHeight.GetRevisionNumber(), + RevisionHeight: proofHeight.GetRevisionHeight(), + }, + ProofInit: connStateProof, + ProofClient: clientStateProof, + ProofConsensus: consensusStateProof, + ConsensusHeight: clientState.GetLatestHeight().(clienttypes.Height), + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ConnectionOpenAck(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcClientId, srcConnId, dstClientId, dstConnId string) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + ) + + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + cph, err := dstQueryProvider.QueryLatestHeight(ctx) + if err != nil { + return nil, err + } + + clientState, clientStateProof, consensusStateProof, connStateProof, + proofHeight, err := dstQueryProvider.GenerateConnHandshakeProof(ctx, cph, dstClientId, dstConnId) + if err != nil { + return nil, err + } + cc.log.Debug("ConnectionOpenAck", zap.String("updateMsg", fmt.Sprintf("%+v", updateMsg)), zap.Any("proofHeight", proofHeight)) + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + csAny, err := clienttypes.PackClientState(clientState) + if err != nil { + return nil, err + } + + msg := &conntypes.MsgConnectionOpenAck{ + ConnectionId: srcConnId, + CounterpartyConnectionId: dstConnId, + Version: conntypes.DefaultIBCVersion, + ClientState: csAny, + ProofHeight: clienttypes.Height{ + RevisionNumber: proofHeight.GetRevisionNumber(), + RevisionHeight: proofHeight.GetRevisionHeight(), + }, + ProofTry: connStateProof, + ProofClient: clientStateProof, + ProofConsensus: consensusStateProof, + ConsensusHeight: clientState.GetLatestHeight().(clienttypes.Height), + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ConnectionOpenConfirm(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, dstConnId, srcClientId, srcConnId string) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + ) + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + + cph, err := dstQueryProvider.QueryLatestHeight(ctx) + if err != nil { + return nil, err + } + counterpartyConnState, err := dstQueryProvider.QueryConnection(ctx, cph, dstConnId) + if err != nil { + return nil, err + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + msg := &conntypes.MsgConnectionOpenConfirm{ + ConnectionId: srcConnId, + ProofAck: counterpartyConnState.Proof, + ProofHeight: counterpartyConnState.ProofHeight, + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ChannelOpenInit(srcClientId, srcConnId, srcPortId, srcVersion, dstPortId string, order chantypes.Order, dstHeader ibcexported.ClientMessage) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + ) + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + msg := &chantypes.MsgChannelOpenInit{ + PortId: srcPortId, + Channel: chantypes.Channel{ + State: chantypes.INIT, + Ordering: order, + Counterparty: chantypes.Counterparty{ + PortId: dstPortId, + ChannelId: "", + }, + ConnectionHops: []string{srcConnId}, + Version: srcVersion, + }, + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ChannelOpenTry(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcPortId, dstPortId, srcChanId, dstChanId, srcVersion, srcConnectionId, srcClientId string) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + ) + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + cph, err := dstQueryProvider.QueryLatestHeight(ctx) + if err != nil { + return nil, err + } + + counterpartyChannelRes, err := dstQueryProvider.QueryChannel(ctx, cph, dstChanId, dstPortId) + if err != nil { + return nil, err + } + + if len(counterpartyChannelRes.Proof) == 0 { + // It is possible that we have asked for a proof too early. + // If the connection state proof is empty, there is no point in returning the MsgChannelOpenTry. + // We are not using (*conntypes.MsgChannelOpenTry).ValidateBasic here because + // that chokes on cross-chain bech32 details in ibc-go. + return nil, fmt.Errorf("received invalid zero-length channel state proof") + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + msg := &chantypes.MsgChannelOpenTry{ + PortId: srcPortId, + PreviousChannelId: srcChanId, + Channel: chantypes.Channel{ + State: chantypes.TRYOPEN, + Ordering: counterpartyChannelRes.Channel.Ordering, + Counterparty: chantypes.Counterparty{ + PortId: dstPortId, + ChannelId: dstChanId, + }, + ConnectionHops: []string{srcConnectionId}, + Version: srcVersion, + }, + CounterpartyVersion: counterpartyChannelRes.Channel.Version, + ProofInit: counterpartyChannelRes.Proof, + ProofHeight: counterpartyChannelRes.ProofHeight, + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ChannelOpenAck(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcClientId, srcPortId, srcChanId, dstChanId, dstPortId string) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + ) + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + + cph, err := dstQueryProvider.QueryLatestHeight(ctx) + if err != nil { + return nil, err + } + + counterpartyChannelRes, err := dstQueryProvider.QueryChannel(ctx, cph, dstChanId, dstPortId) + if err != nil { + return nil, err + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + msg := &chantypes.MsgChannelOpenAck{ + PortId: srcPortId, + ChannelId: srcChanId, + CounterpartyChannelId: dstChanId, + CounterpartyVersion: counterpartyChannelRes.Channel.Version, + ProofTry: counterpartyChannelRes.Proof, + ProofHeight: counterpartyChannelRes.ProofHeight, + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ChannelOpenConfirm(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcClientId, srcPortId, srcChanId, dstPortId, dstChanId string) ([]provider.RelayerMessage, error) { + var ( + acc string + err error + ) + updateMsg, err := cc.MsgUpdateClient(srcClientId, dstHeader) + if err != nil { + return nil, err + } + cph, err := dstQueryProvider.QueryLatestHeight(ctx) + if err != nil { + return nil, err + } + + counterpartyChanState, err := dstQueryProvider.QueryChannel(ctx, cph, dstChanId, dstPortId) + if err != nil { + return nil, err + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + msg := &chantypes.MsgChannelOpenConfirm{ + PortId: srcPortId, + ChannelId: srcChanId, + ProofAck: counterpartyChanState.Proof, + ProofHeight: counterpartyChanState.ProofHeight, + Signer: acc, + } + + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil +} + +func (cc *PenumbraProvider) ChannelCloseInit(srcPortId, srcChanId string) (provider.RelayerMessage, error) { + var ( + acc string + err error + ) + if acc, err = cc.Address(); err != nil { + return nil, err + } + + msg := &chantypes.MsgChannelCloseInit{ + PortId: srcPortId, + ChannelId: srcChanId, + Signer: acc, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) ChannelCloseConfirm(ctx context.Context, dstQueryProvider provider.QueryProvider, dsth int64, dstChanId, dstPortId, srcPortId, srcChanId string) (provider.RelayerMessage, error) { + var ( + acc string + err error + ) + dstChanResp, err := dstQueryProvider.QueryChannel(ctx, dsth, dstChanId, dstPortId) + if err != nil { + return nil, err + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + msg := &chantypes.MsgChannelCloseConfirm{ + PortId: srcPortId, + ChannelId: srcChanId, + ProofInit: dstChanResp.Proof, + ProofHeight: dstChanResp.ProofHeight, + Signer: acc, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) MsgUpgradeClient(srcClientId string, consRes *clienttypes.QueryConsensusStateResponse, clientRes *clienttypes.QueryClientStateResponse) (provider.RelayerMessage, error) { + var ( + acc string + err error + ) + if acc, err = cc.Address(); err != nil { + return nil, err + } + return cosmos.NewCosmosMessage(&clienttypes.MsgUpgradeClient{ClientId: srcClientId, ClientState: clientRes.ClientState, + ConsensusState: consRes.ConsensusState, ProofUpgradeClient: consRes.GetProof(), + ProofUpgradeConsensusState: consRes.ConsensusState.Value, Signer: acc}), nil +} + +func (cc *PenumbraProvider) MsgSubmitMisbehaviour(clientID string, misbehaviour ibcexported.ClientMessage) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + + msg, err := clienttypes.NewMsgSubmitMisbehaviour(clientID, misbehaviour, signer) + if err != nil { + return nil, err + } + + return NewPenumbraMessage(msg), nil +} + +// mustGetHeight takes the height inteface and returns the actual height +func mustGetHeight(h ibcexported.Height) clienttypes.Height { + height, ok := h.(clienttypes.Height) + if !ok { + panic("height is not an instance of height!") + } + return height +} + +// MsgRelayAcknowledgement constructs the MsgAcknowledgement which is to be sent to the sending chain. +// The counterparty represents the receiving chain where the acknowledgement would be stored. +func (cc *PenumbraProvider) MsgRelayAcknowledgement(ctx context.Context, dst provider.ChainProvider, dstChanId, dstPortId, srcChanId, srcPortId string, dsth int64, packet provider.RelayPacket) (provider.RelayerMessage, error) { + var ( + acc string + err error + ) + msgPacketAck, ok := packet.(*relayMsgPacketAck) + if !ok { + return nil, fmt.Errorf("got data of type %T but wanted relayMsgPacketAck", packet) + } + + if acc, err = cc.Address(); err != nil { + return nil, err + } + + ackRes, err := dst.QueryPacketAcknowledgement(ctx, dsth, dstChanId, dstPortId, packet.Seq()) + switch { + case err != nil: + return nil, err + case ackRes.Proof == nil || ackRes.Acknowledgement == nil: + return nil, fmt.Errorf("ack packet acknowledgement query seq(%d) is nil", packet.Seq()) + case ackRes == nil: + return nil, fmt.Errorf("ack packet [%s]seq{%d} has no associated proofs", dst.ChainId(), packet.Seq()) + default: + msg := &chantypes.MsgAcknowledgement{ + Packet: chantypes.Packet{ + Sequence: packet.Seq(), + SourcePort: srcPortId, + SourceChannel: srcChanId, + DestinationPort: dstPortId, + DestinationChannel: dstChanId, + Data: packet.Data(), + TimeoutHeight: packet.Timeout(), + TimeoutTimestamp: packet.TimeoutStamp(), + }, + Acknowledgement: msgPacketAck.ack, + ProofAcked: ackRes.Proof, + ProofHeight: ackRes.ProofHeight, + Signer: acc, + } + + return cosmos.NewCosmosMessage(msg), nil + } +} + +// MsgTransfer creates a new transfer message +func (cc *PenumbraProvider) MsgTransfer( + dstAddr string, + amount sdk.Coin, + info provider.PacketInfo, +) (provider.RelayerMessage, error) { + acc, err := cc.Address() + if err != nil { + return nil, err + } + msg := &transfertypes.MsgTransfer{ + SourcePort: info.SourcePort, + SourceChannel: info.SourceChannel, + Token: amount, + Sender: acc, + Receiver: dstAddr, + TimeoutTimestamp: info.TimeoutTimestamp, + } + + // If the timeoutHeight is 0 then we don't need to explicitly set it on the MsgTransfer + if info.TimeoutHeight.RevisionHeight != 0 { + msg.TimeoutHeight = info.TimeoutHeight + } + + return cosmos.NewCosmosMessage(msg), nil +} + +// MsgRelayTimeout constructs the MsgTimeout which is to be sent to the sending chain. +// The counterparty represents the receiving chain where the receipts would have been +// stored. +func (cc *PenumbraProvider) MsgRelayTimeout( + ctx context.Context, + dst provider.ChainProvider, + dsth int64, + packet provider.RelayPacket, + dstChanId, dstPortId, srcChanId, srcPortId string, + order chantypes.Order, +) (provider.RelayerMessage, error) { + var ( + acc string + err error + msg provider.RelayerMessage + ) + if acc, err = cc.Address(); err != nil { + return nil, err + } + + switch order { + case chantypes.UNORDERED: + msg, err = cc.unorderedChannelTimeoutMsg(ctx, dst, dsth, packet, acc, dstChanId, dstPortId, srcChanId, srcPortId) + if err != nil { + return nil, err + } + case chantypes.ORDERED: + msg, err = cc.orderedChannelTimeoutMsg(ctx, dst, dsth, packet, acc, dstChanId, dstPortId, srcChanId, srcPortId) + if err != nil { + return nil, err + } + default: + return nil, fmt.Errorf("invalid order type %s, order should be %s or %s", + order, chantypes.ORDERED, chantypes.UNORDERED) + } + + return msg, nil +} + +func (cc *PenumbraProvider) orderedChannelTimeoutMsg( + ctx context.Context, + dst provider.ChainProvider, + dsth int64, + packet provider.RelayPacket, + acc, dstChanId, dstPortId, srcChanId, srcPortId string, +) (provider.RelayerMessage, error) { + seqRes, err := dst.QueryNextSeqRecv(ctx, dsth, dstChanId, dstPortId) + if err != nil { + return nil, err + } + + if seqRes == nil { + return nil, fmt.Errorf("timeout packet [%s]seq{%d} has no associated proofs", cc.PCfg.ChainID, packet.Seq()) + } + + if seqRes.Proof == nil { + return nil, fmt.Errorf("timeout packet next sequence received proof seq(%d) is nil", packet.Seq()) + } + + msg := &chantypes.MsgTimeout{ + Packet: chantypes.Packet{ + Sequence: packet.Seq(), + SourcePort: srcPortId, + SourceChannel: srcChanId, + DestinationPort: dstPortId, + DestinationChannel: dstChanId, + Data: packet.Data(), + TimeoutHeight: packet.Timeout(), + TimeoutTimestamp: packet.TimeoutStamp(), + }, + ProofUnreceived: seqRes.Proof, + ProofHeight: seqRes.ProofHeight, + NextSequenceRecv: packet.Seq(), + Signer: acc, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) unorderedChannelTimeoutMsg( + ctx context.Context, + dst provider.ChainProvider, + dsth int64, + packet provider.RelayPacket, + acc, dstChanId, dstPortId, srcChanId, srcPortId string, +) (provider.RelayerMessage, error) { + recvRes, err := dst.QueryPacketReceipt(ctx, dsth, dstChanId, dstPortId, packet.Seq()) + if err != nil { + return nil, err + } + + if recvRes == nil { + return nil, fmt.Errorf("timeout packet [%s]seq{%d} has no associated proofs", cc.PCfg.ChainID, packet.Seq()) + } + + if recvRes.Proof == nil { + return nil, fmt.Errorf("timeout packet receipt proof seq(%d) is nil", packet.Seq()) + } + + msg := &chantypes.MsgTimeout{ + Packet: chantypes.Packet{ + Sequence: packet.Seq(), + SourcePort: srcPortId, + SourceChannel: srcChanId, + DestinationPort: dstPortId, + DestinationChannel: dstChanId, + Data: packet.Data(), + TimeoutHeight: packet.Timeout(), + TimeoutTimestamp: packet.TimeoutStamp(), + }, + ProofUnreceived: recvRes.Proof, + ProofHeight: recvRes.ProofHeight, + NextSequenceRecv: packet.Seq(), + Signer: acc, + } + return cosmos.NewCosmosMessage(msg), nil +} + +// MsgRelayRecvPacket constructs the MsgRecvPacket which is to be sent to the receiving chain. +// The counterparty represents the sending chain where the packet commitment would be stored. +func (cc *PenumbraProvider) MsgRelayRecvPacket(ctx context.Context, dst provider.ChainProvider, dsth int64, packet provider.RelayPacket, dstChanId, dstPortId, srcChanId, srcPortId string) (provider.RelayerMessage, error) { + var ( + acc string + err error + ) + if acc, err = cc.Address(); err != nil { + return nil, err + } + + comRes, err := dst.QueryPacketCommitment(ctx, dsth, dstChanId, dstPortId, packet.Seq()) + switch { + case err != nil: + return nil, err + case comRes.Proof == nil || comRes.Commitment == nil: + return nil, fmt.Errorf("recv packet commitment query seq(%d) is nil", packet.Seq()) + case comRes == nil: + return nil, fmt.Errorf("receive packet [%s]seq{%d} has no associated proofs", cc.PCfg.ChainID, packet.Seq()) + default: + msg := &chantypes.MsgRecvPacket{ + Packet: chantypes.Packet{ + Sequence: packet.Seq(), + SourcePort: dstPortId, + SourceChannel: dstChanId, + DestinationPort: srcPortId, + DestinationChannel: srcChanId, + Data: packet.Data(), + TimeoutHeight: packet.Timeout(), + TimeoutTimestamp: packet.TimeoutStamp(), + }, + ProofCommitment: comRes.Proof, + ProofHeight: comRes.ProofHeight, + Signer: acc, + } + + return cosmos.NewCosmosMessage(msg), nil + } +} + +func (cc *PenumbraProvider) ValidatePacket(msgTransfer provider.PacketInfo, latest provider.LatestBlock) error { + if msgTransfer.Sequence == 0 { + return errors.New("refusing to relay packet with sequence: 0") + } + + if len(msgTransfer.Data) == 0 { + return errors.New("refusing to relay packet with empty data") + } + + // This should not be possible, as it violates IBC spec + if msgTransfer.TimeoutHeight.IsZero() && msgTransfer.TimeoutTimestamp == 0 { + return errors.New("refusing to relay packet without a timeout (height or timestamp must be set)") + } + + revision := clienttypes.ParseChainID(cc.PCfg.ChainID) + latestClientTypesHeight := clienttypes.NewHeight(revision, latest.Height) + if !msgTransfer.TimeoutHeight.IsZero() && latestClientTypesHeight.GTE(msgTransfer.TimeoutHeight) { + return provider.NewTimeoutHeightError(latest.Height, msgTransfer.TimeoutHeight.RevisionHeight) + } + latestTimestamp := uint64(latest.Time.UnixNano()) + if msgTransfer.TimeoutTimestamp > 0 && latestTimestamp > msgTransfer.TimeoutTimestamp { + return provider.NewTimeoutTimestampError(latestTimestamp, msgTransfer.TimeoutTimestamp) + } + + return nil +} + +func (cc *PenumbraProvider) PacketCommitment(ctx context.Context, msgTransfer provider.PacketInfo, height uint64) (provider.PacketProof, error) { + key := host.PacketCommitmentKey(msgTransfer.SourcePort, msgTransfer.SourceChannel, msgTransfer.Sequence) + _, proof, proofHeight, err := cc.QueryTendermintProof(ctx, int64(height), key) + if err != nil { + return provider.PacketProof{}, fmt.Errorf("error querying tendermint proof for packet commitment: %w", err) + } + return provider.PacketProof{ + Proof: proof, + ProofHeight: proofHeight, + }, nil +} + +func (cc *PenumbraProvider) MsgRecvPacket(msgTransfer provider.PacketInfo, proof provider.PacketProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgRecvPacket{ + Packet: toPenumbraPacket(msgTransfer), + ProofCommitment: proof.Proof, + ProofHeight: proof.ProofHeight, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) PacketAcknowledgement(ctx context.Context, msgRecvPacket provider.PacketInfo, height uint64) (provider.PacketProof, error) { + key := host.PacketAcknowledgementKey(msgRecvPacket.DestPort, msgRecvPacket.DestChannel, msgRecvPacket.Sequence) + _, proof, proofHeight, err := cc.QueryTendermintProof(ctx, int64(height), key) + if err != nil { + return provider.PacketProof{}, fmt.Errorf("error querying tendermint proof for packet acknowledgement: %w", err) + } + return provider.PacketProof{ + Proof: proof, + ProofHeight: proofHeight, + }, nil +} + +func (cc *PenumbraProvider) MsgAcknowledgement(msgRecvPacket provider.PacketInfo, proof provider.PacketProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgAcknowledgement{ + Packet: toPenumbraPacket(msgRecvPacket), + Acknowledgement: msgRecvPacket.Ack, + ProofAcked: proof.Proof, + ProofHeight: proof.ProofHeight, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) PacketReceipt(ctx context.Context, msgTransfer provider.PacketInfo, height uint64) (provider.PacketProof, error) { + key := host.PacketReceiptKey(msgTransfer.DestPort, msgTransfer.DestChannel, msgTransfer.Sequence) + _, proof, proofHeight, err := cc.QueryTendermintProof(ctx, int64(height), key) + if err != nil { + return provider.PacketProof{}, fmt.Errorf("error querying tendermint proof for packet receipt: %w", err) + } + + return provider.PacketProof{ + Proof: proof, + ProofHeight: proofHeight, + }, nil +} + +func (cc *PenumbraProvider) MsgTimeout(msgTransfer provider.PacketInfo, proof provider.PacketProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + assembled := &chantypes.MsgTimeout{ + Packet: toPenumbraPacket(msgTransfer), + ProofUnreceived: proof.Proof, + ProofHeight: proof.ProofHeight, + NextSequenceRecv: msgTransfer.Sequence, + Signer: signer, + } + + return cosmos.NewCosmosMessage(assembled), nil +} + +func (cc *PenumbraProvider) MsgTimeoutOnClose(msgTransfer provider.PacketInfo, proof provider.PacketProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + assembled := &chantypes.MsgTimeoutOnClose{ + Packet: toPenumbraPacket(msgTransfer), + ProofUnreceived: proof.Proof, + ProofHeight: proof.ProofHeight, + NextSequenceRecv: msgTransfer.Sequence, + Signer: signer, + } + + return cosmos.NewCosmosMessage(assembled), nil +} + +func (cc *PenumbraProvider) MsgConnectionOpenInit(info provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &conntypes.MsgConnectionOpenInit{ + ClientId: info.ClientID, + Counterparty: conntypes.Counterparty{ + ClientId: info.CounterpartyClientID, + ConnectionId: "", + Prefix: info.CounterpartyCommitmentPrefix, + }, + Version: conntypes.DefaultIBCVersion, + DelayPeriod: defaultDelayPeriod, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) ConnectionHandshakeProof(ctx context.Context, msgOpenInit provider.ConnectionInfo, height uint64) (provider.ConnectionProof, error) { + clientState, clientStateProof, consensusStateProof, connStateProof, proofHeight, err := cc.GenerateConnHandshakeProof(ctx, int64(height), msgOpenInit.ClientID, msgOpenInit.ConnID) + if err != nil { + return provider.ConnectionProof{}, err + } + + if len(connStateProof) == 0 { + // It is possible that we have asked for a proof too early. + // If the connection state proof is empty, there is no point in returning the next message. + // We are not using (*conntypes.MsgConnectionOpenTry).ValidateBasic here because + // that chokes on cross-chain bech32 details in ibc-go. + return provider.ConnectionProof{}, fmt.Errorf("received invalid zero-length connection state proof") + } + + return provider.ConnectionProof{ + ClientState: clientState, + ClientStateProof: clientStateProof, + ConsensusStateProof: consensusStateProof, + ConnectionStateProof: connStateProof, + ProofHeight: proofHeight.(clienttypes.Height), + }, nil +} + +func (cc *PenumbraProvider) MsgConnectionOpenTry(msgOpenInit provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + + csAny, err := clienttypes.PackClientState(proof.ClientState) + if err != nil { + return nil, err + } + + counterparty := conntypes.Counterparty{ + ClientId: msgOpenInit.ClientID, + ConnectionId: msgOpenInit.ConnID, + Prefix: msgOpenInit.CounterpartyCommitmentPrefix, + } + + msg := &conntypes.MsgConnectionOpenTry{ + ClientId: msgOpenInit.CounterpartyClientID, + PreviousConnectionId: msgOpenInit.CounterpartyConnID, + ClientState: csAny, + Counterparty: counterparty, + DelayPeriod: defaultDelayPeriod, + CounterpartyVersions: conntypes.ExportedVersionsToProto(conntypes.GetCompatibleVersions()), + ProofHeight: proof.ProofHeight, + ProofInit: proof.ConnectionStateProof, + ProofClient: proof.ClientStateProof, + ProofConsensus: proof.ConsensusStateProof, + ConsensusHeight: proof.ClientState.GetLatestHeight().(clienttypes.Height), + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + + +func (cc *PenumbraProvider) MsgConnectionOpenAck(msgOpenTry provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + + csAny, err := clienttypes.PackClientState(proof.ClientState) + if err != nil { + return nil, err + } + + msg := &conntypes.MsgConnectionOpenAck{ + ConnectionId: msgOpenTry.CounterpartyConnID, + CounterpartyConnectionId: msgOpenTry.ConnID, + Version: conntypes.DefaultIBCVersion, + ClientState: csAny, + ProofHeight: clienttypes.Height{ + RevisionNumber: proof.ProofHeight.GetRevisionNumber(), + RevisionHeight: proof.ProofHeight.GetRevisionHeight(), + }, + ProofTry: proof.ConnectionStateProof, + ProofClient: proof.ClientStateProof, + ProofConsensus: proof.ConsensusStateProof, + ConsensusHeight: proof.ClientState.GetLatestHeight().(clienttypes.Height), + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +// NextSeqRecv queries for the appropriate Tendermint proof required to prove the next expected packet sequence number +// for a given counterparty channel. This is used in ORDERED channels to ensure packets are being delivered in the +// exact same order as they were sent over the wire. +func (cc *PenumbraProvider) NextSeqRecv( + ctx context.Context, + msgTransfer provider.PacketInfo, + height uint64, +) (provider.PacketProof, error) { + key := host.NextSequenceRecvKey(msgTransfer.DestPort, msgTransfer.DestChannel) + _, proof, proofHeight, err := cc.QueryTendermintProof(ctx, int64(height), key) + if err != nil { + return provider.PacketProof{}, fmt.Errorf("error querying tendermint proof for next sequence receive: %w", err) + } + + return provider.PacketProof{ + Proof: proof, + ProofHeight: proofHeight, + }, nil +} + +func (cc *PenumbraProvider) ConnectionProof(ctx context.Context, msgOpenAck provider.ConnectionInfo, height uint64) (provider.ConnectionProof, error) { + connState, err := cc.QueryConnection(ctx, int64(height), msgOpenAck.ConnID) + if err != nil { + return provider.ConnectionProof{}, err + } + + return provider.ConnectionProof{ + ConnectionStateProof: connState.Proof, + ProofHeight: connState.ProofHeight, + }, nil +} + +func (cc *PenumbraProvider) MsgConnectionOpenConfirm(msgOpenAck provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &conntypes.MsgConnectionOpenConfirm{ + ConnectionId: msgOpenAck.CounterpartyConnID, + ProofAck: proof.ConnectionStateProof, + ProofHeight: proof.ProofHeight, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) MsgChannelOpenInit(info provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgChannelOpenInit{ + PortId: info.PortID, + Channel: chantypes.Channel{ + State: chantypes.INIT, + Ordering: info.Order, + Counterparty: chantypes.Counterparty{ + PortId: info.CounterpartyPortID, + ChannelId: "", + }, + ConnectionHops: []string{info.ConnID}, + Version: info.Version, + }, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) ChannelProof(ctx context.Context, msg provider.ChannelInfo, height uint64) (provider.ChannelProof, error) { + channelRes, err := cc.QueryChannel(ctx, int64(height), msg.ChannelID, msg.PortID) + if err != nil { + return provider.ChannelProof{}, err + } + return provider.ChannelProof{ + Proof: channelRes.Proof, + ProofHeight: channelRes.ProofHeight, + Version: channelRes.Channel.Version, + Ordering: channelRes.Channel.Ordering, + }, nil +} + +func (cc *PenumbraProvider) MsgChannelOpenTry(msgOpenInit provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgChannelOpenTry{ + PortId: msgOpenInit.CounterpartyPortID, + PreviousChannelId: msgOpenInit.CounterpartyChannelID, + Channel: chantypes.Channel{ + State: chantypes.TRYOPEN, + Ordering: proof.Ordering, + Counterparty: chantypes.Counterparty{ + PortId: msgOpenInit.PortID, + ChannelId: msgOpenInit.ChannelID, + }, + ConnectionHops: []string{msgOpenInit.CounterpartyConnID}, + // In the future, may need to separate this from the CounterpartyVersion. + // https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#definitions + // Using same version as counterparty for now. + Version: proof.Version, + }, + CounterpartyVersion: proof.Version, + ProofInit: proof.Proof, + ProofHeight: proof.ProofHeight, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) MsgChannelOpenAck(msgOpenTry provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgChannelOpenAck{ + PortId: msgOpenTry.CounterpartyPortID, + ChannelId: msgOpenTry.CounterpartyChannelID, + CounterpartyChannelId: msgOpenTry.ChannelID, + CounterpartyVersion: proof.Version, + ProofTry: proof.Proof, + ProofHeight: proof.ProofHeight, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) MsgChannelOpenConfirm(msgOpenAck provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgChannelOpenConfirm{ + PortId: msgOpenAck.CounterpartyPortID, + ChannelId: msgOpenAck.CounterpartyChannelID, + ProofAck: proof.Proof, + ProofHeight: proof.ProofHeight, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) MsgChannelCloseInit(info provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgChannelCloseInit{ + PortId: info.PortID, + ChannelId: info.ChannelID, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) MsgChannelCloseConfirm(msgCloseInit provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { + signer, err := cc.Address() + if err != nil { + return nil, err + } + msg := &chantypes.MsgChannelCloseConfirm{ + PortId: msgCloseInit.CounterpartyPortID, + ChannelId: msgCloseInit.CounterpartyChannelID, + ProofInit: proof.Proof, + ProofHeight: proof.ProofHeight, + Signer: signer, + } + + return cosmos.NewCosmosMessage(msg), nil +} + +func (cc *PenumbraProvider) MsgUpdateClientHeader(latestHeader provider.IBCHeader, trustedHeight clienttypes.Height, trustedHeader provider.IBCHeader) (ibcexported.ClientMessage, error) { + trustedCosmosHeader, ok := trustedHeader.(PenumbraIBCHeader) + if !ok { + return nil, fmt.Errorf("unsupported IBC trusted header type, expected: PenumbraIBCHeader, actual: %T", trustedHeader) + } + + latestCosmosHeader, ok := latestHeader.(PenumbraIBCHeader) + if !ok { + return nil, fmt.Errorf("unsupported IBC header type, expected: PenumbraIBCHeader, actual: %T", latestHeader) + } + + trustedValidatorsProto, err := trustedCosmosHeader.ValidatorSet.ToProto() + if err != nil { + return nil, fmt.Errorf("error converting trusted validators to proto object: %w", err) + } + + signedHeaderProto := latestCosmosHeader.SignedHeader.ToProto() + + validatorSetProto, err := latestCosmosHeader.ValidatorSet.ToProto() + if err != nil { + return nil, fmt.Errorf("error converting validator set to proto object: %w", err) + } + + return &tmclient.Header{ + SignedHeader: signedHeaderProto, + ValidatorSet: validatorSetProto, + TrustedValidators: trustedValidatorsProto, + TrustedHeight: trustedHeight, + }, nil +} + +// RelayPacketFromSequence relays a packet with a given seq on src and returns recvPacket msgs, timeoutPacketmsgs and error +func (cc *PenumbraProvider) RelayPacketFromSequence( + ctx context.Context, + src provider.ChainProvider, + srch, dsth, seq uint64, + srcChanID, srcPortID string, + order chantypes.Order, +) (provider.RelayerMessage, provider.RelayerMessage, error) { + msgTransfer, err := src.QuerySendPacket(ctx, srcChanID, srcPortID, seq) + if err != nil { + return nil, nil, err + } + + dstTime, err := cc.BlockTime(ctx, int64(dsth)) + if err != nil { + return nil, nil, err + } + + if err := cc.ValidatePacket(msgTransfer, provider.LatestBlock{ + Height: dsth, + Time: dstTime, + }); err != nil { + switch err.(type) { + case *provider.TimeoutHeightError, *provider.TimeoutTimestampError, *provider.TimeoutOnCloseError: + var pp provider.PacketProof + switch order { + case chantypes.UNORDERED: + pp, err = cc.PacketReceipt(ctx, msgTransfer, dsth) + if err != nil { + return nil, nil, err + } + case chantypes.ORDERED: + pp, err = cc.NextSeqRecv(ctx, msgTransfer, dsth) + if err != nil { + return nil, nil, err + } + } + if _, ok := err.(*provider.TimeoutOnCloseError); ok { + timeout, err := src.MsgTimeoutOnClose(msgTransfer, pp) + if err != nil { + return nil, nil, err + } + return nil, timeout, nil + } else { + timeout, err := src.MsgTimeout(msgTransfer, pp) + if err != nil { + return nil, nil, err + } + return nil, timeout, nil + } + default: + return nil, nil, err + } + } + + pp, err := src.PacketCommitment(ctx, msgTransfer, srch) + if err != nil { + return nil, nil, err + } + + packet, err := cc.MsgRecvPacket(msgTransfer, pp) + if err != nil { + return nil, nil, err + } + + return packet, nil, nil +} + +// AcknowledgementFromSequence relays an acknowledgement with a given seq on src, source is the sending chain, destination is the receiving chain +func (cc *PenumbraProvider) AcknowledgementFromSequence(ctx context.Context, dst provider.ChainProvider, dsth, seq uint64, dstChanId, dstPortId, srcChanId, srcPortId string) (provider.RelayerMessage, error) { + txs, err := dst.QueryTxs(ctx, 1, 1000, ackPacketQuery(dstChanId, int(seq))) + switch { + case err != nil: + return nil, err + case len(txs) == 0: + return nil, fmt.Errorf("no transactions returned with query") + case len(txs) > 1: + return nil, fmt.Errorf("more than one transaction returned with query") + } + + acks, err := cc.acknowledgementsFromResultTx(dstChanId, dstPortId, srcChanId, srcPortId, txs[0]) + switch { + case err != nil: + return nil, err + case len(acks) == 0: + return nil, fmt.Errorf("no ack msgs created from query response") + } + + var out provider.RelayerMessage + for _, ack := range acks { + if seq != ack.Seq() { + continue + } + msg, err := cc.MsgRelayAcknowledgement(ctx, dst, dstChanId, dstPortId, srcChanId, srcPortId, int64(dsth), ack) + if err != nil { + return nil, err + } + out = msg + } + return out, nil +} + +func rcvPacketQuery(channelID string, seq int) []string { + return []string{fmt.Sprintf("%s.packet_src_channel='%s'", spTag, channelID), + fmt.Sprintf("%s.packet_sequence='%d'", spTag, seq)} +} + +func ackPacketQuery(channelID string, seq int) []string { + return []string{fmt.Sprintf("%s.packet_dst_channel='%s'", waTag, channelID), + fmt.Sprintf("%s.packet_sequence='%d'", waTag, seq)} +} + +// acknowledgementsFromResultTx looks through the events in a *ctypes.ResultTx and returns +// relayPackets with the appropriate data +func (cc *PenumbraProvider) acknowledgementsFromResultTx(dstChanId, dstPortId, srcChanId, srcPortId string, resp *provider.RelayerTxResponse) ([]provider.RelayPacket, error) { + var ackPackets []provider.RelayPacket + +EventLoop: + for _, event := range resp.Events { + rp := &relayMsgPacketAck{} + + if event.EventType != waTag { + continue + } + + for attributeKey, attributeValue := range event.Attributes { + + switch attributeKey { + case srcChanTag: + if attributeValue != srcChanId { + continue EventLoop + } + case dstChanTag: + if attributeValue != dstChanId { + continue EventLoop + } + case srcPortTag: + if attributeValue != srcPortId { + continue EventLoop + } + case dstPortTag: + if attributeValue != dstPortId { + continue EventLoop + } + case ackTag: + rp.ack = []byte(attributeValue) + case dataTag: + rp.packetData = []byte(attributeValue) + case toHeightTag: + timeout, err := clienttypes.ParseHeight(attributeValue) + if err != nil { + cc.log.Warn("error parsing height timeout", + zap.String("chain_id", cc.ChainId()), + zap.Uint64("sequence", rp.seq), + zap.Error(err), + ) + continue EventLoop + } + rp.timeout = timeout + case toTSTag: + timeout, err := strconv.ParseUint(attributeValue, 10, 64) + if err != nil { + cc.log.Warn("error parsing timestamp timeout", + zap.String("chain_id", cc.ChainId()), + zap.Uint64("sequence", rp.seq), + zap.Error(err), + ) + continue EventLoop + } + rp.timeoutStamp = timeout + case seqTag: + seq, err := strconv.ParseUint(attributeValue, 10, 64) + if err != nil { + cc.log.Warn("error parsing packet sequence", + zap.String("chain_id", cc.ChainId()), + zap.Error(err), + ) + continue EventLoop + } + rp.seq = seq + } + } + + // If packet data is nil or sequence number is 0 keep parsing events, + // also check that at least the block height or timestamp is set. + if rp.ack == nil || rp.packetData == nil || rp.seq == 0 || (rp.timeout.IsZero() && rp.timeoutStamp == 0) { + continue + } + + ackPackets = append(ackPackets, rp) + + } + + // If there is a relayPacket, return it + if len(ackPackets) > 0 { + return ackPackets, nil + } + + return nil, fmt.Errorf("no packet data found") +} + +// GetIBCUpdateHeader updates the off chain tendermint light client and +// returns an IBC Update Header which can be used to update an on chain +// light client on the destination chain. The source is used to construct +// the header data. +func (cc *PenumbraProvider) GetIBCUpdateHeader(ctx context.Context, srch int64, dst provider.ChainProvider, dstClientId string) (ibcexported.ClientMessage, error) { + // Construct header data from light client representing source. + h, err := cc.GetLightSignedHeaderAtHeight(ctx, srch) + if err != nil { + return nil, err + } + + // Inject trusted fields based on previous header data from source + return cc.InjectTrustedFields(ctx, h, dst, dstClientId) +} + +func (cc *PenumbraProvider) IBCHeaderAtHeight(ctx context.Context, h int64) (provider.IBCHeader, error) { + if h == 0 { + return nil, fmt.Errorf("height cannot be 0") + } + + lightBlock, err := cc.LightProvider.LightBlock(ctx, h) + if err != nil { + return nil, err + } + + return PenumbraIBCHeader{ + SignedHeader: lightBlock.SignedHeader, + ValidatorSet: lightBlock.ValidatorSet, + }, nil +} + +func (cc *PenumbraProvider) GetLightSignedHeaderAtHeight(ctx context.Context, h int64) (ibcexported.ClientMessage, error) { + if h == 0 { + return nil, fmt.Errorf("height cannot be 0") + } + + lightBlock, err := cc.LightProvider.LightBlock(ctx, h) + if err != nil { + return nil, err + } + + protoVal, err := tmtypes.NewValidatorSet(lightBlock.ValidatorSet.Validators).ToProto() + if err != nil { + return nil, err + } + + return &tmclient.Header{ + SignedHeader: lightBlock.SignedHeader.ToProto(), + ValidatorSet: protoVal, + }, nil +} + +// InjectTrustedFields injects the necessary trusted fields for a header to update a light +// client stored on the destination chain, using the information provided by the source +// chain. +// TrustedHeight is the latest height of the IBC client on dst +// TrustedValidators is the validator set of srcChain at the TrustedHeight +// InjectTrustedFields returns a copy of the header with TrustedFields modified +func (cc *PenumbraProvider) InjectTrustedFields(ctx context.Context, header ibcexported.ClientMessage, dst provider.ChainProvider, dstClientId string) (ibcexported.ClientMessage, error) { + // make copy of header stored in mop + h, ok := header.(*tmclient.Header) + if !ok { + return nil, fmt.Errorf("trying to inject fields into non-tendermint headers") + } + + // retrieve dst client from src chain + // this is the client that will be updated + cs, err := dst.QueryClientState(ctx, int64(h.TrustedHeight.RevisionHeight), dstClientId) + if err != nil { + return nil, err + } + + // inject TrustedHeight as latest height stored on dst client + h.TrustedHeight = cs.GetLatestHeight().(clienttypes.Height) + + // NOTE: We need to get validators from the source chain at height: trustedHeight+1 + // since the last trusted validators for a header at height h is the NextValidators + // at h+1 committed to in header h by NextValidatorsHash + + // TODO: this is likely a source of off by 1 errors but may be impossible to change? Maybe this is the + // place where we need to fix the upstream query proof issue? + var trustedHeader *tmclient.Header + if err := retry.Do(func() error { + tmpHeader, err := cc.GetLightSignedHeaderAtHeight(ctx, int64(h.TrustedHeight.RevisionHeight+1)) + if err != nil { + return err + } + + th, ok := tmpHeader.(*tmclient.Header) + if !ok { + err = fmt.Errorf("non-tm client header") + } + + trustedHeader = th + return err + }, retry.Context(ctx), rtyAtt, rtyDel, rtyErr); err != nil { + return nil, fmt.Errorf( + "failed to get trusted header, please ensure header at the height %d has not been pruned by the connected node: %w", + h.TrustedHeight.RevisionHeight, err, + ) + } + + // inject TrustedValidators into header + h.TrustedValidators = trustedHeader.ValidatorSet + return h, nil +} + +// queryTMClientState retrieves the latest consensus state for a client in state at a given height +// and unpacks/cast it to tendermint clientstate +func (cc *PenumbraProvider) queryTMClientState(ctx context.Context, srch int64, srcClientId string) (*tmclient.ClientState, error) { + clientStateRes, err := cc.QueryClientStateResponse(ctx, srch, srcClientId) + if err != nil { + return &tmclient.ClientState{}, err + } + + return castClientStateToTMType(clientStateRes.ClientState) +} + +// castClientStateToTMType casts client state to tendermint type +func castClientStateToTMType(cs *codectypes.Any) (*tmclient.ClientState, error) { + clientStateExported, err := clienttypes.UnpackClientState(cs) + if err != nil { + return &tmclient.ClientState{}, err + } + + // cast from interface to concrete type + clientState, ok := clientStateExported.(*tmclient.ClientState) + if !ok { + return &tmclient.ClientState{}, + fmt.Errorf("error when casting exported clientstate to tendermint type") + } + + return clientState, nil +} + +// DefaultUpgradePath is the default IBC upgrade path set for an on-chain light client +var defaultUpgradePath = []string{"upgrade", "upgradedIBCState"} + +var JmtSpec = &ics23.ProofSpec{ + LeafSpec: &ics23.LeafOp{ + Hash: ics23.HashOp_SHA256, + PrehashKey: ics23.HashOp_SHA256, + PrehashValue: ics23.HashOp_SHA256, + Length: ics23.LengthOp_NO_PREFIX, + Prefix: []byte("JMT::LeafNode"), + }, + InnerSpec: &ics23.InnerSpec{ + Hash: ics23.HashOp_SHA256, + ChildOrder: []int32{0, 1}, + MinPrefixLength: 16, + MaxPrefixLength: 48, + ChildSize: 32, + EmptyChild: nil, + }, + MinDepth: 0, + MaxDepth: 64, +} + +var ApphashSpec = &ics23.ProofSpec{ + LeafSpec: &ics23.LeafOp{ + Prefix: nil, + Hash: ics23.HashOp_SHA256, + Length: ics23.LengthOp_NO_PREFIX, + PrehashKey: ics23.HashOp_NO_HASH, + PrehashValue: ics23.HashOp_NO_HASH, + }, + InnerSpec: &ics23.InnerSpec{ + Hash: ics23.HashOp_SHA256, + MaxPrefixLength: 0, + MinPrefixLength: 0, + ChildOrder: []int32{0, 1}, + ChildSize: 32, + EmptyChild: nil, + }, + MinDepth: 0, + MaxDepth: 1, +} + +var PenumbraProofSpecs = []*ics23.ProofSpec{JmtSpec, ApphashSpec} + +// NewClientState creates a new tendermint client state tracking the dst chain. +func (cc *PenumbraProvider) NewClientState( + dstChainID string, + dstUpdateHeader provider.IBCHeader, + dstTrustingPeriod, + dstUbdPeriod time.Duration, + allowUpdateAfterExpiry, + allowUpdateAfterMisbehaviour bool, +) (ibcexported.ClientState, error) { + revisionNumber := clienttypes.ParseChainID(dstChainID) + + // Create the ClientState we want on 'c' tracking 'dst' + return &tmclient.ClientState{ + ChainId: dstChainID, + TrustLevel: tmclient.NewFractionFromTm(light.DefaultTrustLevel), + TrustingPeriod: dstTrustingPeriod, + UnbondingPeriod: dstUbdPeriod, + MaxClockDrift: time.Minute * 10, + FrozenHeight: clienttypes.ZeroHeight(), + LatestHeight: clienttypes.Height{ + RevisionNumber: revisionNumber, + RevisionHeight: dstUpdateHeader.Height(), + }, + ProofSpecs: PenumbraProofSpecs, + UpgradePath: defaultUpgradePath, + AllowUpdateAfterExpiry: allowUpdateAfterExpiry, + AllowUpdateAfterMisbehaviour: allowUpdateAfterMisbehaviour, + }, nil +} + +// QueryIBCHeader returns the IBC compatible block header (CosmosIBCHeader) at a specific height. +func (cc *PenumbraProvider) QueryIBCHeader(ctx context.Context, h int64) (provider.IBCHeader, error) { + if h == 0 { + return nil, fmt.Errorf("height cannot be 0") + } + + lightBlock, err := cc.LightProvider.LightBlock(ctx, h) + if err != nil { + return nil, err + } + + return PenumbraIBCHeader{ + SignedHeader: lightBlock.SignedHeader, + ValidatorSet: lightBlock.ValidatorSet, + }, nil +} + +// QueryABCI performs an ABCI query and returns the appropriate response and error sdk error code. +func (cc *PenumbraProvider) QueryABCI(ctx context.Context, req abci.RequestQuery) (abci.ResponseQuery, error) { + opts := rpcclient.ABCIQueryOptions{ + Height: req.Height, + Prove: req.Prove, + } + result, err := cc.RPCClient.ABCIQueryWithOptions(ctx, req.Path, req.Data, opts) + if err != nil { + return abci.ResponseQuery{}, err + } + + if !result.Response.IsOK() { + return abci.ResponseQuery{}, sdkErrorToGRPCError(result.Response) + } + + // data from trusted node or subspace query doesn't need verification + if !opts.Prove || !isQueryStoreWithProof(req.Path) { + return result.Response, nil + } + + return result.Response, nil +} + +func sdkErrorToGRPCError(resp abci.ResponseQuery) error { + switch resp.Code { + case sdkerrors.ErrInvalidRequest.ABCICode(): + return status.Error(codes.InvalidArgument, resp.Log) + case sdkerrors.ErrUnauthorized.ABCICode(): + return status.Error(codes.Unauthenticated, resp.Log) + case sdkerrors.ErrKeyNotFound.ABCICode(): + return status.Error(codes.NotFound, resp.Log) + default: + return status.Error(codes.Unknown, resp.Log) + } +} + +// isQueryStoreWithProof expects a format like /// +// queryType must be "store" and subpath must be "key" to require a proof. +func isQueryStoreWithProof(path string) bool { + if !strings.HasPrefix(path, "/") { + return false + } + + paths := strings.SplitN(path[1:], "/", 3) + + switch { + case len(paths) != 3: + return false + case paths[0] != "store": + return false + case rootmulti.RequireProof("/" + paths[2]): + return true + } + + return false +} + +// sdkError will return the Cosmos SDK registered error for a given codespace/code combo if registered, otherwise nil. +func (cc *PenumbraProvider) sdkError(codespace string, code uint32) error { + // ABCIError will return an error other than "unknown" if syncRes.Code is a registered error in syncRes.Codespace + // This catches all of the sdk errors https://github.com/cosmos/cosmos-sdk/blob/f10f5e5974d2ecbf9efc05bc0bfe1c99fdeed4b6/types/errors/errors.go + err := errors.Unwrap(sdkerrors.ABCIError(codespace, code, "error broadcasting transaction")) + if err.Error() != errUnknown { + return err + } + return nil +} + +// broadcastTx broadcasts a transaction with the given raw bytes and then, in an async goroutine, waits for the tx to be included in the block. +// The wait will end after either the asyncTimeout has run out or the asyncCtx exits. +// If there is no error broadcasting, the asyncCallback will be called with success/failure of the wait for block inclusion. +func (cc *PenumbraProvider) broadcastTx( + ctx context.Context, // context for tx broadcast + tx []byte, // raw tx to be broadcasted + msgs []provider.RelayerMessage, // used for logging only + fees sdk.Coins, // used for metrics + + asyncCtx context.Context, // context for async wait for block inclusion after successful tx broadcast + asyncTimeout time.Duration, // timeout for waiting for block inclusion + asyncCallback func(*provider.RelayerTxResponse, error), // callback for success/fail of the wait for block inclusion +) error { + res, err := cc.RPCClient.BroadcastTxSync(ctx, tx) + isErr := err != nil + isFailed := res != nil && res.Code != 0 + if isErr || isFailed { + if isErr && res == nil { + // There are some cases where BroadcastTxSync will return an error but the associated + // ResultBroadcastTx will be nil. + return err + } + rlyResp := &provider.RelayerTxResponse{ + TxHash: res.Hash.String(), + Codespace: res.Codespace, + Code: res.Code, + Data: res.Data.String(), + } + if isFailed { + err = cc.sdkError(res.Codespace, res.Code) + if err == nil { + err = fmt.Errorf("transaction failed to execute") + } + } + cc.LogFailedTx(rlyResp, err, msgs) + return err + } + + // TODO: maybe we need to check if the node has tx indexing enabled? + // if not, we need to find a new way to block until inclusion in a block + + go cc.waitForTx(asyncCtx, res.Hash, msgs, asyncTimeout, asyncCallback) + + return nil +} + +// waitForTx waits for a transaction to be included in a block, logs success/fail, then invokes callback. +// This is intended to be called as an async goroutine. +func (cc *PenumbraProvider) waitForTx( + ctx context.Context, + txHash []byte, + msgs []provider.RelayerMessage, // used for logging only + waitTimeout time.Duration, + callback func(*provider.RelayerTxResponse, error), +) { + res, err := cc.waitForBlockInclusion(ctx, txHash, waitTimeout) + if err != nil { + cc.log.Error("Failed to wait for block inclusion", zap.Error(err)) + if callback != nil { + callback(nil, err) + } + return + } + + rlyResp := &provider.RelayerTxResponse{ + Height: res.Height, + TxHash: res.TxHash, + Codespace: res.Codespace, + Code: res.Code, + Data: res.Data, + Events: parseEventsFromTxResponse(res), + } + + // transaction was executed, log the success or failure using the tx response code + // NOTE: error is nil, logic should use the returned error to determine if the + // transaction was successfully executed. + + if res.Code != 0 { + // Check for any registered SDK errors + err := cc.sdkError(res.Codespace, res.Code) + if err == nil { + err = fmt.Errorf("transaction failed to execute") + } + if callback != nil { + callback(nil, err) + } + cc.LogFailedTx(rlyResp, nil, msgs) + return + } + + if callback != nil { + callback(rlyResp, nil) + } + cc.LogSuccessTx(res, msgs) +} + +// waitForBlockInclusion will wait for a transaction to be included in a block, up to waitTimeout or context cancellation. +func (cc *PenumbraProvider) waitForBlockInclusion( + ctx context.Context, + txHash []byte, + waitTimeout time.Duration, +) (*sdk.TxResponse, error) { + exitAfter := time.After(waitTimeout) + for { + select { + case <-exitAfter: + return nil, fmt.Errorf("timed out after: %d; %w", waitTimeout, ErrTimeoutAfterWaitingForTxBroadcast) + // This fixed poll is fine because it's only for logging and updating prometheus metrics currently. + case <-time.After(time.Millisecond * 100): + res, err := cc.RPCClient.Tx(ctx, txHash, false) + if err == nil { + return cc.mkTxResult(res) + } + if strings.Contains(err.Error(), "transaction indexing is disabled") { + return nil, fmt.Errorf("cannot determine success/failure of tx because transaction indexing is disabled on rpc url") + } + case <-ctx.Done(): + return nil, ctx.Err() + } + } +} + +// mkTxResult decodes a comet transaction into an SDK TxResponse. +func (cc *PenumbraProvider) mkTxResult(resTx *coretypes.ResultTx) (*sdk.TxResponse, error) { + txbz, err := cc.Codec.TxConfig.TxDecoder()(resTx.Tx) + if err != nil { + return nil, err + } + p, ok := txbz.(intoAny) + if !ok { + return nil, fmt.Errorf("expecting a type implementing intoAny, got: %T", txbz) + } + any := p.AsAny() + return sdk.NewResponseResultTx(resTx, any, ""), nil +} + +func (cc *PenumbraProvider) MsgSubmitQueryResponse(chainID string, queryID provider.ClientICQQueryID, proof provider.ICQProof) (provider.RelayerMessage, error) { + //TODO implement me + panic("implement me") +} + +func (cc *PenumbraProvider) SendMessagesToMempool(ctx context.Context, msgs []provider.RelayerMessage, memo string, asyncCtx context.Context, asyncCallback func(*provider.RelayerTxResponse, error)) error { + sendRsp, err := cc.sendMessagesInner(ctx, msgs, memo) + cc.log.Debug("Received response from sending messages", zap.Any("response", sendRsp), zap.Error(err)) + return err +} diff --git a/relayer/chains/penumbra/view/v1alpha1/view.pb.go b/relayer/chains/penumbra/view/v1alpha1/view.pb.go new file mode 100644 index 000000000..16d815ff7 --- /dev/null +++ b/relayer/chains/penumbra/view/v1alpha1/view.pb.go @@ -0,0 +1,15435 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: penumbra/view/v1alpha1/view.proto + +package viewv1alpha1 + +import ( + context "context" + fmt "fmt" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" + v1alpha13 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/chain/v1alpha1" + v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + v1alpha14 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" + v1alpha12 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/ibc/v1alpha1" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/transaction/v1alpha1" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type BroadcastTransactionRequest struct { + // The transaction to broadcast. + Transaction *v1alpha1.Transaction `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` + // If true, wait for the view service to detect the transaction during sync. + AwaitDetection bool `protobuf:"varint,2,opt,name=await_detection,json=awaitDetection,proto3" json:"await_detection,omitempty"` +} + +func (m *BroadcastTransactionRequest) Reset() { *m = BroadcastTransactionRequest{} } +func (m *BroadcastTransactionRequest) String() string { return proto.CompactTextString(m) } +func (*BroadcastTransactionRequest) ProtoMessage() {} +func (*BroadcastTransactionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{0} +} +func (m *BroadcastTransactionRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BroadcastTransactionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BroadcastTransactionRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BroadcastTransactionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BroadcastTransactionRequest.Merge(m, src) +} +func (m *BroadcastTransactionRequest) XXX_Size() int { + return m.Size() +} +func (m *BroadcastTransactionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BroadcastTransactionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_BroadcastTransactionRequest proto.InternalMessageInfo + +func (m *BroadcastTransactionRequest) GetTransaction() *v1alpha1.Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *BroadcastTransactionRequest) GetAwaitDetection() bool { + if m != nil { + return m.AwaitDetection + } + return false +} + +type BroadcastTransactionResponse struct { + // The hash of the transaction that was broadcast. + Id *v1alpha1.Id `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *BroadcastTransactionResponse) Reset() { *m = BroadcastTransactionResponse{} } +func (m *BroadcastTransactionResponse) String() string { return proto.CompactTextString(m) } +func (*BroadcastTransactionResponse) ProtoMessage() {} +func (*BroadcastTransactionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{1} +} +func (m *BroadcastTransactionResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BroadcastTransactionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BroadcastTransactionResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BroadcastTransactionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_BroadcastTransactionResponse.Merge(m, src) +} +func (m *BroadcastTransactionResponse) XXX_Size() int { + return m.Size() +} +func (m *BroadcastTransactionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_BroadcastTransactionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_BroadcastTransactionResponse proto.InternalMessageInfo + +func (m *BroadcastTransactionResponse) GetId() *v1alpha1.Id { + if m != nil { + return m.Id + } + return nil +} + +type TransactionPlannerRequest struct { + // The expiry height for the requested TransactionPlan + ExpiryHeight uint64 `protobuf:"varint,1,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` + // The fee for the requested TransactionPlan, if any. + Fee *v1alpha11.Fee `protobuf:"bytes,2,opt,name=fee,proto3" json:"fee,omitempty"` + // The memo for the requested TransactionPlan + Memo string `protobuf:"bytes,3,opt,name=memo,proto3" json:"memo,omitempty"` + // Types that are valid to be assigned to XAccountGroupId: + // *TransactionPlannerRequest_AccountGroupId + XAccountGroupId isTransactionPlannerRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *TransactionPlannerRequest_Token + XToken isTransactionPlannerRequest_XToken `protobuf_oneof:"_token"` + // Request contents + Outputs []*TransactionPlannerRequest_Output `protobuf:"bytes,20,rep,name=outputs,proto3" json:"outputs,omitempty"` + Swaps []*TransactionPlannerRequest_Swap `protobuf:"bytes,30,rep,name=swaps,proto3" json:"swaps,omitempty"` + Delegations []*TransactionPlannerRequest_Delegate `protobuf:"bytes,40,rep,name=delegations,proto3" json:"delegations,omitempty"` + Undelegations []*TransactionPlannerRequest_Undelegate `protobuf:"bytes,50,rep,name=undelegations,proto3" json:"undelegations,omitempty"` + IbcActions []*v1alpha12.IbcAction `protobuf:"bytes,60,rep,name=ibc_actions,json=ibcActions,proto3" json:"ibc_actions,omitempty"` +} + +func (m *TransactionPlannerRequest) Reset() { *m = TransactionPlannerRequest{} } +func (m *TransactionPlannerRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionPlannerRequest) ProtoMessage() {} +func (*TransactionPlannerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{2} +} +func (m *TransactionPlannerRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlannerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlannerRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPlannerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlannerRequest.Merge(m, src) +} +func (m *TransactionPlannerRequest) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlannerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlannerRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlannerRequest proto.InternalMessageInfo + +type isTransactionPlannerRequest_XAccountGroupId interface { + isTransactionPlannerRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isTransactionPlannerRequest_XToken interface { + isTransactionPlannerRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type TransactionPlannerRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type TransactionPlannerRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*TransactionPlannerRequest_AccountGroupId) isTransactionPlannerRequest_XAccountGroupId() {} +func (*TransactionPlannerRequest_Token) isTransactionPlannerRequest_XToken() {} + +func (m *TransactionPlannerRequest) GetXAccountGroupId() isTransactionPlannerRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *TransactionPlannerRequest) GetXToken() isTransactionPlannerRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *TransactionPlannerRequest) GetExpiryHeight() uint64 { + if m != nil { + return m.ExpiryHeight + } + return 0 +} + +func (m *TransactionPlannerRequest) GetFee() *v1alpha11.Fee { + if m != nil { + return m.Fee + } + return nil +} + +func (m *TransactionPlannerRequest) GetMemo() string { + if m != nil { + return m.Memo + } + return "" +} + +func (m *TransactionPlannerRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*TransactionPlannerRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *TransactionPlannerRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*TransactionPlannerRequest_Token); ok { + return x.Token + } + return nil +} + +func (m *TransactionPlannerRequest) GetOutputs() []*TransactionPlannerRequest_Output { + if m != nil { + return m.Outputs + } + return nil +} + +func (m *TransactionPlannerRequest) GetSwaps() []*TransactionPlannerRequest_Swap { + if m != nil { + return m.Swaps + } + return nil +} + +func (m *TransactionPlannerRequest) GetDelegations() []*TransactionPlannerRequest_Delegate { + if m != nil { + return m.Delegations + } + return nil +} + +func (m *TransactionPlannerRequest) GetUndelegations() []*TransactionPlannerRequest_Undelegate { + if m != nil { + return m.Undelegations + } + return nil +} + +func (m *TransactionPlannerRequest) GetIbcActions() []*v1alpha12.IbcAction { + if m != nil { + return m.IbcActions + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransactionPlannerRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransactionPlannerRequest_AccountGroupId)(nil), + (*TransactionPlannerRequest_Token)(nil), + } +} + +// Request message subtypes +type TransactionPlannerRequest_Output struct { + Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Address *v1alpha11.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *TransactionPlannerRequest_Output) Reset() { *m = TransactionPlannerRequest_Output{} } +func (m *TransactionPlannerRequest_Output) String() string { return proto.CompactTextString(m) } +func (*TransactionPlannerRequest_Output) ProtoMessage() {} +func (*TransactionPlannerRequest_Output) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{2, 0} +} +func (m *TransactionPlannerRequest_Output) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlannerRequest_Output) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlannerRequest_Output.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPlannerRequest_Output) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlannerRequest_Output.Merge(m, src) +} +func (m *TransactionPlannerRequest_Output) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlannerRequest_Output) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlannerRequest_Output.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlannerRequest_Output proto.InternalMessageInfo + +func (m *TransactionPlannerRequest_Output) GetValue() *v1alpha11.Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *TransactionPlannerRequest_Output) GetAddress() *v1alpha11.Address { + if m != nil { + return m.Address + } + return nil +} + +type TransactionPlannerRequest_Swap struct { + Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + TargetAsset *v1alpha11.AssetId `protobuf:"bytes,2,opt,name=target_asset,json=targetAsset,proto3" json:"target_asset,omitempty"` + Fee *v1alpha11.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` +} + +func (m *TransactionPlannerRequest_Swap) Reset() { *m = TransactionPlannerRequest_Swap{} } +func (m *TransactionPlannerRequest_Swap) String() string { return proto.CompactTextString(m) } +func (*TransactionPlannerRequest_Swap) ProtoMessage() {} +func (*TransactionPlannerRequest_Swap) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{2, 1} +} +func (m *TransactionPlannerRequest_Swap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlannerRequest_Swap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlannerRequest_Swap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPlannerRequest_Swap) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlannerRequest_Swap.Merge(m, src) +} +func (m *TransactionPlannerRequest_Swap) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlannerRequest_Swap) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlannerRequest_Swap.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlannerRequest_Swap proto.InternalMessageInfo + +func (m *TransactionPlannerRequest_Swap) GetValue() *v1alpha11.Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *TransactionPlannerRequest_Swap) GetTargetAsset() *v1alpha11.AssetId { + if m != nil { + return m.TargetAsset + } + return nil +} + +func (m *TransactionPlannerRequest_Swap) GetFee() *v1alpha11.Fee { + if m != nil { + return m.Fee + } + return nil +} + +type TransactionPlannerRequest_Delegate struct { + Amount *v1alpha11.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + IdentityKey *v1alpha11.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` +} + +func (m *TransactionPlannerRequest_Delegate) Reset() { *m = TransactionPlannerRequest_Delegate{} } +func (m *TransactionPlannerRequest_Delegate) String() string { return proto.CompactTextString(m) } +func (*TransactionPlannerRequest_Delegate) ProtoMessage() {} +func (*TransactionPlannerRequest_Delegate) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{2, 2} +} +func (m *TransactionPlannerRequest_Delegate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlannerRequest_Delegate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlannerRequest_Delegate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPlannerRequest_Delegate) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlannerRequest_Delegate.Merge(m, src) +} +func (m *TransactionPlannerRequest_Delegate) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlannerRequest_Delegate) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlannerRequest_Delegate.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlannerRequest_Delegate proto.InternalMessageInfo + +func (m *TransactionPlannerRequest_Delegate) GetAmount() *v1alpha11.Amount { + if m != nil { + return m.Amount + } + return nil +} + +func (m *TransactionPlannerRequest_Delegate) GetIdentityKey() *v1alpha11.IdentityKey { + if m != nil { + return m.IdentityKey + } + return nil +} + +type TransactionPlannerRequest_Undelegate struct { + Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *TransactionPlannerRequest_Undelegate) Reset() { *m = TransactionPlannerRequest_Undelegate{} } +func (m *TransactionPlannerRequest_Undelegate) String() string { return proto.CompactTextString(m) } +func (*TransactionPlannerRequest_Undelegate) ProtoMessage() {} +func (*TransactionPlannerRequest_Undelegate) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{2, 3} +} +func (m *TransactionPlannerRequest_Undelegate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlannerRequest_Undelegate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlannerRequest_Undelegate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPlannerRequest_Undelegate) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlannerRequest_Undelegate.Merge(m, src) +} +func (m *TransactionPlannerRequest_Undelegate) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlannerRequest_Undelegate) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlannerRequest_Undelegate.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlannerRequest_Undelegate proto.InternalMessageInfo + +func (m *TransactionPlannerRequest_Undelegate) GetValue() *v1alpha11.Value { + if m != nil { + return m.Value + } + return nil +} + +type TransactionPlannerResponse struct { + Plan *v1alpha1.TransactionPlan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` +} + +func (m *TransactionPlannerResponse) Reset() { *m = TransactionPlannerResponse{} } +func (m *TransactionPlannerResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionPlannerResponse) ProtoMessage() {} +func (*TransactionPlannerResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{3} +} +func (m *TransactionPlannerResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlannerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlannerResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPlannerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlannerResponse.Merge(m, src) +} +func (m *TransactionPlannerResponse) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlannerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlannerResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlannerResponse proto.InternalMessageInfo + +func (m *TransactionPlannerResponse) GetPlan() *v1alpha1.TransactionPlan { + if m != nil { + return m.Plan + } + return nil +} + +type AddressByIndexRequest struct { + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` +} + +func (m *AddressByIndexRequest) Reset() { *m = AddressByIndexRequest{} } +func (m *AddressByIndexRequest) String() string { return proto.CompactTextString(m) } +func (*AddressByIndexRequest) ProtoMessage() {} +func (*AddressByIndexRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{4} +} +func (m *AddressByIndexRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressByIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressByIndexRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressByIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressByIndexRequest.Merge(m, src) +} +func (m *AddressByIndexRequest) XXX_Size() int { + return m.Size() +} +func (m *AddressByIndexRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AddressByIndexRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressByIndexRequest proto.InternalMessageInfo + +func (m *AddressByIndexRequest) GetAddressIndex() *v1alpha11.AddressIndex { + if m != nil { + return m.AddressIndex + } + return nil +} + +type AddressByIndexResponse struct { + Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *AddressByIndexResponse) Reset() { *m = AddressByIndexResponse{} } +func (m *AddressByIndexResponse) String() string { return proto.CompactTextString(m) } +func (*AddressByIndexResponse) ProtoMessage() {} +func (*AddressByIndexResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{5} +} +func (m *AddressByIndexResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressByIndexResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressByIndexResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressByIndexResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressByIndexResponse.Merge(m, src) +} +func (m *AddressByIndexResponse) XXX_Size() int { + return m.Size() +} +func (m *AddressByIndexResponse) XXX_DiscardUnknown() { + xxx_messageInfo_AddressByIndexResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressByIndexResponse proto.InternalMessageInfo + +func (m *AddressByIndexResponse) GetAddress() *v1alpha11.Address { + if m != nil { + return m.Address + } + return nil +} + +type IndexByAddressRequest struct { + Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *IndexByAddressRequest) Reset() { *m = IndexByAddressRequest{} } +func (m *IndexByAddressRequest) String() string { return proto.CompactTextString(m) } +func (*IndexByAddressRequest) ProtoMessage() {} +func (*IndexByAddressRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{6} +} +func (m *IndexByAddressRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IndexByAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IndexByAddressRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IndexByAddressRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexByAddressRequest.Merge(m, src) +} +func (m *IndexByAddressRequest) XXX_Size() int { + return m.Size() +} +func (m *IndexByAddressRequest) XXX_DiscardUnknown() { + xxx_messageInfo_IndexByAddressRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexByAddressRequest proto.InternalMessageInfo + +func (m *IndexByAddressRequest) GetAddress() *v1alpha11.Address { + if m != nil { + return m.Address + } + return nil +} + +type IndexByAddressResponse struct { + // Types that are valid to be assigned to XAddressIndex: + // *IndexByAddressResponse_AddressIndex + XAddressIndex isIndexByAddressResponse_XAddressIndex `protobuf_oneof:"_address_index"` +} + +func (m *IndexByAddressResponse) Reset() { *m = IndexByAddressResponse{} } +func (m *IndexByAddressResponse) String() string { return proto.CompactTextString(m) } +func (*IndexByAddressResponse) ProtoMessage() {} +func (*IndexByAddressResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{7} +} +func (m *IndexByAddressResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IndexByAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IndexByAddressResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IndexByAddressResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexByAddressResponse.Merge(m, src) +} +func (m *IndexByAddressResponse) XXX_Size() int { + return m.Size() +} +func (m *IndexByAddressResponse) XXX_DiscardUnknown() { + xxx_messageInfo_IndexByAddressResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexByAddressResponse proto.InternalMessageInfo + +type isIndexByAddressResponse_XAddressIndex interface { + isIndexByAddressResponse_XAddressIndex() + MarshalTo([]byte) (int, error) + Size() int +} + +type IndexByAddressResponse_AddressIndex struct { + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3,oneof" json:"address_index,omitempty"` +} + +func (*IndexByAddressResponse_AddressIndex) isIndexByAddressResponse_XAddressIndex() {} + +func (m *IndexByAddressResponse) GetXAddressIndex() isIndexByAddressResponse_XAddressIndex { + if m != nil { + return m.XAddressIndex + } + return nil +} + +func (m *IndexByAddressResponse) GetAddressIndex() *v1alpha11.AddressIndex { + if x, ok := m.GetXAddressIndex().(*IndexByAddressResponse_AddressIndex); ok { + return x.AddressIndex + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*IndexByAddressResponse) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*IndexByAddressResponse_AddressIndex)(nil), + } +} + +type EphemeralAddressRequest struct { + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` +} + +func (m *EphemeralAddressRequest) Reset() { *m = EphemeralAddressRequest{} } +func (m *EphemeralAddressRequest) String() string { return proto.CompactTextString(m) } +func (*EphemeralAddressRequest) ProtoMessage() {} +func (*EphemeralAddressRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{8} +} +func (m *EphemeralAddressRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EphemeralAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EphemeralAddressRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EphemeralAddressRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_EphemeralAddressRequest.Merge(m, src) +} +func (m *EphemeralAddressRequest) XXX_Size() int { + return m.Size() +} +func (m *EphemeralAddressRequest) XXX_DiscardUnknown() { + xxx_messageInfo_EphemeralAddressRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_EphemeralAddressRequest proto.InternalMessageInfo + +func (m *EphemeralAddressRequest) GetAddressIndex() *v1alpha11.AddressIndex { + if m != nil { + return m.AddressIndex + } + return nil +} + +type EphemeralAddressResponse struct { + Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *EphemeralAddressResponse) Reset() { *m = EphemeralAddressResponse{} } +func (m *EphemeralAddressResponse) String() string { return proto.CompactTextString(m) } +func (*EphemeralAddressResponse) ProtoMessage() {} +func (*EphemeralAddressResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{9} +} +func (m *EphemeralAddressResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EphemeralAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EphemeralAddressResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EphemeralAddressResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_EphemeralAddressResponse.Merge(m, src) +} +func (m *EphemeralAddressResponse) XXX_Size() int { + return m.Size() +} +func (m *EphemeralAddressResponse) XXX_DiscardUnknown() { + xxx_messageInfo_EphemeralAddressResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_EphemeralAddressResponse proto.InternalMessageInfo + +func (m *EphemeralAddressResponse) GetAddress() *v1alpha11.Address { + if m != nil { + return m.Address + } + return nil +} + +type BalanceByAddressRequest struct { + Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *BalanceByAddressRequest) Reset() { *m = BalanceByAddressRequest{} } +func (m *BalanceByAddressRequest) String() string { return proto.CompactTextString(m) } +func (*BalanceByAddressRequest) ProtoMessage() {} +func (*BalanceByAddressRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{10} +} +func (m *BalanceByAddressRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BalanceByAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BalanceByAddressRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BalanceByAddressRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BalanceByAddressRequest.Merge(m, src) +} +func (m *BalanceByAddressRequest) XXX_Size() int { + return m.Size() +} +func (m *BalanceByAddressRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BalanceByAddressRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_BalanceByAddressRequest proto.InternalMessageInfo + +func (m *BalanceByAddressRequest) GetAddress() *v1alpha11.Address { + if m != nil { + return m.Address + } + return nil +} + +type BalanceByAddressResponse struct { + Asset *v1alpha11.AssetId `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` + Amount *v1alpha11.Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (m *BalanceByAddressResponse) Reset() { *m = BalanceByAddressResponse{} } +func (m *BalanceByAddressResponse) String() string { return proto.CompactTextString(m) } +func (*BalanceByAddressResponse) ProtoMessage() {} +func (*BalanceByAddressResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{11} +} +func (m *BalanceByAddressResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BalanceByAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BalanceByAddressResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BalanceByAddressResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_BalanceByAddressResponse.Merge(m, src) +} +func (m *BalanceByAddressResponse) XXX_Size() int { + return m.Size() +} +func (m *BalanceByAddressResponse) XXX_DiscardUnknown() { + xxx_messageInfo_BalanceByAddressResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_BalanceByAddressResponse proto.InternalMessageInfo + +func (m *BalanceByAddressResponse) GetAsset() *v1alpha11.AssetId { + if m != nil { + return m.Asset + } + return nil +} + +func (m *BalanceByAddressResponse) GetAmount() *v1alpha11.Amount { + if m != nil { + return m.Amount + } + return nil +} + +// Scaffolding for bearer-token authentication for the ViewService. +// The `account_group_id` and `token` fields are both optional, +// and numbered as 14 & 15 throughout the view service protocol. +type ViewAuthToken struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ViewAuthToken) Reset() { *m = ViewAuthToken{} } +func (m *ViewAuthToken) String() string { return proto.CompactTextString(m) } +func (*ViewAuthToken) ProtoMessage() {} +func (*ViewAuthToken) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{12} +} +func (m *ViewAuthToken) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ViewAuthToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ViewAuthToken.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ViewAuthToken) XXX_Merge(src proto.Message) { + xxx_messageInfo_ViewAuthToken.Merge(m, src) +} +func (m *ViewAuthToken) XXX_Size() int { + return m.Size() +} +func (m *ViewAuthToken) XXX_DiscardUnknown() { + xxx_messageInfo_ViewAuthToken.DiscardUnknown(m) +} + +var xxx_messageInfo_ViewAuthToken proto.InternalMessageInfo + +func (m *ViewAuthToken) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +type ViewAuthRequest struct { + Fvk *v1alpha11.FullViewingKey `protobuf:"bytes,1,opt,name=fvk,proto3" json:"fvk,omitempty"` +} + +func (m *ViewAuthRequest) Reset() { *m = ViewAuthRequest{} } +func (m *ViewAuthRequest) String() string { return proto.CompactTextString(m) } +func (*ViewAuthRequest) ProtoMessage() {} +func (*ViewAuthRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{13} +} +func (m *ViewAuthRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ViewAuthRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ViewAuthRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ViewAuthRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ViewAuthRequest.Merge(m, src) +} +func (m *ViewAuthRequest) XXX_Size() int { + return m.Size() +} +func (m *ViewAuthRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ViewAuthRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ViewAuthRequest proto.InternalMessageInfo + +func (m *ViewAuthRequest) GetFvk() *v1alpha11.FullViewingKey { + if m != nil { + return m.Fvk + } + return nil +} + +type ViewAuthResponse struct { + Token *ViewAuthToken `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` +} + +func (m *ViewAuthResponse) Reset() { *m = ViewAuthResponse{} } +func (m *ViewAuthResponse) String() string { return proto.CompactTextString(m) } +func (*ViewAuthResponse) ProtoMessage() {} +func (*ViewAuthResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{14} +} +func (m *ViewAuthResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ViewAuthResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ViewAuthResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ViewAuthResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ViewAuthResponse.Merge(m, src) +} +func (m *ViewAuthResponse) XXX_Size() int { + return m.Size() +} +func (m *ViewAuthResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ViewAuthResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ViewAuthResponse proto.InternalMessageInfo + +func (m *ViewAuthResponse) GetToken() *ViewAuthToken { + if m != nil { + return m.Token + } + return nil +} + +// Requests sync status of the view service. +type StatusRequest struct { + // Types that are valid to be assigned to XAccountGroupId: + // *StatusRequest_AccountGroupId + XAccountGroupId isStatusRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *StatusRequest_Token + XToken isStatusRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *StatusRequest) Reset() { *m = StatusRequest{} } +func (m *StatusRequest) String() string { return proto.CompactTextString(m) } +func (*StatusRequest) ProtoMessage() {} +func (*StatusRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{15} +} +func (m *StatusRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatusRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatusRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatusRequest.Merge(m, src) +} +func (m *StatusRequest) XXX_Size() int { + return m.Size() +} +func (m *StatusRequest) XXX_DiscardUnknown() { + xxx_messageInfo_StatusRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_StatusRequest proto.InternalMessageInfo + +type isStatusRequest_XAccountGroupId interface { + isStatusRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isStatusRequest_XToken interface { + isStatusRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type StatusRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type StatusRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*StatusRequest_AccountGroupId) isStatusRequest_XAccountGroupId() {} +func (*StatusRequest_Token) isStatusRequest_XToken() {} + +func (m *StatusRequest) GetXAccountGroupId() isStatusRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *StatusRequest) GetXToken() isStatusRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *StatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*StatusRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *StatusRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*StatusRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatusRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatusRequest_AccountGroupId)(nil), + (*StatusRequest_Token)(nil), + } +} + +// Returns the status of the view service and whether it is synchronized with the chain state. +type StatusResponse struct { + // The height the view service has synchronized to so far + SyncHeight uint64 `protobuf:"varint,1,opt,name=sync_height,json=syncHeight,proto3" json:"sync_height,omitempty"` + // Whether the view service is catching up with the chain state + CatchingUp bool `protobuf:"varint,2,opt,name=catching_up,json=catchingUp,proto3" json:"catching_up,omitempty"` +} + +func (m *StatusResponse) Reset() { *m = StatusResponse{} } +func (m *StatusResponse) String() string { return proto.CompactTextString(m) } +func (*StatusResponse) ProtoMessage() {} +func (*StatusResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{16} +} +func (m *StatusResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatusResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatusResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatusResponse.Merge(m, src) +} +func (m *StatusResponse) XXX_Size() int { + return m.Size() +} +func (m *StatusResponse) XXX_DiscardUnknown() { + xxx_messageInfo_StatusResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_StatusResponse proto.InternalMessageInfo + +func (m *StatusResponse) GetSyncHeight() uint64 { + if m != nil { + return m.SyncHeight + } + return 0 +} + +func (m *StatusResponse) GetCatchingUp() bool { + if m != nil { + return m.CatchingUp + } + return false +} + +// Requests streaming updates on the sync height until the view service is synchronized. +type StatusStreamRequest struct { + // Types that are valid to be assigned to XAccountGroupId: + // *StatusStreamRequest_AccountGroupId + XAccountGroupId isStatusStreamRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *StatusStreamRequest_Token + XToken isStatusStreamRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *StatusStreamRequest) Reset() { *m = StatusStreamRequest{} } +func (m *StatusStreamRequest) String() string { return proto.CompactTextString(m) } +func (*StatusStreamRequest) ProtoMessage() {} +func (*StatusStreamRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{17} +} +func (m *StatusStreamRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatusStreamRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatusStreamRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatusStreamRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatusStreamRequest.Merge(m, src) +} +func (m *StatusStreamRequest) XXX_Size() int { + return m.Size() +} +func (m *StatusStreamRequest) XXX_DiscardUnknown() { + xxx_messageInfo_StatusStreamRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_StatusStreamRequest proto.InternalMessageInfo + +type isStatusStreamRequest_XAccountGroupId interface { + isStatusStreamRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isStatusStreamRequest_XToken interface { + isStatusStreamRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type StatusStreamRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type StatusStreamRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*StatusStreamRequest_AccountGroupId) isStatusStreamRequest_XAccountGroupId() {} +func (*StatusStreamRequest_Token) isStatusStreamRequest_XToken() {} + +func (m *StatusStreamRequest) GetXAccountGroupId() isStatusStreamRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *StatusStreamRequest) GetXToken() isStatusStreamRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *StatusStreamRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*StatusStreamRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *StatusStreamRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*StatusStreamRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatusStreamRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatusStreamRequest_AccountGroupId)(nil), + (*StatusStreamRequest_Token)(nil), + } +} + +// A streaming sync status update +type StatusStreamResponse struct { + LatestKnownBlockHeight uint64 `protobuf:"varint,1,opt,name=latest_known_block_height,json=latestKnownBlockHeight,proto3" json:"latest_known_block_height,omitempty"` + SyncHeight uint64 `protobuf:"varint,2,opt,name=sync_height,json=syncHeight,proto3" json:"sync_height,omitempty"` +} + +func (m *StatusStreamResponse) Reset() { *m = StatusStreamResponse{} } +func (m *StatusStreamResponse) String() string { return proto.CompactTextString(m) } +func (*StatusStreamResponse) ProtoMessage() {} +func (*StatusStreamResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{18} +} +func (m *StatusStreamResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StatusStreamResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StatusStreamResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StatusStreamResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatusStreamResponse.Merge(m, src) +} +func (m *StatusStreamResponse) XXX_Size() int { + return m.Size() +} +func (m *StatusStreamResponse) XXX_DiscardUnknown() { + xxx_messageInfo_StatusStreamResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_StatusStreamResponse proto.InternalMessageInfo + +func (m *StatusStreamResponse) GetLatestKnownBlockHeight() uint64 { + if m != nil { + return m.LatestKnownBlockHeight + } + return 0 +} + +func (m *StatusStreamResponse) GetSyncHeight() uint64 { + if m != nil { + return m.SyncHeight + } + return 0 +} + +// A query for notes known by the view service. +// +// This message uses the fact that all proto fields are optional +// to allow various filtering on the returned notes. +type NotesRequest struct { + // If set, return spent notes as well as unspent notes. + IncludeSpent bool `protobuf:"varint,2,opt,name=include_spent,json=includeSpent,proto3" json:"include_spent,omitempty"` + // If set, only return notes with the specified asset id. + AssetId *v1alpha11.AssetId `protobuf:"bytes,3,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + // If set, only return notes with the specified address incore.dex.v1alpha1. + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,4,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + // If set, stop returning notes once the total exceeds this amount. + // + // Ignored if `asset_id` is unset or if `include_spent` is set. + AmountToSpend uint64 `protobuf:"varint,5,opt,name=amount_to_spend,json=amountToSpend,proto3" json:"amount_to_spend,omitempty"` + // Types that are valid to be assigned to XAccountGroupId: + // *NotesRequest_AccountGroupId + XAccountGroupId isNotesRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *NotesRequest_Token + XToken isNotesRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *NotesRequest) Reset() { *m = NotesRequest{} } +func (m *NotesRequest) String() string { return proto.CompactTextString(m) } +func (*NotesRequest) ProtoMessage() {} +func (*NotesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{19} +} +func (m *NotesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NotesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NotesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NotesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotesRequest.Merge(m, src) +} +func (m *NotesRequest) XXX_Size() int { + return m.Size() +} +func (m *NotesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NotesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NotesRequest proto.InternalMessageInfo + +type isNotesRequest_XAccountGroupId interface { + isNotesRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isNotesRequest_XToken interface { + isNotesRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type NotesRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type NotesRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*NotesRequest_AccountGroupId) isNotesRequest_XAccountGroupId() {} +func (*NotesRequest_Token) isNotesRequest_XToken() {} + +func (m *NotesRequest) GetXAccountGroupId() isNotesRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *NotesRequest) GetXToken() isNotesRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *NotesRequest) GetIncludeSpent() bool { + if m != nil { + return m.IncludeSpent + } + return false +} + +func (m *NotesRequest) GetAssetId() *v1alpha11.AssetId { + if m != nil { + return m.AssetId + } + return nil +} + +func (m *NotesRequest) GetAddressIndex() *v1alpha11.AddressIndex { + if m != nil { + return m.AddressIndex + } + return nil +} + +func (m *NotesRequest) GetAmountToSpend() uint64 { + if m != nil { + return m.AmountToSpend + } + return 0 +} + +func (m *NotesRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*NotesRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *NotesRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*NotesRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*NotesRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*NotesRequest_AccountGroupId)(nil), + (*NotesRequest_Token)(nil), + } +} + +// A query for notes to be used for voting on a proposal. +type NotesForVotingRequest struct { + // The starting height of the proposal. + VotableAtHeight uint64 `protobuf:"varint,1,opt,name=votable_at_height,json=votableAtHeight,proto3" json:"votable_at_height,omitempty"` + // If set, only return notes with the specified asset id. + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,3,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + // Types that are valid to be assigned to XAccountGroupId: + // *NotesForVotingRequest_AccountGroupId + XAccountGroupId isNotesForVotingRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *NotesForVotingRequest_Token + XToken isNotesForVotingRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *NotesForVotingRequest) Reset() { *m = NotesForVotingRequest{} } +func (m *NotesForVotingRequest) String() string { return proto.CompactTextString(m) } +func (*NotesForVotingRequest) ProtoMessage() {} +func (*NotesForVotingRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{20} +} +func (m *NotesForVotingRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NotesForVotingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NotesForVotingRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NotesForVotingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotesForVotingRequest.Merge(m, src) +} +func (m *NotesForVotingRequest) XXX_Size() int { + return m.Size() +} +func (m *NotesForVotingRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NotesForVotingRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NotesForVotingRequest proto.InternalMessageInfo + +type isNotesForVotingRequest_XAccountGroupId interface { + isNotesForVotingRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isNotesForVotingRequest_XToken interface { + isNotesForVotingRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type NotesForVotingRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type NotesForVotingRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*NotesForVotingRequest_AccountGroupId) isNotesForVotingRequest_XAccountGroupId() {} +func (*NotesForVotingRequest_Token) isNotesForVotingRequest_XToken() {} + +func (m *NotesForVotingRequest) GetXAccountGroupId() isNotesForVotingRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *NotesForVotingRequest) GetXToken() isNotesForVotingRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *NotesForVotingRequest) GetVotableAtHeight() uint64 { + if m != nil { + return m.VotableAtHeight + } + return 0 +} + +func (m *NotesForVotingRequest) GetAddressIndex() *v1alpha11.AddressIndex { + if m != nil { + return m.AddressIndex + } + return nil +} + +func (m *NotesForVotingRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*NotesForVotingRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *NotesForVotingRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*NotesForVotingRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*NotesForVotingRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*NotesForVotingRequest_AccountGroupId)(nil), + (*NotesForVotingRequest_Token)(nil), + } +} + +type WitnessRequest struct { + // The note commitments to obtain auth paths for. + NoteCommitments []*v1alpha11.StateCommitment `protobuf:"bytes,2,rep,name=note_commitments,json=noteCommitments,proto3" json:"note_commitments,omitempty"` + // The transaction plan to witness + TransactionPlan *v1alpha1.TransactionPlan `protobuf:"bytes,3,opt,name=transaction_plan,json=transactionPlan,proto3" json:"transaction_plan,omitempty"` + // Types that are valid to be assigned to XAccountGroupId: + // *WitnessRequest_AccountGroupId + XAccountGroupId isWitnessRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *WitnessRequest_Token + XToken isWitnessRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *WitnessRequest) Reset() { *m = WitnessRequest{} } +func (m *WitnessRequest) String() string { return proto.CompactTextString(m) } +func (*WitnessRequest) ProtoMessage() {} +func (*WitnessRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{21} +} +func (m *WitnessRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WitnessRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WitnessRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WitnessRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_WitnessRequest.Merge(m, src) +} +func (m *WitnessRequest) XXX_Size() int { + return m.Size() +} +func (m *WitnessRequest) XXX_DiscardUnknown() { + xxx_messageInfo_WitnessRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_WitnessRequest proto.InternalMessageInfo + +type isWitnessRequest_XAccountGroupId interface { + isWitnessRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isWitnessRequest_XToken interface { + isWitnessRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type WitnessRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type WitnessRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*WitnessRequest_AccountGroupId) isWitnessRequest_XAccountGroupId() {} +func (*WitnessRequest_Token) isWitnessRequest_XToken() {} + +func (m *WitnessRequest) GetXAccountGroupId() isWitnessRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *WitnessRequest) GetXToken() isWitnessRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *WitnessRequest) GetNoteCommitments() []*v1alpha11.StateCommitment { + if m != nil { + return m.NoteCommitments + } + return nil +} + +func (m *WitnessRequest) GetTransactionPlan() *v1alpha1.TransactionPlan { + if m != nil { + return m.TransactionPlan + } + return nil +} + +func (m *WitnessRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*WitnessRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *WitnessRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*WitnessRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*WitnessRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*WitnessRequest_AccountGroupId)(nil), + (*WitnessRequest_Token)(nil), + } +} + +type WitnessResponse struct { + WitnessData *v1alpha1.WitnessData `protobuf:"bytes,1,opt,name=witness_data,json=witnessData,proto3" json:"witness_data,omitempty"` +} + +func (m *WitnessResponse) Reset() { *m = WitnessResponse{} } +func (m *WitnessResponse) String() string { return proto.CompactTextString(m) } +func (*WitnessResponse) ProtoMessage() {} +func (*WitnessResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{22} +} +func (m *WitnessResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WitnessResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WitnessResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WitnessResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_WitnessResponse.Merge(m, src) +} +func (m *WitnessResponse) XXX_Size() int { + return m.Size() +} +func (m *WitnessResponse) XXX_DiscardUnknown() { + xxx_messageInfo_WitnessResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_WitnessResponse proto.InternalMessageInfo + +func (m *WitnessResponse) GetWitnessData() *v1alpha1.WitnessData { + if m != nil { + return m.WitnessData + } + return nil +} + +type WitnessAndBuildRequest struct { + TransactionPlan *v1alpha1.TransactionPlan `protobuf:"bytes,1,opt,name=transaction_plan,json=transactionPlan,proto3" json:"transaction_plan,omitempty"` + AuthorizationData *v1alpha1.AuthorizationData `protobuf:"bytes,2,opt,name=authorization_data,json=authorizationData,proto3" json:"authorization_data,omitempty"` +} + +func (m *WitnessAndBuildRequest) Reset() { *m = WitnessAndBuildRequest{} } +func (m *WitnessAndBuildRequest) String() string { return proto.CompactTextString(m) } +func (*WitnessAndBuildRequest) ProtoMessage() {} +func (*WitnessAndBuildRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{23} +} +func (m *WitnessAndBuildRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WitnessAndBuildRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WitnessAndBuildRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WitnessAndBuildRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_WitnessAndBuildRequest.Merge(m, src) +} +func (m *WitnessAndBuildRequest) XXX_Size() int { + return m.Size() +} +func (m *WitnessAndBuildRequest) XXX_DiscardUnknown() { + xxx_messageInfo_WitnessAndBuildRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_WitnessAndBuildRequest proto.InternalMessageInfo + +func (m *WitnessAndBuildRequest) GetTransactionPlan() *v1alpha1.TransactionPlan { + if m != nil { + return m.TransactionPlan + } + return nil +} + +func (m *WitnessAndBuildRequest) GetAuthorizationData() *v1alpha1.AuthorizationData { + if m != nil { + return m.AuthorizationData + } + return nil +} + +type WitnessAndBuildResponse struct { + Transaction *v1alpha1.Transaction `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` +} + +func (m *WitnessAndBuildResponse) Reset() { *m = WitnessAndBuildResponse{} } +func (m *WitnessAndBuildResponse) String() string { return proto.CompactTextString(m) } +func (*WitnessAndBuildResponse) ProtoMessage() {} +func (*WitnessAndBuildResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{24} +} +func (m *WitnessAndBuildResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WitnessAndBuildResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WitnessAndBuildResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WitnessAndBuildResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_WitnessAndBuildResponse.Merge(m, src) +} +func (m *WitnessAndBuildResponse) XXX_Size() int { + return m.Size() +} +func (m *WitnessAndBuildResponse) XXX_DiscardUnknown() { + xxx_messageInfo_WitnessAndBuildResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_WitnessAndBuildResponse proto.InternalMessageInfo + +func (m *WitnessAndBuildResponse) GetTransaction() *v1alpha1.Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +// Requests all assets known to the view service. +type AssetsRequest struct { + // If set to false (default), returns all assets, regardless of whether the rest of the fields of + // the request indicate a filter. + Filtered bool `protobuf:"varint,1,opt,name=filtered,proto3" json:"filtered,omitempty"` + // Include these specific denominations in the response. + IncludeSpecificDenominations []*v1alpha11.Denom `protobuf:"bytes,2,rep,name=include_specific_denominations,json=includeSpecificDenominations,proto3" json:"include_specific_denominations,omitempty"` + // Include all delegation tokens, to any validator, in the response. + IncludeDelegationTokens bool `protobuf:"varint,3,opt,name=include_delegation_tokens,json=includeDelegationTokens,proto3" json:"include_delegation_tokens,omitempty"` + // Include all unbonding tokens, from any validator, in the response. + IncludeUnbondingTokens bool `protobuf:"varint,4,opt,name=include_unbonding_tokens,json=includeUnbondingTokens,proto3" json:"include_unbonding_tokens,omitempty"` + // Include all LP NFTs in the response. + IncludeLpNfts bool `protobuf:"varint,5,opt,name=include_lp_nfts,json=includeLpNfts,proto3" json:"include_lp_nfts,omitempty"` + // Include all proposal NFTs in the response. + IncludeProposalNfts bool `protobuf:"varint,6,opt,name=include_proposal_nfts,json=includeProposalNfts,proto3" json:"include_proposal_nfts,omitempty"` + // Include all voting receipt tokens in the response. + IncludeVotingReceiptTokens bool `protobuf:"varint,7,opt,name=include_voting_receipt_tokens,json=includeVotingReceiptTokens,proto3" json:"include_voting_receipt_tokens,omitempty"` +} + +func (m *AssetsRequest) Reset() { *m = AssetsRequest{} } +func (m *AssetsRequest) String() string { return proto.CompactTextString(m) } +func (*AssetsRequest) ProtoMessage() {} +func (*AssetsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{25} +} +func (m *AssetsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AssetsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AssetsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AssetsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AssetsRequest.Merge(m, src) +} +func (m *AssetsRequest) XXX_Size() int { + return m.Size() +} +func (m *AssetsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AssetsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AssetsRequest proto.InternalMessageInfo + +func (m *AssetsRequest) GetFiltered() bool { + if m != nil { + return m.Filtered + } + return false +} + +func (m *AssetsRequest) GetIncludeSpecificDenominations() []*v1alpha11.Denom { + if m != nil { + return m.IncludeSpecificDenominations + } + return nil +} + +func (m *AssetsRequest) GetIncludeDelegationTokens() bool { + if m != nil { + return m.IncludeDelegationTokens + } + return false +} + +func (m *AssetsRequest) GetIncludeUnbondingTokens() bool { + if m != nil { + return m.IncludeUnbondingTokens + } + return false +} + +func (m *AssetsRequest) GetIncludeLpNfts() bool { + if m != nil { + return m.IncludeLpNfts + } + return false +} + +func (m *AssetsRequest) GetIncludeProposalNfts() bool { + if m != nil { + return m.IncludeProposalNfts + } + return false +} + +func (m *AssetsRequest) GetIncludeVotingReceiptTokens() bool { + if m != nil { + return m.IncludeVotingReceiptTokens + } + return false +} + +// Requests all assets known to the view service. +type AssetsResponse struct { + Asset *v1alpha11.Asset `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` +} + +func (m *AssetsResponse) Reset() { *m = AssetsResponse{} } +func (m *AssetsResponse) String() string { return proto.CompactTextString(m) } +func (*AssetsResponse) ProtoMessage() {} +func (*AssetsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{26} +} +func (m *AssetsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AssetsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AssetsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AssetsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_AssetsResponse.Merge(m, src) +} +func (m *AssetsResponse) XXX_Size() int { + return m.Size() +} +func (m *AssetsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_AssetsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_AssetsResponse proto.InternalMessageInfo + +func (m *AssetsResponse) GetAsset() *v1alpha11.Asset { + if m != nil { + return m.Asset + } + return nil +} + +// Requests the current chain parameters from the view service. +type ChainParametersRequest struct { +} + +func (m *ChainParametersRequest) Reset() { *m = ChainParametersRequest{} } +func (m *ChainParametersRequest) String() string { return proto.CompactTextString(m) } +func (*ChainParametersRequest) ProtoMessage() {} +func (*ChainParametersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{27} +} +func (m *ChainParametersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ChainParametersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ChainParametersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ChainParametersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChainParametersRequest.Merge(m, src) +} +func (m *ChainParametersRequest) XXX_Size() int { + return m.Size() +} +func (m *ChainParametersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ChainParametersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ChainParametersRequest proto.InternalMessageInfo + +type ChainParametersResponse struct { + Parameters *v1alpha13.ChainParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (m *ChainParametersResponse) Reset() { *m = ChainParametersResponse{} } +func (m *ChainParametersResponse) String() string { return proto.CompactTextString(m) } +func (*ChainParametersResponse) ProtoMessage() {} +func (*ChainParametersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{28} +} +func (m *ChainParametersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ChainParametersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ChainParametersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ChainParametersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChainParametersResponse.Merge(m, src) +} +func (m *ChainParametersResponse) XXX_Size() int { + return m.Size() +} +func (m *ChainParametersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ChainParametersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ChainParametersResponse proto.InternalMessageInfo + +func (m *ChainParametersResponse) GetParameters() *v1alpha13.ChainParameters { + if m != nil { + return m.Parameters + } + return nil +} + +// Requests the current FMD parameters from the view service. +type FMDParametersRequest struct { +} + +func (m *FMDParametersRequest) Reset() { *m = FMDParametersRequest{} } +func (m *FMDParametersRequest) String() string { return proto.CompactTextString(m) } +func (*FMDParametersRequest) ProtoMessage() {} +func (*FMDParametersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{29} +} +func (m *FMDParametersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FMDParametersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FMDParametersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FMDParametersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FMDParametersRequest.Merge(m, src) +} +func (m *FMDParametersRequest) XXX_Size() int { + return m.Size() +} +func (m *FMDParametersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FMDParametersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_FMDParametersRequest proto.InternalMessageInfo + +type FMDParametersResponse struct { + Parameters *v1alpha13.FmdParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (m *FMDParametersResponse) Reset() { *m = FMDParametersResponse{} } +func (m *FMDParametersResponse) String() string { return proto.CompactTextString(m) } +func (*FMDParametersResponse) ProtoMessage() {} +func (*FMDParametersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{30} +} +func (m *FMDParametersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FMDParametersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FMDParametersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FMDParametersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_FMDParametersResponse.Merge(m, src) +} +func (m *FMDParametersResponse) XXX_Size() int { + return m.Size() +} +func (m *FMDParametersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_FMDParametersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_FMDParametersResponse proto.InternalMessageInfo + +func (m *FMDParametersResponse) GetParameters() *v1alpha13.FmdParameters { + if m != nil { + return m.Parameters + } + return nil +} + +type NoteByCommitmentRequest struct { + NoteCommitment *v1alpha11.StateCommitment `protobuf:"bytes,2,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + // If set to true, waits to return until the requested note is detected. + AwaitDetection bool `protobuf:"varint,3,opt,name=await_detection,json=awaitDetection,proto3" json:"await_detection,omitempty"` + // Types that are valid to be assigned to XAccountGroupId: + // *NoteByCommitmentRequest_AccountGroupId + XAccountGroupId isNoteByCommitmentRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *NoteByCommitmentRequest_Token + XToken isNoteByCommitmentRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *NoteByCommitmentRequest) Reset() { *m = NoteByCommitmentRequest{} } +func (m *NoteByCommitmentRequest) String() string { return proto.CompactTextString(m) } +func (*NoteByCommitmentRequest) ProtoMessage() {} +func (*NoteByCommitmentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{31} +} +func (m *NoteByCommitmentRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NoteByCommitmentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NoteByCommitmentRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NoteByCommitmentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NoteByCommitmentRequest.Merge(m, src) +} +func (m *NoteByCommitmentRequest) XXX_Size() int { + return m.Size() +} +func (m *NoteByCommitmentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NoteByCommitmentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NoteByCommitmentRequest proto.InternalMessageInfo + +type isNoteByCommitmentRequest_XAccountGroupId interface { + isNoteByCommitmentRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isNoteByCommitmentRequest_XToken interface { + isNoteByCommitmentRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type NoteByCommitmentRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type NoteByCommitmentRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*NoteByCommitmentRequest_AccountGroupId) isNoteByCommitmentRequest_XAccountGroupId() {} +func (*NoteByCommitmentRequest_Token) isNoteByCommitmentRequest_XToken() {} + +func (m *NoteByCommitmentRequest) GetXAccountGroupId() isNoteByCommitmentRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *NoteByCommitmentRequest) GetXToken() isNoteByCommitmentRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *NoteByCommitmentRequest) GetNoteCommitment() *v1alpha11.StateCommitment { + if m != nil { + return m.NoteCommitment + } + return nil +} + +func (m *NoteByCommitmentRequest) GetAwaitDetection() bool { + if m != nil { + return m.AwaitDetection + } + return false +} + +func (m *NoteByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*NoteByCommitmentRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *NoteByCommitmentRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*NoteByCommitmentRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*NoteByCommitmentRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*NoteByCommitmentRequest_AccountGroupId)(nil), + (*NoteByCommitmentRequest_Token)(nil), + } +} + +type NoteByCommitmentResponse struct { + SpendableNote *SpendableNoteRecord `protobuf:"bytes,1,opt,name=spendable_note,json=spendableNote,proto3" json:"spendable_note,omitempty"` +} + +func (m *NoteByCommitmentResponse) Reset() { *m = NoteByCommitmentResponse{} } +func (m *NoteByCommitmentResponse) String() string { return proto.CompactTextString(m) } +func (*NoteByCommitmentResponse) ProtoMessage() {} +func (*NoteByCommitmentResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{32} +} +func (m *NoteByCommitmentResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NoteByCommitmentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NoteByCommitmentResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NoteByCommitmentResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NoteByCommitmentResponse.Merge(m, src) +} +func (m *NoteByCommitmentResponse) XXX_Size() int { + return m.Size() +} +func (m *NoteByCommitmentResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NoteByCommitmentResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NoteByCommitmentResponse proto.InternalMessageInfo + +func (m *NoteByCommitmentResponse) GetSpendableNote() *SpendableNoteRecord { + if m != nil { + return m.SpendableNote + } + return nil +} + +type SwapByCommitmentRequest struct { + SwapCommitment *v1alpha11.StateCommitment `protobuf:"bytes,2,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` + // If set to true, waits to return until the requested swap is detected. + AwaitDetection bool `protobuf:"varint,3,opt,name=await_detection,json=awaitDetection,proto3" json:"await_detection,omitempty"` + // Types that are valid to be assigned to XAccountGroupId: + // *SwapByCommitmentRequest_AccountGroupId + XAccountGroupId isSwapByCommitmentRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *SwapByCommitmentRequest_Token + XToken isSwapByCommitmentRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *SwapByCommitmentRequest) Reset() { *m = SwapByCommitmentRequest{} } +func (m *SwapByCommitmentRequest) String() string { return proto.CompactTextString(m) } +func (*SwapByCommitmentRequest) ProtoMessage() {} +func (*SwapByCommitmentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{33} +} +func (m *SwapByCommitmentRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapByCommitmentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapByCommitmentRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapByCommitmentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapByCommitmentRequest.Merge(m, src) +} +func (m *SwapByCommitmentRequest) XXX_Size() int { + return m.Size() +} +func (m *SwapByCommitmentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SwapByCommitmentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapByCommitmentRequest proto.InternalMessageInfo + +type isSwapByCommitmentRequest_XAccountGroupId interface { + isSwapByCommitmentRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isSwapByCommitmentRequest_XToken interface { + isSwapByCommitmentRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type SwapByCommitmentRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type SwapByCommitmentRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*SwapByCommitmentRequest_AccountGroupId) isSwapByCommitmentRequest_XAccountGroupId() {} +func (*SwapByCommitmentRequest_Token) isSwapByCommitmentRequest_XToken() {} + +func (m *SwapByCommitmentRequest) GetXAccountGroupId() isSwapByCommitmentRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *SwapByCommitmentRequest) GetXToken() isSwapByCommitmentRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *SwapByCommitmentRequest) GetSwapCommitment() *v1alpha11.StateCommitment { + if m != nil { + return m.SwapCommitment + } + return nil +} + +func (m *SwapByCommitmentRequest) GetAwaitDetection() bool { + if m != nil { + return m.AwaitDetection + } + return false +} + +func (m *SwapByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*SwapByCommitmentRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *SwapByCommitmentRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*SwapByCommitmentRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SwapByCommitmentRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SwapByCommitmentRequest_AccountGroupId)(nil), + (*SwapByCommitmentRequest_Token)(nil), + } +} + +type SwapByCommitmentResponse struct { + Swap *SwapRecord `protobuf:"bytes,1,opt,name=swap,proto3" json:"swap,omitempty"` +} + +func (m *SwapByCommitmentResponse) Reset() { *m = SwapByCommitmentResponse{} } +func (m *SwapByCommitmentResponse) String() string { return proto.CompactTextString(m) } +func (*SwapByCommitmentResponse) ProtoMessage() {} +func (*SwapByCommitmentResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{34} +} +func (m *SwapByCommitmentResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapByCommitmentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapByCommitmentResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapByCommitmentResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapByCommitmentResponse.Merge(m, src) +} +func (m *SwapByCommitmentResponse) XXX_Size() int { + return m.Size() +} +func (m *SwapByCommitmentResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SwapByCommitmentResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapByCommitmentResponse proto.InternalMessageInfo + +func (m *SwapByCommitmentResponse) GetSwap() *SwapRecord { + if m != nil { + return m.Swap + } + return nil +} + +type NullifierStatusRequest struct { + Nullifier *v1alpha11.Nullifier `protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + AwaitDetection bool `protobuf:"varint,3,opt,name=await_detection,json=awaitDetection,proto3" json:"await_detection,omitempty"` + // Types that are valid to be assigned to XAccountGroupId: + // *NullifierStatusRequest_AccountGroupId + XAccountGroupId isNullifierStatusRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` + // Types that are valid to be assigned to XToken: + // *NullifierStatusRequest_Token + XToken isNullifierStatusRequest_XToken `protobuf_oneof:"_token"` +} + +func (m *NullifierStatusRequest) Reset() { *m = NullifierStatusRequest{} } +func (m *NullifierStatusRequest) String() string { return proto.CompactTextString(m) } +func (*NullifierStatusRequest) ProtoMessage() {} +func (*NullifierStatusRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{35} +} +func (m *NullifierStatusRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NullifierStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NullifierStatusRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NullifierStatusRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NullifierStatusRequest.Merge(m, src) +} +func (m *NullifierStatusRequest) XXX_Size() int { + return m.Size() +} +func (m *NullifierStatusRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NullifierStatusRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NullifierStatusRequest proto.InternalMessageInfo + +type isNullifierStatusRequest_XAccountGroupId interface { + isNullifierStatusRequest_XAccountGroupId() + MarshalTo([]byte) (int, error) + Size() int +} +type isNullifierStatusRequest_XToken interface { + isNullifierStatusRequest_XToken() + MarshalTo([]byte) (int, error) + Size() int +} + +type NullifierStatusRequest_AccountGroupId struct { + AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` +} +type NullifierStatusRequest_Token struct { + Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` +} + +func (*NullifierStatusRequest_AccountGroupId) isNullifierStatusRequest_XAccountGroupId() {} +func (*NullifierStatusRequest_Token) isNullifierStatusRequest_XToken() {} + +func (m *NullifierStatusRequest) GetXAccountGroupId() isNullifierStatusRequest_XAccountGroupId { + if m != nil { + return m.XAccountGroupId + } + return nil +} +func (m *NullifierStatusRequest) GetXToken() isNullifierStatusRequest_XToken { + if m != nil { + return m.XToken + } + return nil +} + +func (m *NullifierStatusRequest) GetNullifier() *v1alpha11.Nullifier { + if m != nil { + return m.Nullifier + } + return nil +} + +func (m *NullifierStatusRequest) GetAwaitDetection() bool { + if m != nil { + return m.AwaitDetection + } + return false +} + +func (m *NullifierStatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { + if x, ok := m.GetXAccountGroupId().(*NullifierStatusRequest_AccountGroupId); ok { + return x.AccountGroupId + } + return nil +} + +func (m *NullifierStatusRequest) GetToken() *ViewAuthToken { + if x, ok := m.GetXToken().(*NullifierStatusRequest_Token); ok { + return x.Token + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*NullifierStatusRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*NullifierStatusRequest_AccountGroupId)(nil), + (*NullifierStatusRequest_Token)(nil), + } +} + +type NullifierStatusResponse struct { + Spent bool `protobuf:"varint,1,opt,name=spent,proto3" json:"spent,omitempty"` +} + +func (m *NullifierStatusResponse) Reset() { *m = NullifierStatusResponse{} } +func (m *NullifierStatusResponse) String() string { return proto.CompactTextString(m) } +func (*NullifierStatusResponse) ProtoMessage() {} +func (*NullifierStatusResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{36} +} +func (m *NullifierStatusResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NullifierStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NullifierStatusResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NullifierStatusResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NullifierStatusResponse.Merge(m, src) +} +func (m *NullifierStatusResponse) XXX_Size() int { + return m.Size() +} +func (m *NullifierStatusResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NullifierStatusResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NullifierStatusResponse proto.InternalMessageInfo + +func (m *NullifierStatusResponse) GetSpent() bool { + if m != nil { + return m.Spent + } + return false +} + +type TransactionHashesRequest struct { + // Types that are valid to be assigned to XStartHeight: + // *TransactionHashesRequest_StartHeight + XStartHeight isTransactionHashesRequest_XStartHeight `protobuf_oneof:"_start_height"` + // Types that are valid to be assigned to XEndHeight: + // *TransactionHashesRequest_EndHeight + XEndHeight isTransactionHashesRequest_XEndHeight `protobuf_oneof:"_end_height"` +} + +func (m *TransactionHashesRequest) Reset() { *m = TransactionHashesRequest{} } +func (m *TransactionHashesRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionHashesRequest) ProtoMessage() {} +func (*TransactionHashesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{37} +} +func (m *TransactionHashesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionHashesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionHashesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionHashesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionHashesRequest.Merge(m, src) +} +func (m *TransactionHashesRequest) XXX_Size() int { + return m.Size() +} +func (m *TransactionHashesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionHashesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionHashesRequest proto.InternalMessageInfo + +type isTransactionHashesRequest_XStartHeight interface { + isTransactionHashesRequest_XStartHeight() + MarshalTo([]byte) (int, error) + Size() int +} +type isTransactionHashesRequest_XEndHeight interface { + isTransactionHashesRequest_XEndHeight() + MarshalTo([]byte) (int, error) + Size() int +} + +type TransactionHashesRequest_StartHeight struct { + StartHeight uint64 `protobuf:"varint,1,opt,name=start_height,json=startHeight,proto3,oneof" json:"start_height,omitempty"` +} +type TransactionHashesRequest_EndHeight struct { + EndHeight uint64 `protobuf:"varint,2,opt,name=end_height,json=endHeight,proto3,oneof" json:"end_height,omitempty"` +} + +func (*TransactionHashesRequest_StartHeight) isTransactionHashesRequest_XStartHeight() {} +func (*TransactionHashesRequest_EndHeight) isTransactionHashesRequest_XEndHeight() {} + +func (m *TransactionHashesRequest) GetXStartHeight() isTransactionHashesRequest_XStartHeight { + if m != nil { + return m.XStartHeight + } + return nil +} +func (m *TransactionHashesRequest) GetXEndHeight() isTransactionHashesRequest_XEndHeight { + if m != nil { + return m.XEndHeight + } + return nil +} + +func (m *TransactionHashesRequest) GetStartHeight() uint64 { + if x, ok := m.GetXStartHeight().(*TransactionHashesRequest_StartHeight); ok { + return x.StartHeight + } + return 0 +} + +func (m *TransactionHashesRequest) GetEndHeight() uint64 { + if x, ok := m.GetXEndHeight().(*TransactionHashesRequest_EndHeight); ok { + return x.EndHeight + } + return 0 +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransactionHashesRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransactionHashesRequest_StartHeight)(nil), + (*TransactionHashesRequest_EndHeight)(nil), + } +} + +type TransactionHashesResponse struct { + BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` + TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +} + +func (m *TransactionHashesResponse) Reset() { *m = TransactionHashesResponse{} } +func (m *TransactionHashesResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionHashesResponse) ProtoMessage() {} +func (*TransactionHashesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{38} +} +func (m *TransactionHashesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionHashesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionHashesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionHashesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionHashesResponse.Merge(m, src) +} +func (m *TransactionHashesResponse) XXX_Size() int { + return m.Size() +} +func (m *TransactionHashesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionHashesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionHashesResponse proto.InternalMessageInfo + +func (m *TransactionHashesResponse) GetBlockHeight() uint64 { + if m != nil { + return m.BlockHeight + } + return 0 +} + +func (m *TransactionHashesResponse) GetTxHash() []byte { + if m != nil { + return m.TxHash + } + return nil +} + +type TransactionByHashRequest struct { + // The transaction hash to query for. + TxHash []byte `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +} + +func (m *TransactionByHashRequest) Reset() { *m = TransactionByHashRequest{} } +func (m *TransactionByHashRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionByHashRequest) ProtoMessage() {} +func (*TransactionByHashRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{39} +} +func (m *TransactionByHashRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionByHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionByHashRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionByHashRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionByHashRequest.Merge(m, src) +} +func (m *TransactionByHashRequest) XXX_Size() int { + return m.Size() +} +func (m *TransactionByHashRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionByHashRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionByHashRequest proto.InternalMessageInfo + +func (m *TransactionByHashRequest) GetTxHash() []byte { + if m != nil { + return m.TxHash + } + return nil +} + +// A full transaction response +type TransactionByHashResponse struct { + Tx *v1alpha1.Transaction `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` +} + +func (m *TransactionByHashResponse) Reset() { *m = TransactionByHashResponse{} } +func (m *TransactionByHashResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionByHashResponse) ProtoMessage() {} +func (*TransactionByHashResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{40} +} +func (m *TransactionByHashResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionByHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionByHashResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionByHashResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionByHashResponse.Merge(m, src) +} +func (m *TransactionByHashResponse) XXX_Size() int { + return m.Size() +} +func (m *TransactionByHashResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionByHashResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionByHashResponse proto.InternalMessageInfo + +func (m *TransactionByHashResponse) GetTx() *v1alpha1.Transaction { + if m != nil { + return m.Tx + } + return nil +} + +type TransactionsRequest struct { + // Types that are valid to be assigned to XStartHeight: + // *TransactionsRequest_StartHeight + XStartHeight isTransactionsRequest_XStartHeight `protobuf_oneof:"_start_height"` + // Types that are valid to be assigned to XEndHeight: + // *TransactionsRequest_EndHeight + XEndHeight isTransactionsRequest_XEndHeight `protobuf_oneof:"_end_height"` +} + +func (m *TransactionsRequest) Reset() { *m = TransactionsRequest{} } +func (m *TransactionsRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionsRequest) ProtoMessage() {} +func (*TransactionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{41} +} +func (m *TransactionsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionsRequest.Merge(m, src) +} +func (m *TransactionsRequest) XXX_Size() int { + return m.Size() +} +func (m *TransactionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionsRequest proto.InternalMessageInfo + +type isTransactionsRequest_XStartHeight interface { + isTransactionsRequest_XStartHeight() + MarshalTo([]byte) (int, error) + Size() int +} +type isTransactionsRequest_XEndHeight interface { + isTransactionsRequest_XEndHeight() + MarshalTo([]byte) (int, error) + Size() int +} + +type TransactionsRequest_StartHeight struct { + StartHeight uint64 `protobuf:"varint,1,opt,name=start_height,json=startHeight,proto3,oneof" json:"start_height,omitempty"` +} +type TransactionsRequest_EndHeight struct { + EndHeight uint64 `protobuf:"varint,2,opt,name=end_height,json=endHeight,proto3,oneof" json:"end_height,omitempty"` +} + +func (*TransactionsRequest_StartHeight) isTransactionsRequest_XStartHeight() {} +func (*TransactionsRequest_EndHeight) isTransactionsRequest_XEndHeight() {} + +func (m *TransactionsRequest) GetXStartHeight() isTransactionsRequest_XStartHeight { + if m != nil { + return m.XStartHeight + } + return nil +} +func (m *TransactionsRequest) GetXEndHeight() isTransactionsRequest_XEndHeight { + if m != nil { + return m.XEndHeight + } + return nil +} + +func (m *TransactionsRequest) GetStartHeight() uint64 { + if x, ok := m.GetXStartHeight().(*TransactionsRequest_StartHeight); ok { + return x.StartHeight + } + return 0 +} + +func (m *TransactionsRequest) GetEndHeight() uint64 { + if x, ok := m.GetXEndHeight().(*TransactionsRequest_EndHeight); ok { + return x.EndHeight + } + return 0 +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransactionsRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransactionsRequest_StartHeight)(nil), + (*TransactionsRequest_EndHeight)(nil), + } +} + +// A streaming full transaction response +type TransactionsResponse struct { + BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` + TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + Tx *v1alpha1.Transaction `protobuf:"bytes,3,opt,name=tx,proto3" json:"tx,omitempty"` +} + +func (m *TransactionsResponse) Reset() { *m = TransactionsResponse{} } +func (m *TransactionsResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionsResponse) ProtoMessage() {} +func (*TransactionsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{42} +} +func (m *TransactionsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionsResponse.Merge(m, src) +} +func (m *TransactionsResponse) XXX_Size() int { + return m.Size() +} +func (m *TransactionsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionsResponse proto.InternalMessageInfo + +func (m *TransactionsResponse) GetBlockHeight() uint64 { + if m != nil { + return m.BlockHeight + } + return 0 +} + +func (m *TransactionsResponse) GetTxHash() []byte { + if m != nil { + return m.TxHash + } + return nil +} + +func (m *TransactionsResponse) GetTx() *v1alpha1.Transaction { + if m != nil { + return m.Tx + } + return nil +} + +type TransactionPerspectiveRequest struct { + TxHash []byte `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +} + +func (m *TransactionPerspectiveRequest) Reset() { *m = TransactionPerspectiveRequest{} } +func (m *TransactionPerspectiveRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionPerspectiveRequest) ProtoMessage() {} +func (*TransactionPerspectiveRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{43} +} +func (m *TransactionPerspectiveRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPerspectiveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPerspectiveRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPerspectiveRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPerspectiveRequest.Merge(m, src) +} +func (m *TransactionPerspectiveRequest) XXX_Size() int { + return m.Size() +} +func (m *TransactionPerspectiveRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPerspectiveRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPerspectiveRequest proto.InternalMessageInfo + +func (m *TransactionPerspectiveRequest) GetTxHash() []byte { + if m != nil { + return m.TxHash + } + return nil +} + +type TransactionPerspectiveResponse struct { + Txp *v1alpha1.TransactionPerspective `protobuf:"bytes,1,opt,name=txp,proto3" json:"txp,omitempty"` + Tx *v1alpha1.Transaction `protobuf:"bytes,2,opt,name=tx,proto3" json:"tx,omitempty"` +} + +func (m *TransactionPerspectiveResponse) Reset() { *m = TransactionPerspectiveResponse{} } +func (m *TransactionPerspectiveResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionPerspectiveResponse) ProtoMessage() {} +func (*TransactionPerspectiveResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{44} +} +func (m *TransactionPerspectiveResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPerspectiveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPerspectiveResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionPerspectiveResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPerspectiveResponse.Merge(m, src) +} +func (m *TransactionPerspectiveResponse) XXX_Size() int { + return m.Size() +} +func (m *TransactionPerspectiveResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPerspectiveResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPerspectiveResponse proto.InternalMessageInfo + +func (m *TransactionPerspectiveResponse) GetTxp() *v1alpha1.TransactionPerspective { + if m != nil { + return m.Txp + } + return nil +} + +func (m *TransactionPerspectiveResponse) GetTx() *v1alpha1.Transaction { + if m != nil { + return m.Tx + } + return nil +} + +type NotesResponse struct { + NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` +} + +func (m *NotesResponse) Reset() { *m = NotesResponse{} } +func (m *NotesResponse) String() string { return proto.CompactTextString(m) } +func (*NotesResponse) ProtoMessage() {} +func (*NotesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{45} +} +func (m *NotesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NotesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NotesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NotesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotesResponse.Merge(m, src) +} +func (m *NotesResponse) XXX_Size() int { + return m.Size() +} +func (m *NotesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NotesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NotesResponse proto.InternalMessageInfo + +func (m *NotesResponse) GetNoteRecord() *SpendableNoteRecord { + if m != nil { + return m.NoteRecord + } + return nil +} + +type NotesForVotingResponse struct { + NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` + IdentityKey *v1alpha11.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` +} + +func (m *NotesForVotingResponse) Reset() { *m = NotesForVotingResponse{} } +func (m *NotesForVotingResponse) String() string { return proto.CompactTextString(m) } +func (*NotesForVotingResponse) ProtoMessage() {} +func (*NotesForVotingResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{46} +} +func (m *NotesForVotingResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NotesForVotingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NotesForVotingResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NotesForVotingResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotesForVotingResponse.Merge(m, src) +} +func (m *NotesForVotingResponse) XXX_Size() int { + return m.Size() +} +func (m *NotesForVotingResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NotesForVotingResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NotesForVotingResponse proto.InternalMessageInfo + +func (m *NotesForVotingResponse) GetNoteRecord() *SpendableNoteRecord { + if m != nil { + return m.NoteRecord + } + return nil +} + +func (m *NotesForVotingResponse) GetIdentityKey() *v1alpha11.IdentityKey { + if m != nil { + return m.IdentityKey + } + return nil +} + +// A note plaintext with associated metadata about its status. +type SpendableNoteRecord struct { + // The note commitment, identifying the note. + NoteCommitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + // The note plaintext itself. + Note *v1alpha11.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + // A precomputed decryption of the note's address incore.dex.v1alpha1. + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,3,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + // The note's nullifier. + Nullifier *v1alpha11.Nullifier `protobuf:"bytes,4,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + // The height at which the note was created. + HeightCreated uint64 `protobuf:"varint,5,opt,name=height_created,json=heightCreated,proto3" json:"height_created,omitempty"` + // Types that are valid to be assigned to XHeightSpent: + // *SpendableNoteRecord_HeightSpent + XHeightSpent isSpendableNoteRecord_XHeightSpent `protobuf_oneof:"_height_spent"` + // The note position. + Position uint64 `protobuf:"varint,7,opt,name=position,proto3" json:"position,omitempty"` + // The source of the note (a tx hash or otherwise) + Source *v1alpha13.NoteSource `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"` +} + +func (m *SpendableNoteRecord) Reset() { *m = SpendableNoteRecord{} } +func (m *SpendableNoteRecord) String() string { return proto.CompactTextString(m) } +func (*SpendableNoteRecord) ProtoMessage() {} +func (*SpendableNoteRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{47} +} +func (m *SpendableNoteRecord) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendableNoteRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendableNoteRecord.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendableNoteRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendableNoteRecord.Merge(m, src) +} +func (m *SpendableNoteRecord) XXX_Size() int { + return m.Size() +} +func (m *SpendableNoteRecord) XXX_DiscardUnknown() { + xxx_messageInfo_SpendableNoteRecord.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendableNoteRecord proto.InternalMessageInfo + +type isSpendableNoteRecord_XHeightSpent interface { + isSpendableNoteRecord_XHeightSpent() + MarshalTo([]byte) (int, error) + Size() int +} + +type SpendableNoteRecord_HeightSpent struct { + HeightSpent uint64 `protobuf:"varint,6,opt,name=height_spent,json=heightSpent,proto3,oneof" json:"height_spent,omitempty"` +} + +func (*SpendableNoteRecord_HeightSpent) isSpendableNoteRecord_XHeightSpent() {} + +func (m *SpendableNoteRecord) GetXHeightSpent() isSpendableNoteRecord_XHeightSpent { + if m != nil { + return m.XHeightSpent + } + return nil +} + +func (m *SpendableNoteRecord) GetNoteCommitment() *v1alpha11.StateCommitment { + if m != nil { + return m.NoteCommitment + } + return nil +} + +func (m *SpendableNoteRecord) GetNote() *v1alpha11.Note { + if m != nil { + return m.Note + } + return nil +} + +func (m *SpendableNoteRecord) GetAddressIndex() *v1alpha11.AddressIndex { + if m != nil { + return m.AddressIndex + } + return nil +} + +func (m *SpendableNoteRecord) GetNullifier() *v1alpha11.Nullifier { + if m != nil { + return m.Nullifier + } + return nil +} + +func (m *SpendableNoteRecord) GetHeightCreated() uint64 { + if m != nil { + return m.HeightCreated + } + return 0 +} + +func (m *SpendableNoteRecord) GetHeightSpent() uint64 { + if x, ok := m.GetXHeightSpent().(*SpendableNoteRecord_HeightSpent); ok { + return x.HeightSpent + } + return 0 +} + +func (m *SpendableNoteRecord) GetPosition() uint64 { + if m != nil { + return m.Position + } + return 0 +} + +func (m *SpendableNoteRecord) GetSource() *v1alpha13.NoteSource { + if m != nil { + return m.Source + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SpendableNoteRecord) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SpendableNoteRecord_HeightSpent)(nil), + } +} + +type SwapRecord struct { + SwapCommitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` + Swap *v1alpha14.SwapPlaintext `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` + Position uint64 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` + Nullifier *v1alpha11.Nullifier `protobuf:"bytes,4,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + OutputData *v1alpha14.BatchSwapOutputData `protobuf:"bytes,5,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` + // Types that are valid to be assigned to XHeightClaimed: + // *SwapRecord_HeightClaimed + XHeightClaimed isSwapRecord_XHeightClaimed `protobuf_oneof:"_height_claimed"` + Source *v1alpha13.NoteSource `protobuf:"bytes,7,opt,name=source,proto3" json:"source,omitempty"` +} + +func (m *SwapRecord) Reset() { *m = SwapRecord{} } +func (m *SwapRecord) String() string { return proto.CompactTextString(m) } +func (*SwapRecord) ProtoMessage() {} +func (*SwapRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{48} +} +func (m *SwapRecord) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SwapRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SwapRecord.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SwapRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapRecord.Merge(m, src) +} +func (m *SwapRecord) XXX_Size() int { + return m.Size() +} +func (m *SwapRecord) XXX_DiscardUnknown() { + xxx_messageInfo_SwapRecord.DiscardUnknown(m) +} + +var xxx_messageInfo_SwapRecord proto.InternalMessageInfo + +type isSwapRecord_XHeightClaimed interface { + isSwapRecord_XHeightClaimed() + MarshalTo([]byte) (int, error) + Size() int +} + +type SwapRecord_HeightClaimed struct { + HeightClaimed uint64 `protobuf:"varint,6,opt,name=height_claimed,json=heightClaimed,proto3,oneof" json:"height_claimed,omitempty"` +} + +func (*SwapRecord_HeightClaimed) isSwapRecord_XHeightClaimed() {} + +func (m *SwapRecord) GetXHeightClaimed() isSwapRecord_XHeightClaimed { + if m != nil { + return m.XHeightClaimed + } + return nil +} + +func (m *SwapRecord) GetSwapCommitment() *v1alpha11.StateCommitment { + if m != nil { + return m.SwapCommitment + } + return nil +} + +func (m *SwapRecord) GetSwap() *v1alpha14.SwapPlaintext { + if m != nil { + return m.Swap + } + return nil +} + +func (m *SwapRecord) GetPosition() uint64 { + if m != nil { + return m.Position + } + return 0 +} + +func (m *SwapRecord) GetNullifier() *v1alpha11.Nullifier { + if m != nil { + return m.Nullifier + } + return nil +} + +func (m *SwapRecord) GetOutputData() *v1alpha14.BatchSwapOutputData { + if m != nil { + return m.OutputData + } + return nil +} + +func (m *SwapRecord) GetHeightClaimed() uint64 { + if x, ok := m.GetXHeightClaimed().(*SwapRecord_HeightClaimed); ok { + return x.HeightClaimed + } + return 0 +} + +func (m *SwapRecord) GetSource() *v1alpha13.NoteSource { + if m != nil { + return m.Source + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SwapRecord) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SwapRecord_HeightClaimed)(nil), + } +} + +func init() { + proto.RegisterType((*BroadcastTransactionRequest)(nil), "penumbra.view.v1alpha1.BroadcastTransactionRequest") + proto.RegisterType((*BroadcastTransactionResponse)(nil), "penumbra.view.v1alpha1.BroadcastTransactionResponse") + proto.RegisterType((*TransactionPlannerRequest)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest") + proto.RegisterType((*TransactionPlannerRequest_Output)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Output") + proto.RegisterType((*TransactionPlannerRequest_Swap)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Swap") + proto.RegisterType((*TransactionPlannerRequest_Delegate)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate") + proto.RegisterType((*TransactionPlannerRequest_Undelegate)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate") + proto.RegisterType((*TransactionPlannerResponse)(nil), "penumbra.view.v1alpha1.TransactionPlannerResponse") + proto.RegisterType((*AddressByIndexRequest)(nil), "penumbra.view.v1alpha1.AddressByIndexRequest") + proto.RegisterType((*AddressByIndexResponse)(nil), "penumbra.view.v1alpha1.AddressByIndexResponse") + proto.RegisterType((*IndexByAddressRequest)(nil), "penumbra.view.v1alpha1.IndexByAddressRequest") + proto.RegisterType((*IndexByAddressResponse)(nil), "penumbra.view.v1alpha1.IndexByAddressResponse") + proto.RegisterType((*EphemeralAddressRequest)(nil), "penumbra.view.v1alpha1.EphemeralAddressRequest") + proto.RegisterType((*EphemeralAddressResponse)(nil), "penumbra.view.v1alpha1.EphemeralAddressResponse") + proto.RegisterType((*BalanceByAddressRequest)(nil), "penumbra.view.v1alpha1.BalanceByAddressRequest") + proto.RegisterType((*BalanceByAddressResponse)(nil), "penumbra.view.v1alpha1.BalanceByAddressResponse") + proto.RegisterType((*ViewAuthToken)(nil), "penumbra.view.v1alpha1.ViewAuthToken") + proto.RegisterType((*ViewAuthRequest)(nil), "penumbra.view.v1alpha1.ViewAuthRequest") + proto.RegisterType((*ViewAuthResponse)(nil), "penumbra.view.v1alpha1.ViewAuthResponse") + proto.RegisterType((*StatusRequest)(nil), "penumbra.view.v1alpha1.StatusRequest") + proto.RegisterType((*StatusResponse)(nil), "penumbra.view.v1alpha1.StatusResponse") + proto.RegisterType((*StatusStreamRequest)(nil), "penumbra.view.v1alpha1.StatusStreamRequest") + proto.RegisterType((*StatusStreamResponse)(nil), "penumbra.view.v1alpha1.StatusStreamResponse") + proto.RegisterType((*NotesRequest)(nil), "penumbra.view.v1alpha1.NotesRequest") + proto.RegisterType((*NotesForVotingRequest)(nil), "penumbra.view.v1alpha1.NotesForVotingRequest") + proto.RegisterType((*WitnessRequest)(nil), "penumbra.view.v1alpha1.WitnessRequest") + proto.RegisterType((*WitnessResponse)(nil), "penumbra.view.v1alpha1.WitnessResponse") + proto.RegisterType((*WitnessAndBuildRequest)(nil), "penumbra.view.v1alpha1.WitnessAndBuildRequest") + proto.RegisterType((*WitnessAndBuildResponse)(nil), "penumbra.view.v1alpha1.WitnessAndBuildResponse") + proto.RegisterType((*AssetsRequest)(nil), "penumbra.view.v1alpha1.AssetsRequest") + proto.RegisterType((*AssetsResponse)(nil), "penumbra.view.v1alpha1.AssetsResponse") + proto.RegisterType((*ChainParametersRequest)(nil), "penumbra.view.v1alpha1.ChainParametersRequest") + proto.RegisterType((*ChainParametersResponse)(nil), "penumbra.view.v1alpha1.ChainParametersResponse") + proto.RegisterType((*FMDParametersRequest)(nil), "penumbra.view.v1alpha1.FMDParametersRequest") + proto.RegisterType((*FMDParametersResponse)(nil), "penumbra.view.v1alpha1.FMDParametersResponse") + proto.RegisterType((*NoteByCommitmentRequest)(nil), "penumbra.view.v1alpha1.NoteByCommitmentRequest") + proto.RegisterType((*NoteByCommitmentResponse)(nil), "penumbra.view.v1alpha1.NoteByCommitmentResponse") + proto.RegisterType((*SwapByCommitmentRequest)(nil), "penumbra.view.v1alpha1.SwapByCommitmentRequest") + proto.RegisterType((*SwapByCommitmentResponse)(nil), "penumbra.view.v1alpha1.SwapByCommitmentResponse") + proto.RegisterType((*NullifierStatusRequest)(nil), "penumbra.view.v1alpha1.NullifierStatusRequest") + proto.RegisterType((*NullifierStatusResponse)(nil), "penumbra.view.v1alpha1.NullifierStatusResponse") + proto.RegisterType((*TransactionHashesRequest)(nil), "penumbra.view.v1alpha1.TransactionHashesRequest") + proto.RegisterType((*TransactionHashesResponse)(nil), "penumbra.view.v1alpha1.TransactionHashesResponse") + proto.RegisterType((*TransactionByHashRequest)(nil), "penumbra.view.v1alpha1.TransactionByHashRequest") + proto.RegisterType((*TransactionByHashResponse)(nil), "penumbra.view.v1alpha1.TransactionByHashResponse") + proto.RegisterType((*TransactionsRequest)(nil), "penumbra.view.v1alpha1.TransactionsRequest") + proto.RegisterType((*TransactionsResponse)(nil), "penumbra.view.v1alpha1.TransactionsResponse") + proto.RegisterType((*TransactionPerspectiveRequest)(nil), "penumbra.view.v1alpha1.TransactionPerspectiveRequest") + proto.RegisterType((*TransactionPerspectiveResponse)(nil), "penumbra.view.v1alpha1.TransactionPerspectiveResponse") + proto.RegisterType((*NotesResponse)(nil), "penumbra.view.v1alpha1.NotesResponse") + proto.RegisterType((*NotesForVotingResponse)(nil), "penumbra.view.v1alpha1.NotesForVotingResponse") + proto.RegisterType((*SpendableNoteRecord)(nil), "penumbra.view.v1alpha1.SpendableNoteRecord") + proto.RegisterType((*SwapRecord)(nil), "penumbra.view.v1alpha1.SwapRecord") +} + +func init() { proto.RegisterFile("penumbra/view/v1alpha1/view.proto", fileDescriptor_0aa947b204e6a7c2) } + +var fileDescriptor_0aa947b204e6a7c2 = []byte{ + // 2751 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcd, 0x73, 0xe4, 0xc4, + 0x15, 0x5f, 0xcd, 0xf8, 0x6b, 0xdf, 0x8c, 0x67, 0xbc, 0xb2, 0xd7, 0x1e, 0x26, 0x60, 0x16, 0xb1, + 0xbb, 0x38, 0x4b, 0x18, 0xef, 0x7a, 0x81, 0x10, 0x03, 0x05, 0x1e, 0x1c, 0x63, 0x17, 0xbb, 0xe0, + 0xc8, 0xac, 0x37, 0x10, 0x13, 0x55, 0x5b, 0x6a, 0x7b, 0x14, 0x6b, 0x24, 0x21, 0xf5, 0xf8, 0x83, + 0x9c, 0xb8, 0x10, 0x8a, 0x53, 0xaa, 0x72, 0x48, 0x72, 0xcd, 0x2d, 0xa9, 0x54, 0x71, 0xca, 0x5f, + 0x90, 0x0b, 0x95, 0x43, 0x8a, 0x03, 0xa9, 0x4a, 0x25, 0x55, 0xa9, 0xd4, 0x72, 0xcb, 0x3f, 0x91, + 0x54, 0x7f, 0x69, 0x24, 0x8d, 0xc4, 0xcc, 0xd8, 0xa6, 0x92, 0x0d, 0x37, 0x75, 0xf7, 0x7b, 0xbf, + 0xf7, 0xfa, 0xbd, 0xee, 0xd7, 0xaf, 0x9f, 0x1a, 0x9e, 0xf0, 0xb1, 0xdb, 0x69, 0xef, 0x06, 0x68, + 0xf1, 0xd0, 0xc6, 0x47, 0x8b, 0x87, 0xb7, 0x90, 0xe3, 0xb7, 0xd0, 0x2d, 0xd6, 0x6a, 0xf8, 0x81, + 0x47, 0x3c, 0x75, 0x56, 0x92, 0x34, 0x58, 0xa7, 0x24, 0xa9, 0x2f, 0x44, 0xac, 0xa6, 0x17, 0xe0, + 0x45, 0xb3, 0x85, 0x6c, 0xb7, 0x0b, 0xc0, 0x9a, 0x1c, 0xa1, 0x7e, 0x23, 0x45, 0x19, 0x9c, 0xf8, + 0xc4, 0x8b, 0x91, 0xb2, 0xb6, 0xa0, 0xbd, 0x9a, 0xa4, 0xb5, 0xf0, 0x71, 0x97, 0xd0, 0xc2, 0xc7, + 0x82, 0xea, 0xd9, 0x24, 0x15, 0x09, 0x90, 0x1b, 0x22, 0x93, 0xd8, 0x5e, 0x4c, 0x83, 0x58, 0x67, + 0x36, 0xb6, 0xbd, 0x6b, 0x76, 0xa9, 0xed, 0x5d, 0x93, 0x53, 0x69, 0xbf, 0x56, 0xe0, 0x5b, 0xcd, + 0xc0, 0x43, 0x96, 0x89, 0x42, 0xf2, 0x76, 0x17, 0x44, 0xc7, 0xef, 0x77, 0x70, 0x48, 0xd4, 0x1f, + 0x40, 0x29, 0x06, 0x5d, 0x53, 0xae, 0x28, 0x0b, 0xa5, 0xa5, 0xc5, 0x46, 0x64, 0x25, 0x8a, 0xdd, + 0x88, 0x0b, 0x97, 0x32, 0x1a, 0x71, 0xb0, 0x38, 0x86, 0xfa, 0x14, 0x54, 0xd1, 0x11, 0xb2, 0x89, + 0x61, 0x61, 0x82, 0x39, 0x6c, 0xe1, 0x8a, 0xb2, 0x30, 0xa1, 0x57, 0x58, 0xf7, 0xaa, 0xec, 0xd5, + 0xb6, 0xe1, 0xd1, 0x6c, 0xd5, 0x42, 0xdf, 0x73, 0x43, 0xac, 0x3e, 0x0f, 0x05, 0xdb, 0x12, 0x2a, + 0x5d, 0x1f, 0x44, 0xa5, 0x0d, 0x4b, 0x2f, 0xd8, 0x96, 0xf6, 0x5b, 0x80, 0x47, 0x62, 0x78, 0x9b, + 0x0e, 0x72, 0x5d, 0x1c, 0xc8, 0x19, 0x3f, 0x09, 0x93, 0xf8, 0xd8, 0xb7, 0x83, 0x13, 0xa3, 0x85, + 0xed, 0xfd, 0x16, 0x61, 0x02, 0x46, 0xf4, 0x32, 0xef, 0x5c, 0x67, 0x7d, 0xea, 0xb3, 0x50, 0xdc, + 0xc3, 0x98, 0xe9, 0x5d, 0x5a, 0xd2, 0x52, 0xb2, 0x85, 0x8b, 0x23, 0xb1, 0x6b, 0x18, 0xeb, 0x94, + 0x5c, 0x55, 0x61, 0xa4, 0x8d, 0xdb, 0x5e, 0xad, 0x78, 0x45, 0x59, 0xb8, 0xa8, 0xb3, 0x6f, 0x75, + 0x07, 0xa6, 0x90, 0x69, 0x7a, 0x1d, 0x97, 0x18, 0xfb, 0x81, 0xd7, 0xf1, 0x0d, 0xdb, 0xaa, 0x55, + 0x18, 0xec, 0x33, 0x7d, 0x60, 0x57, 0x38, 0xdb, 0xeb, 0x94, 0x6b, 0xc3, 0x5a, 0xbf, 0xa0, 0x57, + 0x50, 0xa2, 0xe7, 0x63, 0x45, 0x51, 0x5f, 0x85, 0x51, 0xe2, 0x1d, 0x60, 0xb7, 0x56, 0x65, 0x90, + 0xd7, 0x1a, 0xd9, 0xcb, 0xbb, 0xb1, 0x6d, 0xe3, 0xa3, 0x95, 0x0e, 0x69, 0xbd, 0x4d, 0x89, 0xd7, + 0x15, 0x9d, 0x73, 0x51, 0x04, 0x1d, 0xc6, 0xbd, 0x0e, 0xf1, 0x3b, 0x24, 0xac, 0xcd, 0x5c, 0x29, + 0x2e, 0x94, 0x96, 0x5e, 0xc8, 0xc3, 0xc8, 0x35, 0x69, 0xe3, 0x2d, 0x06, 0xa0, 0x4b, 0x20, 0xf5, + 0x0e, 0x8c, 0x86, 0x47, 0xc8, 0x0f, 0x6b, 0xf3, 0x0c, 0xf1, 0xf9, 0xe1, 0x11, 0xb7, 0x8e, 0x90, + 0xaf, 0x73, 0x10, 0x75, 0x07, 0x4a, 0x16, 0x76, 0xf0, 0x3e, 0xa2, 0x74, 0x61, 0x6d, 0x81, 0x61, + 0x2e, 0x0f, 0x8f, 0xb9, 0xca, 0x41, 0xb0, 0x1e, 0x87, 0x53, 0x77, 0x61, 0xb2, 0xe3, 0xc6, 0xf1, + 0x97, 0x18, 0xfe, 0x4b, 0xc3, 0xe3, 0xdf, 0x93, 0x30, 0x58, 0x4f, 0x42, 0xaa, 0x6b, 0x50, 0xb2, + 0x77, 0x4d, 0x83, 0x73, 0x85, 0xb5, 0x97, 0x98, 0x84, 0x6b, 0x29, 0xf7, 0xd3, 0x3d, 0xdb, 0x5d, + 0xc9, 0xbb, 0xe6, 0x0a, 0xdf, 0x0c, 0x60, 0xcb, 0xcf, 0xb0, 0xfe, 0x91, 0x02, 0x63, 0xdc, 0xd6, + 0xea, 0x32, 0x8c, 0x1e, 0x22, 0xa7, 0x83, 0xc5, 0xf6, 0xb8, 0xda, 0x67, 0x2d, 0x6d, 0x53, 0x5a, + 0x9d, 0xb3, 0xa8, 0xaf, 0xc2, 0x38, 0xb2, 0xac, 0x00, 0x87, 0xa1, 0x58, 0xe0, 0xd7, 0xfb, 0xad, + 0x44, 0x4e, 0xad, 0x4b, 0xb6, 0xfa, 0x1f, 0x15, 0x18, 0xa1, 0x2e, 0x3a, 0x93, 0x1a, 0x1b, 0x50, + 0x26, 0x28, 0xd8, 0xc7, 0xc4, 0x40, 0x61, 0x88, 0xc9, 0xa0, 0xba, 0x50, 0xda, 0x0d, 0x4b, 0x2f, + 0x71, 0x5e, 0xd6, 0x94, 0xdb, 0xb5, 0x38, 0xd4, 0x76, 0xad, 0xff, 0x4a, 0x81, 0x09, 0xb9, 0x28, + 0xd4, 0x97, 0x61, 0x0c, 0xb5, 0xe9, 0xee, 0x12, 0x53, 0xb9, 0xd6, 0x4f, 0x0f, 0x46, 0xac, 0x0b, + 0x26, 0xf5, 0x2e, 0x94, 0x6d, 0x0b, 0xbb, 0xc4, 0x26, 0x27, 0xc6, 0x01, 0x3e, 0x11, 0x93, 0xb9, + 0xd1, 0x07, 0x64, 0x43, 0xb0, 0xbc, 0x81, 0x4f, 0xf4, 0x92, 0xdd, 0x6d, 0xd4, 0xd7, 0x01, 0xba, + 0xcb, 0xe9, 0x2c, 0x56, 0x6e, 0x4e, 0xc3, 0x25, 0x23, 0x1d, 0x80, 0x9a, 0x13, 0x30, 0x66, 0xb0, + 0x08, 0xa0, 0x61, 0xa8, 0x67, 0xad, 0x68, 0x11, 0x81, 0x5f, 0x87, 0x11, 0xdf, 0x41, 0xf2, 0x58, + 0xb8, 0x3d, 0xe4, 0xb1, 0x40, 0xd1, 0x74, 0x06, 0xa0, 0xd9, 0x70, 0x59, 0x2c, 0xa2, 0xe6, 0xc9, + 0x86, 0x6b, 0xe1, 0x63, 0x19, 0x8d, 0x37, 0x61, 0x52, 0x2c, 0x2a, 0xc3, 0xa6, 0xfd, 0x42, 0xd4, + 0xd3, 0x83, 0xad, 0x48, 0x0e, 0x55, 0x46, 0xb1, 0x96, 0xf6, 0x2e, 0xcc, 0xa6, 0x45, 0x89, 0xd9, + 0xc4, 0xd6, 0xbd, 0x72, 0xaa, 0x75, 0xaf, 0xbd, 0x03, 0x97, 0x19, 0x64, 0xf3, 0x44, 0x0e, 0x89, + 0x69, 0x9c, 0x1d, 0xfa, 0x43, 0x05, 0x66, 0xd3, 0xd8, 0x42, 0xef, 0x7b, 0x67, 0xb7, 0xd1, 0xfa, + 0x85, 0xa4, 0x95, 0x3e, 0x56, 0x94, 0xe6, 0x14, 0x54, 0x8c, 0x04, 0xae, 0x76, 0x00, 0x73, 0xdf, + 0xf7, 0x5b, 0xb8, 0x8d, 0x03, 0xe4, 0xa4, 0x26, 0x78, 0xfe, 0x7e, 0xda, 0x81, 0x5a, 0xaf, 0xb0, + 0x73, 0xf3, 0xd4, 0x8f, 0x60, 0xae, 0x89, 0x1c, 0xe4, 0x9a, 0xf8, 0x6b, 0xf0, 0xd5, 0x2f, 0x15, + 0xa8, 0xf5, 0xa2, 0x0b, 0xdd, 0x5f, 0x82, 0x51, 0x1e, 0xcf, 0x94, 0xa1, 0xe2, 0x19, 0x67, 0x8a, + 0x85, 0xa1, 0xc2, 0x29, 0xc2, 0x90, 0x76, 0x0d, 0x26, 0x13, 0x47, 0xbd, 0x3a, 0x03, 0xa3, 0x36, + 0xdd, 0xd2, 0x4c, 0x9b, 0xb2, 0xce, 0x1b, 0x9a, 0x0e, 0x55, 0x49, 0x26, 0xad, 0xf2, 0x0a, 0x14, + 0xf7, 0x0e, 0x0f, 0x84, 0xd2, 0xfd, 0x52, 0x93, 0xb5, 0x8e, 0xe3, 0x50, 0x00, 0xdb, 0xdd, 0xa7, + 0xa1, 0x8b, 0x72, 0x6a, 0x6f, 0xc1, 0x54, 0x17, 0x53, 0xd8, 0xe2, 0x45, 0x99, 0x9e, 0x28, 0x43, + 0xa4, 0x27, 0x22, 0x39, 0xd1, 0xfe, 0xac, 0xc0, 0xe4, 0x16, 0x41, 0xa4, 0x13, 0x79, 0xee, 0x7f, + 0x3c, 0x97, 0xea, 0x17, 0x6b, 0x75, 0xa8, 0xc8, 0xf9, 0x08, 0xfb, 0x3c, 0x0e, 0xa5, 0xf0, 0xc4, + 0x35, 0x93, 0x99, 0x28, 0xd0, 0x2e, 0x91, 0x87, 0x3e, 0x0e, 0x25, 0x13, 0x11, 0xb3, 0x65, 0xbb, + 0xfb, 0x46, 0xc7, 0x17, 0x79, 0x34, 0xc8, 0xae, 0x7b, 0xbe, 0xf6, 0x85, 0x02, 0xd3, 0x1c, 0x74, + 0x8b, 0x04, 0x18, 0xb5, 0xff, 0x4f, 0x4c, 0x15, 0xc0, 0x4c, 0x72, 0x56, 0xc2, 0x60, 0xdf, 0x83, + 0x47, 0x1c, 0x44, 0x70, 0x48, 0x8c, 0x03, 0xd7, 0x3b, 0x72, 0x8d, 0x5d, 0xc7, 0x33, 0x0f, 0x92, + 0xe6, 0x9b, 0xe5, 0x04, 0x6f, 0xd0, 0xf1, 0x26, 0x1d, 0xee, 0x9a, 0x32, 0x6e, 0xeb, 0x42, 0xda, + 0xd6, 0xda, 0xa7, 0x45, 0x28, 0xbf, 0xe9, 0x11, 0x1c, 0xc6, 0x6e, 0x0a, 0xb6, 0x6b, 0x3a, 0x1d, + 0x0b, 0x1b, 0xa1, 0x8f, 0xc5, 0x96, 0x9c, 0xd0, 0xcb, 0xa2, 0x73, 0x8b, 0xf6, 0xa9, 0x2b, 0x30, + 0xc1, 0x76, 0x2e, 0x35, 0x70, 0x71, 0xa8, 0x1d, 0x3f, 0x8e, 0xf8, 0x47, 0x6f, 0x6c, 0x1d, 0x39, + 0x63, 0x6c, 0x55, 0xaf, 0x43, 0x95, 0x07, 0x04, 0x83, 0x78, 0x4c, 0x77, 0xab, 0x36, 0xca, 0xe6, + 0x3b, 0xc9, 0xbb, 0xdf, 0xf6, 0xa8, 0xf2, 0xd6, 0xc3, 0xbe, 0x4a, 0xbe, 0x28, 0xc0, 0x65, 0xe6, + 0xb1, 0x35, 0x2f, 0xd8, 0xf6, 0x88, 0xed, 0xee, 0x4b, 0xd7, 0xdd, 0x80, 0x4b, 0x87, 0x1e, 0x41, + 0xbb, 0x0e, 0x36, 0x10, 0x49, 0xae, 0x8f, 0xaa, 0x18, 0x58, 0x21, 0x62, 0x61, 0xf4, 0x98, 0xbf, + 0x78, 0x56, 0xf3, 0x3f, 0xe4, 0x66, 0xfd, 0xa4, 0x08, 0x95, 0xfb, 0x36, 0x71, 0x63, 0x67, 0xe6, + 0x3b, 0x30, 0xe5, 0x7a, 0x04, 0x1b, 0xa6, 0xd7, 0x6e, 0xdb, 0xa4, 0x8d, 0x5d, 0x42, 0xef, 0x0e, + 0xf4, 0x1a, 0xd3, 0xe8, 0x33, 0x23, 0xba, 0x8d, 0xf1, 0x6b, 0x11, 0x9b, 0x5e, 0xa5, 0x38, 0xdd, + 0x76, 0xa8, 0xfe, 0x18, 0xa6, 0x62, 0x89, 0xa4, 0xc1, 0xf2, 0xcd, 0xe2, 0xe9, 0xf3, 0xcd, 0x2a, + 0x49, 0x76, 0x3c, 0xec, 0xce, 0xc0, 0x50, 0x8d, 0x7c, 0x21, 0x82, 0xa0, 0x0e, 0xe5, 0x23, 0xde, + 0x65, 0x58, 0x88, 0xa0, 0x61, 0x8a, 0x36, 0x02, 0x6a, 0x15, 0x11, 0xa4, 0x97, 0x8e, 0xba, 0x0d, + 0xed, 0x1f, 0x0a, 0xcc, 0x8a, 0xc1, 0x15, 0xd7, 0x6a, 0x76, 0x6c, 0xc7, 0x92, 0xbe, 0xcf, 0x72, + 0x90, 0x72, 0x8e, 0x0e, 0xb2, 0x40, 0x45, 0x1d, 0xd2, 0xf2, 0x02, 0xfb, 0x03, 0x76, 0x5f, 0xe6, + 0x93, 0xe2, 0xe9, 0xcf, 0x73, 0x83, 0x48, 0x58, 0x89, 0x73, 0xb3, 0xa9, 0x5d, 0x42, 0xe9, 0x2e, + 0xcd, 0x81, 0xb9, 0x9e, 0xf9, 0x09, 0x7b, 0x9e, 0x7f, 0x0d, 0x4c, 0xfb, 0x7d, 0x11, 0x26, 0x59, + 0x9c, 0x8f, 0x76, 0x50, 0x1d, 0x26, 0xf6, 0x6c, 0x87, 0xe0, 0x00, 0xf3, 0x92, 0xd6, 0x84, 0x1e, + 0xb5, 0xd5, 0x9f, 0xc0, 0x7c, 0xec, 0xa0, 0x31, 0xed, 0x3d, 0xdb, 0x34, 0x2c, 0xec, 0x7a, 0x6d, + 0xdb, 0x15, 0x45, 0x09, 0xbe, 0xd7, 0xfa, 0x5d, 0xfc, 0x56, 0x29, 0x8f, 0xfe, 0x68, 0xf7, 0x7c, + 0x62, 0x50, 0xab, 0x71, 0x24, 0x75, 0x19, 0x1e, 0x91, 0xb2, 0xba, 0x25, 0x0a, 0xbe, 0xd6, 0x42, + 0xb6, 0xef, 0x26, 0xf4, 0x39, 0x41, 0xb0, 0x1a, 0x8d, 0xb3, 0x55, 0x1b, 0xaa, 0x2f, 0x40, 0x4d, + 0xf2, 0x76, 0xdc, 0x5d, 0xcf, 0xb5, 0x68, 0x5a, 0x22, 0x58, 0x47, 0x18, 0xeb, 0xac, 0x18, 0xbf, + 0x27, 0x87, 0x05, 0xe7, 0x75, 0xa8, 0x4a, 0x4e, 0xc7, 0x37, 0xdc, 0x3d, 0x12, 0xb2, 0x03, 0x69, + 0x42, 0x97, 0x27, 0xec, 0x1d, 0xff, 0xcd, 0x3d, 0x12, 0xaa, 0x4b, 0x70, 0x59, 0xd2, 0xf9, 0x81, + 0xe7, 0x7b, 0x21, 0x72, 0x38, 0xf5, 0x18, 0xa3, 0x9e, 0x16, 0x83, 0x9b, 0x62, 0x8c, 0xf1, 0xac, + 0xc0, 0x63, 0x92, 0xe7, 0x90, 0x1d, 0x02, 0x46, 0x80, 0x4d, 0x6c, 0xfb, 0x44, 0xaa, 0x36, 0xce, + 0x78, 0xeb, 0x82, 0x48, 0x1e, 0x14, 0x8c, 0x84, 0xab, 0xa7, 0xdd, 0x81, 0x8a, 0xf4, 0x96, 0x58, + 0x13, 0xcb, 0xc9, 0x2c, 0xfe, 0xea, 0x20, 0x67, 0xba, 0xc8, 0xe1, 0xb5, 0x1a, 0xcc, 0xbe, 0xd6, + 0x42, 0xb6, 0xbb, 0x89, 0x02, 0xd4, 0xc6, 0x04, 0x07, 0x72, 0x11, 0x68, 0x2d, 0x98, 0xeb, 0x19, + 0x11, 0x02, 0xef, 0x02, 0xf8, 0x51, 0x6f, 0x5e, 0x1a, 0xce, 0xca, 0xd0, 0x91, 0xd0, 0x34, 0x54, + 0x0c, 0x40, 0x9b, 0x85, 0x99, 0xb5, 0xbb, 0xab, 0xbd, 0x1a, 0x58, 0x70, 0x39, 0xd5, 0x2f, 0xe4, + 0xbf, 0x91, 0x21, 0xff, 0xe9, 0xaf, 0x96, 0xbf, 0xd6, 0xb6, 0x72, 0xa4, 0xff, 0xad, 0x00, 0x73, + 0xf4, 0x60, 0x6e, 0x9e, 0xc4, 0x22, 0xbf, 0xd8, 0x08, 0xf7, 0xa1, 0x9a, 0x3a, 0x4a, 0xc4, 0x5e, + 0x1f, 0xf6, 0x24, 0xa9, 0x24, 0x4f, 0x92, 0xac, 0xba, 0x73, 0x31, 0xab, 0xee, 0xfc, 0xb0, 0x9f, + 0x08, 0x2e, 0xd4, 0x7a, 0x6d, 0x1b, 0x1d, 0x0d, 0x15, 0x96, 0xee, 0xb1, 0xcc, 0x87, 0xda, 0xa7, + 0xd7, 0x93, 0x49, 0x2d, 0xb6, 0x24, 0x35, 0x85, 0xd4, 0xb1, 0xe9, 0x05, 0x96, 0x3e, 0x19, 0xc6, + 0x3b, 0x99, 0x33, 0xb7, 0x8e, 0x90, 0x9f, 0xe3, 0xcc, 0xf0, 0x08, 0xf9, 0xe7, 0xe0, 0x4c, 0x0a, + 0xf3, 0x0d, 0x74, 0xa6, 0x0e, 0xb5, 0x5e, 0xdb, 0x46, 0xff, 0x3f, 0x46, 0xa8, 0x55, 0x84, 0x0b, + 0xb5, 0x5c, 0x17, 0x1e, 0x21, 0x5f, 0x78, 0x8e, 0xd1, 0x6b, 0x9f, 0x15, 0x60, 0xf6, 0xcd, 0x8e, + 0xe3, 0xd8, 0x7b, 0x36, 0x0e, 0x92, 0x37, 0xe8, 0x35, 0xb8, 0xe8, 0xca, 0x11, 0xe1, 0xa9, 0x85, + 0x3e, 0x66, 0x8a, 0x90, 0xf4, 0x2e, 0xeb, 0x37, 0xc6, 0x3d, 0x8b, 0x30, 0xd7, 0x63, 0x49, 0xe1, + 0x9d, 0x19, 0x18, 0xe5, 0xb7, 0x42, 0x7e, 0x9a, 0xf3, 0x86, 0xf6, 0x91, 0x02, 0xb5, 0x58, 0x56, + 0xb0, 0x8e, 0xc2, 0x56, 0xf7, 0x42, 0x79, 0x1d, 0xca, 0x21, 0x41, 0x41, 0xf2, 0x42, 0xb2, 0x7e, + 0x41, 0x2f, 0xb1, 0x5e, 0x7e, 0x1d, 0xa1, 0xd3, 0xd2, 0x00, 0xb0, 0x6b, 0x25, 0x6e, 0xaa, 0xeb, + 0x8a, 0x7e, 0x11, 0xbb, 0x56, 0x44, 0xd3, 0xac, 0xc2, 0xa4, 0x11, 0x07, 0x6b, 0x4e, 0x42, 0xc9, + 0xe8, 0x72, 0x69, 0xf7, 0x13, 0xff, 0xc0, 0xa4, 0x1e, 0x42, 0xf7, 0x27, 0xa0, 0x9c, 0x71, 0x73, + 0x2e, 0xed, 0xc6, 0xae, 0xcb, 0x73, 0x30, 0x4e, 0x8e, 0x8d, 0x16, 0x0a, 0x5b, 0x4c, 0x81, 0xb2, + 0x3e, 0x46, 0x8e, 0x29, 0x8a, 0x76, 0x3b, 0x31, 0xc1, 0xe6, 0x09, 0xed, 0x94, 0x13, 0x8c, 0x31, + 0x29, 0x09, 0xa6, 0x9d, 0x84, 0x36, 0x92, 0x49, 0x68, 0xf3, 0x0a, 0x14, 0xc8, 0xf1, 0x69, 0xd3, + 0xae, 0x02, 0x39, 0xd6, 0x3e, 0x54, 0x60, 0x3a, 0xd6, 0xf7, 0x5f, 0xb1, 0xf7, 0x2f, 0x14, 0x98, + 0x49, 0xea, 0x70, 0x76, 0x5b, 0x0b, 0xcb, 0x14, 0x4f, 0x6f, 0x99, 0x17, 0xe0, 0xb1, 0x78, 0xfe, + 0x8d, 0x03, 0x9a, 0x5f, 0x12, 0xfb, 0x10, 0xf7, 0xf5, 0xd8, 0xa7, 0x0a, 0xcc, 0xe7, 0xb1, 0x8a, + 0x99, 0xdd, 0x81, 0x22, 0x39, 0x96, 0xe1, 0x69, 0x79, 0xd8, 0xbb, 0x40, 0x0c, 0x90, 0xc2, 0x88, + 0xb9, 0x16, 0x4e, 0x3f, 0xd7, 0xf7, 0x60, 0x52, 0x94, 0x6f, 0x22, 0xfd, 0x4a, 0x2c, 0xd3, 0x08, + 0x58, 0x70, 0x3c, 0xcd, 0x49, 0x08, 0x6e, 0xf4, 0xad, 0xfd, 0x41, 0x81, 0xd9, 0x74, 0xb1, 0xe1, + 0xeb, 0x10, 0x74, 0xce, 0xbf, 0x92, 0xb4, 0x7f, 0x17, 0x61, 0x3a, 0x43, 0x64, 0x56, 0x1e, 0xa6, + 0x9c, 0x4b, 0x1e, 0xf6, 0x5d, 0x18, 0x61, 0x99, 0x07, 0xd7, 0xfb, 0xc9, 0x7e, 0xc7, 0x0b, 0xd5, + 0x88, 0x31, 0x7c, 0x0d, 0x85, 0x98, 0xc4, 0x71, 0x37, 0x72, 0xfa, 0xe3, 0xee, 0x1a, 0x54, 0xf8, + 0xee, 0x35, 0xcc, 0x00, 0x23, 0x82, 0xa3, 0x72, 0x1a, 0xef, 0x7d, 0x8d, 0x77, 0xd2, 0x78, 0x23, + 0xc8, 0xf8, 0xc9, 0x30, 0x26, 0xe3, 0x0d, 0xef, 0x65, 0x05, 0x43, 0x1a, 0x6f, 0xea, 0x30, 0xe1, + 0x7b, 0xa1, 0xcd, 0x8e, 0xcd, 0x71, 0x06, 0x14, 0xb5, 0xd5, 0x57, 0x61, 0x2c, 0xf4, 0x3a, 0x81, + 0x89, 0x6b, 0x13, 0xd9, 0xfa, 0x26, 0x73, 0x70, 0x6a, 0xbe, 0x2d, 0x46, 0xaf, 0x0b, 0x3e, 0x16, + 0xa9, 0xe2, 0x6a, 0x68, 0x7f, 0x2f, 0x02, 0x74, 0x93, 0x84, 0xac, 0x9c, 0x4d, 0x39, 0x97, 0x9c, + 0xed, 0x65, 0x91, 0xaf, 0x70, 0xc7, 0x7f, 0x3b, 0x85, 0x66, 0xe1, 0xe3, 0x64, 0xce, 0xb2, 0xe9, + 0x20, 0xdb, 0x25, 0xf8, 0x98, 0xf0, 0xb4, 0x25, 0x61, 0x95, 0x62, 0xca, 0x2a, 0xe7, 0xe5, 0xc8, + 0x4d, 0x28, 0xf1, 0x47, 0x0a, 0xbc, 0xc8, 0x30, 0x9a, 0x19, 0x6d, 0x12, 0x9a, 0x36, 0x11, 0x31, + 0x5b, 0x54, 0x5d, 0xfe, 0xe3, 0x9d, 0x95, 0x17, 0xc0, 0x8b, 0xbe, 0xd5, 0x1b, 0xdd, 0xa5, 0xe1, + 0x20, 0xbb, 0x8d, 0xad, 0xc8, 0xeb, 0x72, 0x71, 0xf0, 0x6e, 0x9e, 0xae, 0x48, 0xdf, 0x8e, 0x9f, + 0xd2, 0xb7, 0x97, 0xa0, 0x6a, 0x24, 0xc5, 0x2d, 0xfd, 0x65, 0x1a, 0xa6, 0x69, 0x7e, 0xb3, 0x19, + 0x78, 0xc4, 0x33, 0x3d, 0x67, 0x0b, 0x07, 0x87, 0xb6, 0x89, 0xd5, 0xfb, 0x30, 0xc6, 0x33, 0x16, + 0x35, 0x37, 0x2d, 0x4a, 0xe4, 0x86, 0xf5, 0xeb, 0xfd, 0xc8, 0x44, 0xb4, 0x3b, 0x80, 0x72, 0xbc, + 0x36, 0xaf, 0x3e, 0xfd, 0xd5, 0x7c, 0x89, 0xff, 0x12, 0xf5, 0xef, 0x0c, 0x46, 0xcc, 0x45, 0xdd, + 0x54, 0xd4, 0x6d, 0x18, 0x65, 0x41, 0x57, 0xbd, 0x9a, 0xc7, 0x18, 0x2f, 0xd9, 0xd7, 0xaf, 0xf5, + 0xa1, 0x8a, 0x70, 0xdf, 0x87, 0x4a, 0x32, 0x98, 0xab, 0xcf, 0x7c, 0x25, 0x6b, 0xba, 0xc2, 0x5c, + 0x6f, 0x0c, 0x4a, 0x1e, 0x89, 0x7c, 0x17, 0xc6, 0x45, 0x05, 0x4a, 0xcd, 0x35, 0x75, 0xb2, 0xec, + 0x5a, 0x7f, 0xaa, 0x2f, 0x9d, 0xf0, 0x49, 0x10, 0x55, 0x09, 0x65, 0x75, 0x4b, 0x6d, 0xf4, 0xe1, + 0x4d, 0x95, 0xf9, 0xea, 0x8b, 0x03, 0xd3, 0x0b, 0x99, 0xef, 0xc0, 0x18, 0x2f, 0x9a, 0xe4, 0x2f, + 0xb0, 0x44, 0x09, 0x2c, 0x7f, 0x81, 0x25, 0x6b, 0x2f, 0x37, 0x15, 0x3a, 0x9d, 0x54, 0x71, 0x23, + 0x7f, 0x3a, 0xd9, 0xa5, 0x96, 0xfc, 0xe9, 0xe4, 0x15, 0x60, 0x1c, 0x98, 0x4c, 0x54, 0x46, 0xd4, + 0xdc, 0xa5, 0x9a, 0x55, 0x58, 0xa9, 0x3f, 0x33, 0x20, 0xb5, 0x90, 0xe6, 0x41, 0x25, 0xf9, 0x4a, + 0x21, 0x7f, 0xfd, 0x65, 0x3e, 0x9c, 0xc8, 0x5f, 0x7f, 0x39, 0x8f, 0x1f, 0x3c, 0xa8, 0x24, 0x9f, + 0x17, 0xe4, 0x0b, 0xcc, 0x7c, 0xe2, 0x90, 0x2f, 0x30, 0xe7, 0xd5, 0x42, 0x07, 0xa6, 0xd2, 0xff, + 0xf7, 0xd5, 0x5c, 0xa7, 0xe4, 0x3c, 0x3b, 0xa8, 0xdf, 0x1c, 0x9c, 0x41, 0x88, 0x3d, 0x82, 0xa9, + 0xf4, 0xaf, 0xf9, 0x7c, 0xb1, 0x39, 0x4f, 0x04, 0xf2, 0xc5, 0xe6, 0xfd, 0xf5, 0xbf, 0xa9, 0xd0, + 0xf9, 0xa6, 0xcb, 0x32, 0xf9, 0x82, 0x73, 0x8a, 0x63, 0xf9, 0x82, 0x73, 0x2b, 0x3e, 0x1d, 0x98, + 0x4a, 0x17, 0x10, 0xf2, 0xc5, 0xe6, 0x94, 0x71, 0xf2, 0xc5, 0xe6, 0xd6, 0x26, 0x02, 0xa8, 0xa6, + 0x2e, 0xc6, 0xf9, 0x3b, 0x34, 0xbb, 0x16, 0x91, 0xbf, 0x43, 0xf3, 0x6e, 0xdc, 0x1f, 0xc0, 0xa5, + 0x9e, 0x2b, 0xad, 0x7a, 0x73, 0x80, 0x87, 0x7a, 0x89, 0x5b, 0x78, 0xfd, 0xd6, 0x10, 0x1c, 0x91, + 0x77, 0x8f, 0x13, 0xb2, 0xf9, 0x05, 0x76, 0x20, 0xd9, 0x89, 0x0b, 0xf2, 0x40, 0xb2, 0x53, 0xb7, + 0xe3, 0x03, 0x28, 0xc7, 0xef, 0x95, 0xf9, 0xc7, 0x6d, 0xc6, 0x0d, 0x38, 0xff, 0xb8, 0xcd, 0xba, + 0xaa, 0xde, 0x54, 0xd4, 0x9f, 0x29, 0x30, 0x9b, 0x7d, 0x49, 0x53, 0x9f, 0x1b, 0xe4, 0x45, 0x64, + 0xcf, 0x05, 0xb3, 0xfe, 0xfc, 0xb0, 0x6c, 0x62, 0xda, 0x3f, 0x05, 0xb5, 0xf7, 0x61, 0x9a, 0x7a, + 0x6b, 0xe8, 0x67, 0x99, 0xf5, 0xa5, 0x61, 0x58, 0x84, 0xf0, 0x0f, 0x15, 0x98, 0xc9, 0x7a, 0x9a, + 0xac, 0xde, 0xce, 0x0d, 0x0c, 0xf9, 0x6f, 0xac, 0xeb, 0xcf, 0x0e, 0xc7, 0xc4, 0x75, 0x58, 0xf2, + 0xbb, 0x6f, 0x74, 0x64, 0x4a, 0xf7, 0x1e, 0x4c, 0xc8, 0x2e, 0xf5, 0xa9, 0x7e, 0xb5, 0x2e, 0x29, + 0x7d, 0xa1, 0x3f, 0x21, 0x97, 0xd8, 0xfc, 0xa4, 0xf0, 0xd9, 0x83, 0x79, 0xe5, 0xf3, 0x07, 0xf3, + 0xca, 0x3f, 0x1f, 0xcc, 0x2b, 0x3f, 0xff, 0x72, 0xfe, 0xc2, 0xe7, 0x5f, 0xce, 0x5f, 0xf8, 0xeb, + 0x97, 0xf3, 0x17, 0xa0, 0x6e, 0x7a, 0xed, 0x1c, 0x9c, 0xe6, 0xc5, 0x28, 0xfb, 0xdc, 0x54, 0xde, + 0x7d, 0x6b, 0xdf, 0x26, 0xad, 0xce, 0x6e, 0xc3, 0xf4, 0xda, 0x8b, 0xa6, 0x17, 0xb6, 0xbd, 0x70, + 0x31, 0xc0, 0x0e, 0x3a, 0xc1, 0xc1, 0xe2, 0xe1, 0x52, 0xf4, 0xc9, 0x12, 0xdd, 0x70, 0x31, 0xfb, + 0xb9, 0xfe, 0x8b, 0xb4, 0x25, 0x1b, 0xbf, 0x29, 0x14, 0x37, 0xb7, 0x7f, 0xf8, 0xbb, 0xc2, 0xec, + 0xa6, 0x14, 0x4e, 0xa5, 0x35, 0xb6, 0xc5, 0xf0, 0x9f, 0xba, 0x03, 0x3b, 0x74, 0x60, 0x47, 0x0e, + 0x3c, 0x28, 0x68, 0xd9, 0x03, 0x3b, 0xaf, 0x6f, 0x36, 0xef, 0x62, 0x82, 0x68, 0xfe, 0xff, 0xaf, + 0x42, 0x4d, 0x12, 0x2d, 0x2f, 0x53, 0xaa, 0xe5, 0x65, 0x49, 0xb6, 0x3b, 0xc6, 0xde, 0xcf, 0xdf, + 0xfe, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xe5, 0x09, 0xfc, 0x54, 0x30, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// ViewProtocolServiceClient is the client API for ViewProtocolService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ViewProtocolServiceClient interface { + // Get current status of chain sync + Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) + // Stream sync status updates until the view service has caught up with the core.chain.v1alpha1. + StatusStream(ctx context.Context, in *StatusStreamRequest, opts ...grpc.CallOption) (ViewProtocolService_StatusStreamClient, error) + // Queries for notes that have been accepted by the core.chain.v1alpha1. + Notes(ctx context.Context, in *NotesRequest, opts ...grpc.CallOption) (ViewProtocolService_NotesClient, error) + NotesForVoting(ctx context.Context, in *NotesForVotingRequest, opts ...grpc.CallOption) (ViewProtocolService_NotesForVotingClient, error) + // Returns authentication paths for the given note commitments. + // + // This method takes a batch of input commitments, rather than just one, so + // that the client can get a consistent set of authentication paths to a + // common root. (Otherwise, if a client made multiple requests, the wallet + // service could have advanced the state commitment tree state between queries). + Witness(ctx context.Context, in *WitnessRequest, opts ...grpc.CallOption) (*WitnessResponse, error) + WitnessAndBuild(ctx context.Context, in *WitnessAndBuildRequest, opts ...grpc.CallOption) (*WitnessAndBuildResponse, error) + // Queries for assets. + Assets(ctx context.Context, in *AssetsRequest, opts ...grpc.CallOption) (ViewProtocolService_AssetsClient, error) + // Query for the current chain parameters. + ChainParameters(ctx context.Context, in *ChainParametersRequest, opts ...grpc.CallOption) (*ChainParametersResponse, error) + // Query for the current FMD parameters. + FMDParameters(ctx context.Context, in *FMDParametersRequest, opts ...grpc.CallOption) (*FMDParametersResponse, error) + // Query for an address given an address index + AddressByIndex(ctx context.Context, in *AddressByIndexRequest, opts ...grpc.CallOption) (*AddressByIndexResponse, error) + // Query for an address given an address index + IndexByAddress(ctx context.Context, in *IndexByAddressRequest, opts ...grpc.CallOption) (*IndexByAddressResponse, error) + // Query for an ephemeral address + EphemeralAddress(ctx context.Context, in *EphemeralAddressRequest, opts ...grpc.CallOption) (*EphemeralAddressResponse, error) + // Query for balance of a given address + BalanceByAddress(ctx context.Context, in *BalanceByAddressRequest, opts ...grpc.CallOption) (ViewProtocolService_BalanceByAddressClient, error) + // Query for a note by its note commitment, optionally waiting until the note is detected. + NoteByCommitment(ctx context.Context, in *NoteByCommitmentRequest, opts ...grpc.CallOption) (*NoteByCommitmentResponse, error) + // Query for a swap by its swap commitment, optionally waiting until the swap is detected. + SwapByCommitment(ctx context.Context, in *SwapByCommitmentRequest, opts ...grpc.CallOption) (*SwapByCommitmentResponse, error) + // Query for whether a nullifier has been spent, optionally waiting until it is spent. + NullifierStatus(ctx context.Context, in *NullifierStatusRequest, opts ...grpc.CallOption) (*NullifierStatusResponse, error) + // Query for the transaction hashes in the given range of blocks. + TransactionHashes(ctx context.Context, in *TransactionHashesRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionHashesClient, error) + // Query for a given transaction hash. + TransactionByHash(ctx context.Context, in *TransactionByHashRequest, opts ...grpc.CallOption) (*TransactionByHashResponse, error) + // Query for the full transactions in the given range of blocks. + Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionsClient, error) + // Query for the transaction perspective of the given transaction + TransactionPerspective(ctx context.Context, in *TransactionPerspectiveRequest, opts ...grpc.CallOption) (*TransactionPerspectiveResponse, error) + // Query for a transaction plan + TransactionPlanner(ctx context.Context, in *TransactionPlannerRequest, opts ...grpc.CallOption) (*TransactionPlannerResponse, error) + // Broadcast a transaction to the network, optionally waiting for full confirmation. + BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) +} + +type viewProtocolServiceClient struct { + cc grpc1.ClientConn +} + +func NewViewProtocolServiceClient(cc grpc1.ClientConn) ViewProtocolServiceClient { + return &viewProtocolServiceClient{cc} +} + +func (c *viewProtocolServiceClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) { + out := new(StatusResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/Status", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) StatusStream(ctx context.Context, in *StatusStreamRequest, opts ...grpc.CallOption) (ViewProtocolService_StatusStreamClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[0], "/penumbra.view.v1alpha1.ViewProtocolService/StatusStream", opts...) + if err != nil { + return nil, err + } + x := &viewProtocolServiceStatusStreamClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ViewProtocolService_StatusStreamClient interface { + Recv() (*StatusStreamResponse, error) + grpc.ClientStream +} + +type viewProtocolServiceStatusStreamClient struct { + grpc.ClientStream +} + +func (x *viewProtocolServiceStatusStreamClient) Recv() (*StatusStreamResponse, error) { + m := new(StatusStreamResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *viewProtocolServiceClient) Notes(ctx context.Context, in *NotesRequest, opts ...grpc.CallOption) (ViewProtocolService_NotesClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[1], "/penumbra.view.v1alpha1.ViewProtocolService/Notes", opts...) + if err != nil { + return nil, err + } + x := &viewProtocolServiceNotesClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ViewProtocolService_NotesClient interface { + Recv() (*NotesResponse, error) + grpc.ClientStream +} + +type viewProtocolServiceNotesClient struct { + grpc.ClientStream +} + +func (x *viewProtocolServiceNotesClient) Recv() (*NotesResponse, error) { + m := new(NotesResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *viewProtocolServiceClient) NotesForVoting(ctx context.Context, in *NotesForVotingRequest, opts ...grpc.CallOption) (ViewProtocolService_NotesForVotingClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[2], "/penumbra.view.v1alpha1.ViewProtocolService/NotesForVoting", opts...) + if err != nil { + return nil, err + } + x := &viewProtocolServiceNotesForVotingClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ViewProtocolService_NotesForVotingClient interface { + Recv() (*NotesForVotingResponse, error) + grpc.ClientStream +} + +type viewProtocolServiceNotesForVotingClient struct { + grpc.ClientStream +} + +func (x *viewProtocolServiceNotesForVotingClient) Recv() (*NotesForVotingResponse, error) { + m := new(NotesForVotingResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *viewProtocolServiceClient) Witness(ctx context.Context, in *WitnessRequest, opts ...grpc.CallOption) (*WitnessResponse, error) { + out := new(WitnessResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/Witness", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) WitnessAndBuild(ctx context.Context, in *WitnessAndBuildRequest, opts ...grpc.CallOption) (*WitnessAndBuildResponse, error) { + out := new(WitnessAndBuildResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/WitnessAndBuild", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) Assets(ctx context.Context, in *AssetsRequest, opts ...grpc.CallOption) (ViewProtocolService_AssetsClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[3], "/penumbra.view.v1alpha1.ViewProtocolService/Assets", opts...) + if err != nil { + return nil, err + } + x := &viewProtocolServiceAssetsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ViewProtocolService_AssetsClient interface { + Recv() (*AssetsResponse, error) + grpc.ClientStream +} + +type viewProtocolServiceAssetsClient struct { + grpc.ClientStream +} + +func (x *viewProtocolServiceAssetsClient) Recv() (*AssetsResponse, error) { + m := new(AssetsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *viewProtocolServiceClient) ChainParameters(ctx context.Context, in *ChainParametersRequest, opts ...grpc.CallOption) (*ChainParametersResponse, error) { + out := new(ChainParametersResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/ChainParameters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) FMDParameters(ctx context.Context, in *FMDParametersRequest, opts ...grpc.CallOption) (*FMDParametersResponse, error) { + out := new(FMDParametersResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/FMDParameters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) AddressByIndex(ctx context.Context, in *AddressByIndexRequest, opts ...grpc.CallOption) (*AddressByIndexResponse, error) { + out := new(AddressByIndexResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/AddressByIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) IndexByAddress(ctx context.Context, in *IndexByAddressRequest, opts ...grpc.CallOption) (*IndexByAddressResponse, error) { + out := new(IndexByAddressResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/IndexByAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) EphemeralAddress(ctx context.Context, in *EphemeralAddressRequest, opts ...grpc.CallOption) (*EphemeralAddressResponse, error) { + out := new(EphemeralAddressResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/EphemeralAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) BalanceByAddress(ctx context.Context, in *BalanceByAddressRequest, opts ...grpc.CallOption) (ViewProtocolService_BalanceByAddressClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[4], "/penumbra.view.v1alpha1.ViewProtocolService/BalanceByAddress", opts...) + if err != nil { + return nil, err + } + x := &viewProtocolServiceBalanceByAddressClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ViewProtocolService_BalanceByAddressClient interface { + Recv() (*BalanceByAddressResponse, error) + grpc.ClientStream +} + +type viewProtocolServiceBalanceByAddressClient struct { + grpc.ClientStream +} + +func (x *viewProtocolServiceBalanceByAddressClient) Recv() (*BalanceByAddressResponse, error) { + m := new(BalanceByAddressResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *viewProtocolServiceClient) NoteByCommitment(ctx context.Context, in *NoteByCommitmentRequest, opts ...grpc.CallOption) (*NoteByCommitmentResponse, error) { + out := new(NoteByCommitmentResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/NoteByCommitment", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) SwapByCommitment(ctx context.Context, in *SwapByCommitmentRequest, opts ...grpc.CallOption) (*SwapByCommitmentResponse, error) { + out := new(SwapByCommitmentResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/SwapByCommitment", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) NullifierStatus(ctx context.Context, in *NullifierStatusRequest, opts ...grpc.CallOption) (*NullifierStatusResponse, error) { + out := new(NullifierStatusResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/NullifierStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) TransactionHashes(ctx context.Context, in *TransactionHashesRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionHashesClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[5], "/penumbra.view.v1alpha1.ViewProtocolService/TransactionHashes", opts...) + if err != nil { + return nil, err + } + x := &viewProtocolServiceTransactionHashesClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ViewProtocolService_TransactionHashesClient interface { + Recv() (*TransactionHashesResponse, error) + grpc.ClientStream +} + +type viewProtocolServiceTransactionHashesClient struct { + grpc.ClientStream +} + +func (x *viewProtocolServiceTransactionHashesClient) Recv() (*TransactionHashesResponse, error) { + m := new(TransactionHashesResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *viewProtocolServiceClient) TransactionByHash(ctx context.Context, in *TransactionByHashRequest, opts ...grpc.CallOption) (*TransactionByHashResponse, error) { + out := new(TransactionByHashResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionByHash", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionsClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[6], "/penumbra.view.v1alpha1.ViewProtocolService/Transactions", opts...) + if err != nil { + return nil, err + } + x := &viewProtocolServiceTransactionsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ViewProtocolService_TransactionsClient interface { + Recv() (*TransactionsResponse, error) + grpc.ClientStream +} + +type viewProtocolServiceTransactionsClient struct { + grpc.ClientStream +} + +func (x *viewProtocolServiceTransactionsClient) Recv() (*TransactionsResponse, error) { + m := new(TransactionsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *viewProtocolServiceClient) TransactionPerspective(ctx context.Context, in *TransactionPerspectiveRequest, opts ...grpc.CallOption) (*TransactionPerspectiveResponse, error) { + out := new(TransactionPerspectiveResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPerspective", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) TransactionPlanner(ctx context.Context, in *TransactionPlannerRequest, opts ...grpc.CallOption) (*TransactionPlannerResponse, error) { + out := new(TransactionPlannerResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPlanner", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) { + out := new(BroadcastTransactionResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/BroadcastTransaction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ViewProtocolServiceServer is the server API for ViewProtocolService service. +type ViewProtocolServiceServer interface { + // Get current status of chain sync + Status(context.Context, *StatusRequest) (*StatusResponse, error) + // Stream sync status updates until the view service has caught up with the core.chain.v1alpha1. + StatusStream(*StatusStreamRequest, ViewProtocolService_StatusStreamServer) error + // Queries for notes that have been accepted by the core.chain.v1alpha1. + Notes(*NotesRequest, ViewProtocolService_NotesServer) error + NotesForVoting(*NotesForVotingRequest, ViewProtocolService_NotesForVotingServer) error + // Returns authentication paths for the given note commitments. + // + // This method takes a batch of input commitments, rather than just one, so + // that the client can get a consistent set of authentication paths to a + // common root. (Otherwise, if a client made multiple requests, the wallet + // service could have advanced the state commitment tree state between queries). + Witness(context.Context, *WitnessRequest) (*WitnessResponse, error) + WitnessAndBuild(context.Context, *WitnessAndBuildRequest) (*WitnessAndBuildResponse, error) + // Queries for assets. + Assets(*AssetsRequest, ViewProtocolService_AssetsServer) error + // Query for the current chain parameters. + ChainParameters(context.Context, *ChainParametersRequest) (*ChainParametersResponse, error) + // Query for the current FMD parameters. + FMDParameters(context.Context, *FMDParametersRequest) (*FMDParametersResponse, error) + // Query for an address given an address index + AddressByIndex(context.Context, *AddressByIndexRequest) (*AddressByIndexResponse, error) + // Query for an address given an address index + IndexByAddress(context.Context, *IndexByAddressRequest) (*IndexByAddressResponse, error) + // Query for an ephemeral address + EphemeralAddress(context.Context, *EphemeralAddressRequest) (*EphemeralAddressResponse, error) + // Query for balance of a given address + BalanceByAddress(*BalanceByAddressRequest, ViewProtocolService_BalanceByAddressServer) error + // Query for a note by its note commitment, optionally waiting until the note is detected. + NoteByCommitment(context.Context, *NoteByCommitmentRequest) (*NoteByCommitmentResponse, error) + // Query for a swap by its swap commitment, optionally waiting until the swap is detected. + SwapByCommitment(context.Context, *SwapByCommitmentRequest) (*SwapByCommitmentResponse, error) + // Query for whether a nullifier has been spent, optionally waiting until it is spent. + NullifierStatus(context.Context, *NullifierStatusRequest) (*NullifierStatusResponse, error) + // Query for the transaction hashes in the given range of blocks. + TransactionHashes(*TransactionHashesRequest, ViewProtocolService_TransactionHashesServer) error + // Query for a given transaction hash. + TransactionByHash(context.Context, *TransactionByHashRequest) (*TransactionByHashResponse, error) + // Query for the full transactions in the given range of blocks. + Transactions(*TransactionsRequest, ViewProtocolService_TransactionsServer) error + // Query for the transaction perspective of the given transaction + TransactionPerspective(context.Context, *TransactionPerspectiveRequest) (*TransactionPerspectiveResponse, error) + // Query for a transaction plan + TransactionPlanner(context.Context, *TransactionPlannerRequest) (*TransactionPlannerResponse, error) + // Broadcast a transaction to the network, optionally waiting for full confirmation. + BroadcastTransaction(context.Context, *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error) +} + +// UnimplementedViewProtocolServiceServer can be embedded to have forward compatible implementations. +type UnimplementedViewProtocolServiceServer struct { +} + +func (*UnimplementedViewProtocolServiceServer) Status(ctx context.Context, req *StatusRequest) (*StatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Status not implemented") +} +func (*UnimplementedViewProtocolServiceServer) StatusStream(req *StatusStreamRequest, srv ViewProtocolService_StatusStreamServer) error { + return status.Errorf(codes.Unimplemented, "method StatusStream not implemented") +} +func (*UnimplementedViewProtocolServiceServer) Notes(req *NotesRequest, srv ViewProtocolService_NotesServer) error { + return status.Errorf(codes.Unimplemented, "method Notes not implemented") +} +func (*UnimplementedViewProtocolServiceServer) NotesForVoting(req *NotesForVotingRequest, srv ViewProtocolService_NotesForVotingServer) error { + return status.Errorf(codes.Unimplemented, "method NotesForVoting not implemented") +} +func (*UnimplementedViewProtocolServiceServer) Witness(ctx context.Context, req *WitnessRequest) (*WitnessResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Witness not implemented") +} +func (*UnimplementedViewProtocolServiceServer) WitnessAndBuild(ctx context.Context, req *WitnessAndBuildRequest) (*WitnessAndBuildResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WitnessAndBuild not implemented") +} +func (*UnimplementedViewProtocolServiceServer) Assets(req *AssetsRequest, srv ViewProtocolService_AssetsServer) error { + return status.Errorf(codes.Unimplemented, "method Assets not implemented") +} +func (*UnimplementedViewProtocolServiceServer) ChainParameters(ctx context.Context, req *ChainParametersRequest) (*ChainParametersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChainParameters not implemented") +} +func (*UnimplementedViewProtocolServiceServer) FMDParameters(ctx context.Context, req *FMDParametersRequest) (*FMDParametersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FMDParameters not implemented") +} +func (*UnimplementedViewProtocolServiceServer) AddressByIndex(ctx context.Context, req *AddressByIndexRequest) (*AddressByIndexResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddressByIndex not implemented") +} +func (*UnimplementedViewProtocolServiceServer) IndexByAddress(ctx context.Context, req *IndexByAddressRequest) (*IndexByAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IndexByAddress not implemented") +} +func (*UnimplementedViewProtocolServiceServer) EphemeralAddress(ctx context.Context, req *EphemeralAddressRequest) (*EphemeralAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EphemeralAddress not implemented") +} +func (*UnimplementedViewProtocolServiceServer) BalanceByAddress(req *BalanceByAddressRequest, srv ViewProtocolService_BalanceByAddressServer) error { + return status.Errorf(codes.Unimplemented, "method BalanceByAddress not implemented") +} +func (*UnimplementedViewProtocolServiceServer) NoteByCommitment(ctx context.Context, req *NoteByCommitmentRequest) (*NoteByCommitmentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NoteByCommitment not implemented") +} +func (*UnimplementedViewProtocolServiceServer) SwapByCommitment(ctx context.Context, req *SwapByCommitmentRequest) (*SwapByCommitmentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SwapByCommitment not implemented") +} +func (*UnimplementedViewProtocolServiceServer) NullifierStatus(ctx context.Context, req *NullifierStatusRequest) (*NullifierStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NullifierStatus not implemented") +} +func (*UnimplementedViewProtocolServiceServer) TransactionHashes(req *TransactionHashesRequest, srv ViewProtocolService_TransactionHashesServer) error { + return status.Errorf(codes.Unimplemented, "method TransactionHashes not implemented") +} +func (*UnimplementedViewProtocolServiceServer) TransactionByHash(ctx context.Context, req *TransactionByHashRequest) (*TransactionByHashResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TransactionByHash not implemented") +} +func (*UnimplementedViewProtocolServiceServer) Transactions(req *TransactionsRequest, srv ViewProtocolService_TransactionsServer) error { + return status.Errorf(codes.Unimplemented, "method Transactions not implemented") +} +func (*UnimplementedViewProtocolServiceServer) TransactionPerspective(ctx context.Context, req *TransactionPerspectiveRequest) (*TransactionPerspectiveResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TransactionPerspective not implemented") +} +func (*UnimplementedViewProtocolServiceServer) TransactionPlanner(ctx context.Context, req *TransactionPlannerRequest) (*TransactionPlannerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TransactionPlanner not implemented") +} +func (*UnimplementedViewProtocolServiceServer) BroadcastTransaction(ctx context.Context, req *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BroadcastTransaction not implemented") +} + +func RegisterViewProtocolServiceServer(s grpc1.Server, srv ViewProtocolServiceServer) { + s.RegisterService(&_ViewProtocolService_serviceDesc, srv) +} + +func _ViewProtocolService_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).Status(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/Status", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).Status(ctx, req.(*StatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_StatusStream_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StatusStreamRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).StatusStream(m, &viewProtocolServiceStatusStreamServer{stream}) +} + +type ViewProtocolService_StatusStreamServer interface { + Send(*StatusStreamResponse) error + grpc.ServerStream +} + +type viewProtocolServiceStatusStreamServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceStatusStreamServer) Send(m *StatusStreamResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_Notes_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(NotesRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).Notes(m, &viewProtocolServiceNotesServer{stream}) +} + +type ViewProtocolService_NotesServer interface { + Send(*NotesResponse) error + grpc.ServerStream +} + +type viewProtocolServiceNotesServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceNotesServer) Send(m *NotesResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_NotesForVoting_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(NotesForVotingRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).NotesForVoting(m, &viewProtocolServiceNotesForVotingServer{stream}) +} + +type ViewProtocolService_NotesForVotingServer interface { + Send(*NotesForVotingResponse) error + grpc.ServerStream +} + +type viewProtocolServiceNotesForVotingServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceNotesForVotingServer) Send(m *NotesForVotingResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_Witness_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WitnessRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).Witness(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/Witness", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).Witness(ctx, req.(*WitnessRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_WitnessAndBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WitnessAndBuildRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).WitnessAndBuild(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/WitnessAndBuild", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).WitnessAndBuild(ctx, req.(*WitnessAndBuildRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_Assets_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(AssetsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).Assets(m, &viewProtocolServiceAssetsServer{stream}) +} + +type ViewProtocolService_AssetsServer interface { + Send(*AssetsResponse) error + grpc.ServerStream +} + +type viewProtocolServiceAssetsServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceAssetsServer) Send(m *AssetsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_ChainParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChainParametersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).ChainParameters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/ChainParameters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).ChainParameters(ctx, req.(*ChainParametersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_FMDParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FMDParametersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).FMDParameters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/FMDParameters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).FMDParameters(ctx, req.(*FMDParametersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_AddressByIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddressByIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).AddressByIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/AddressByIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).AddressByIndex(ctx, req.(*AddressByIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_IndexByAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IndexByAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).IndexByAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/IndexByAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).IndexByAddress(ctx, req.(*IndexByAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_EphemeralAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EphemeralAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).EphemeralAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/EphemeralAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).EphemeralAddress(ctx, req.(*EphemeralAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_BalanceByAddress_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(BalanceByAddressRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).BalanceByAddress(m, &viewProtocolServiceBalanceByAddressServer{stream}) +} + +type ViewProtocolService_BalanceByAddressServer interface { + Send(*BalanceByAddressResponse) error + grpc.ServerStream +} + +type viewProtocolServiceBalanceByAddressServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceBalanceByAddressServer) Send(m *BalanceByAddressResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_NoteByCommitment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NoteByCommitmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).NoteByCommitment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/NoteByCommitment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).NoteByCommitment(ctx, req.(*NoteByCommitmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_SwapByCommitment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SwapByCommitmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).SwapByCommitment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/SwapByCommitment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).SwapByCommitment(ctx, req.(*SwapByCommitmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_NullifierStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NullifierStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).NullifierStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/NullifierStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).NullifierStatus(ctx, req.(*NullifierStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_TransactionHashes_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(TransactionHashesRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).TransactionHashes(m, &viewProtocolServiceTransactionHashesServer{stream}) +} + +type ViewProtocolService_TransactionHashesServer interface { + Send(*TransactionHashesResponse) error + grpc.ServerStream +} + +type viewProtocolServiceTransactionHashesServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceTransactionHashesServer) Send(m *TransactionHashesResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_TransactionByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransactionByHashRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).TransactionByHash(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionByHash", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).TransactionByHash(ctx, req.(*TransactionByHashRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_Transactions_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(TransactionsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).Transactions(m, &viewProtocolServiceTransactionsServer{stream}) +} + +type ViewProtocolService_TransactionsServer interface { + Send(*TransactionsResponse) error + grpc.ServerStream +} + +type viewProtocolServiceTransactionsServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceTransactionsServer) Send(m *TransactionsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_TransactionPerspective_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransactionPerspectiveRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).TransactionPerspective(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPerspective", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).TransactionPerspective(ctx, req.(*TransactionPerspectiveRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_TransactionPlanner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransactionPlannerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).TransactionPlanner(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPlanner", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).TransactionPlanner(ctx, req.(*TransactionPlannerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewProtocolService_BroadcastTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BroadcastTransactionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewProtocolServiceServer).BroadcastTransaction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/BroadcastTransaction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewProtocolServiceServer).BroadcastTransaction(ctx, req.(*BroadcastTransactionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ViewProtocolService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "penumbra.view.v1alpha1.ViewProtocolService", + HandlerType: (*ViewProtocolServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Status", + Handler: _ViewProtocolService_Status_Handler, + }, + { + MethodName: "Witness", + Handler: _ViewProtocolService_Witness_Handler, + }, + { + MethodName: "WitnessAndBuild", + Handler: _ViewProtocolService_WitnessAndBuild_Handler, + }, + { + MethodName: "ChainParameters", + Handler: _ViewProtocolService_ChainParameters_Handler, + }, + { + MethodName: "FMDParameters", + Handler: _ViewProtocolService_FMDParameters_Handler, + }, + { + MethodName: "AddressByIndex", + Handler: _ViewProtocolService_AddressByIndex_Handler, + }, + { + MethodName: "IndexByAddress", + Handler: _ViewProtocolService_IndexByAddress_Handler, + }, + { + MethodName: "EphemeralAddress", + Handler: _ViewProtocolService_EphemeralAddress_Handler, + }, + { + MethodName: "NoteByCommitment", + Handler: _ViewProtocolService_NoteByCommitment_Handler, + }, + { + MethodName: "SwapByCommitment", + Handler: _ViewProtocolService_SwapByCommitment_Handler, + }, + { + MethodName: "NullifierStatus", + Handler: _ViewProtocolService_NullifierStatus_Handler, + }, + { + MethodName: "TransactionByHash", + Handler: _ViewProtocolService_TransactionByHash_Handler, + }, + { + MethodName: "TransactionPerspective", + Handler: _ViewProtocolService_TransactionPerspective_Handler, + }, + { + MethodName: "TransactionPlanner", + Handler: _ViewProtocolService_TransactionPlanner_Handler, + }, + { + MethodName: "BroadcastTransaction", + Handler: _ViewProtocolService_BroadcastTransaction_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "StatusStream", + Handler: _ViewProtocolService_StatusStream_Handler, + ServerStreams: true, + }, + { + StreamName: "Notes", + Handler: _ViewProtocolService_Notes_Handler, + ServerStreams: true, + }, + { + StreamName: "NotesForVoting", + Handler: _ViewProtocolService_NotesForVoting_Handler, + ServerStreams: true, + }, + { + StreamName: "Assets", + Handler: _ViewProtocolService_Assets_Handler, + ServerStreams: true, + }, + { + StreamName: "BalanceByAddress", + Handler: _ViewProtocolService_BalanceByAddress_Handler, + ServerStreams: true, + }, + { + StreamName: "TransactionHashes", + Handler: _ViewProtocolService_TransactionHashes_Handler, + ServerStreams: true, + }, + { + StreamName: "Transactions", + Handler: _ViewProtocolService_Transactions_Handler, + ServerStreams: true, + }, + }, + Metadata: "penumbra/view/v1alpha1/view.proto", +} + +// ViewAuthServiceClient is the client API for ViewAuthService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ViewAuthServiceClient interface { + ViewAuth(ctx context.Context, in *ViewAuthRequest, opts ...grpc.CallOption) (*ViewAuthResponse, error) +} + +type viewAuthServiceClient struct { + cc grpc1.ClientConn +} + +func NewViewAuthServiceClient(cc grpc1.ClientConn) ViewAuthServiceClient { + return &viewAuthServiceClient{cc} +} + +func (c *viewAuthServiceClient) ViewAuth(ctx context.Context, in *ViewAuthRequest, opts ...grpc.CallOption) (*ViewAuthResponse, error) { + out := new(ViewAuthResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewAuthService/ViewAuth", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ViewAuthServiceServer is the server API for ViewAuthService service. +type ViewAuthServiceServer interface { + ViewAuth(context.Context, *ViewAuthRequest) (*ViewAuthResponse, error) +} + +// UnimplementedViewAuthServiceServer can be embedded to have forward compatible implementations. +type UnimplementedViewAuthServiceServer struct { +} + +func (*UnimplementedViewAuthServiceServer) ViewAuth(ctx context.Context, req *ViewAuthRequest) (*ViewAuthResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ViewAuth not implemented") +} + +func RegisterViewAuthServiceServer(s grpc1.Server, srv ViewAuthServiceServer) { + s.RegisterService(&_ViewAuthService_serviceDesc, srv) +} + +func _ViewAuthService_ViewAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ViewAuthRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewAuthServiceServer).ViewAuth(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/penumbra.view.v1alpha1.ViewAuthService/ViewAuth", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewAuthServiceServer).ViewAuth(ctx, req.(*ViewAuthRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ViewAuthService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "penumbra.view.v1alpha1.ViewAuthService", + HandlerType: (*ViewAuthServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ViewAuth", + Handler: _ViewAuthService_ViewAuth_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "penumbra/view/v1alpha1/view.proto", +} + +func (m *BroadcastTransactionRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BroadcastTransactionRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BroadcastTransactionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AwaitDetection { + i-- + if m.AwaitDetection { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Transaction != nil { + { + size, err := m.Transaction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BroadcastTransactionResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BroadcastTransactionResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BroadcastTransactionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != nil { + { + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlannerRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPlannerRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.IbcActions) > 0 { + for iNdEx := len(m.IbcActions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.IbcActions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xe2 + } + } + if len(m.Undelegations) > 0 { + for iNdEx := len(m.Undelegations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Undelegations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0x92 + } + } + if len(m.Delegations) > 0 { + for iNdEx := len(m.Delegations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Delegations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xc2 + } + } + if len(m.Swaps) > 0 { + for iNdEx := len(m.Swaps) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Swaps[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf2 + } + } + if len(m.Outputs) > 0 { + for iNdEx := len(m.Outputs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Outputs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + } + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if len(m.Memo) > 0 { + i -= len(m.Memo) + copy(dAtA[i:], m.Memo) + i = encodeVarintView(dAtA, i, uint64(len(m.Memo))) + i-- + dAtA[i] = 0x1a + } + if m.Fee != nil { + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ExpiryHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.ExpiryHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlannerRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *TransactionPlannerRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *TransactionPlannerRequest_Output) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPlannerRequest_Output) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest_Output) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlannerRequest_Swap) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPlannerRequest_Swap) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest_Swap) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Fee != nil { + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.TargetAsset != nil { + { + size, err := m.TargetAsset.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlannerRequest_Delegate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPlannerRequest_Delegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest_Delegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IdentityKey != nil { + { + size, err := m.IdentityKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlannerRequest_Undelegate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPlannerRequest_Undelegate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest_Undelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlannerResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPlannerResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Plan != nil { + { + size, err := m.Plan.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AddressByIndexRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddressByIndexRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressByIndexRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AddressIndex != nil { + { + size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AddressByIndexResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddressByIndexResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressByIndexResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *IndexByAddressRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IndexByAddressRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IndexByAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *IndexByAddressResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IndexByAddressResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IndexByAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XAddressIndex != nil { + { + size := m.XAddressIndex.Size() + i -= size + if _, err := m.XAddressIndex.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *IndexByAddressResponse_AddressIndex) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IndexByAddressResponse_AddressIndex) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AddressIndex != nil { + { + size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *EphemeralAddressRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EphemeralAddressRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EphemeralAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AddressIndex != nil { + { + size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EphemeralAddressResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EphemeralAddressResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EphemeralAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BalanceByAddressRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BalanceByAddressRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BalanceByAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BalanceByAddressResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BalanceByAddressResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BalanceByAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Asset != nil { + { + size, err := m.Asset.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ViewAuthToken) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ViewAuthToken) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ViewAuthToken) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintView(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ViewAuthRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ViewAuthRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ViewAuthRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Fvk != nil { + { + size, err := m.Fvk.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ViewAuthResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ViewAuthResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ViewAuthResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StatusRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatusRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *StatusRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *StatusRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *StatusResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatusResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.CatchingUp { + i-- + if m.CatchingUp { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.SyncHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.SyncHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *StatusStreamRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatusStreamRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusStreamRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *StatusStreamRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusStreamRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *StatusStreamRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusStreamRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *StatusStreamResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatusStreamResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StatusStreamResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SyncHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.SyncHeight)) + i-- + dAtA[i] = 0x10 + } + if m.LatestKnownBlockHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.LatestKnownBlockHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *NotesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.AmountToSpend != 0 { + i = encodeVarintView(dAtA, i, uint64(m.AmountToSpend)) + i-- + dAtA[i] = 0x28 + } + if m.AddressIndex != nil { + { + size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.AssetId != nil { + { + size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.IncludeSpent { + i-- + if m.IncludeSpent { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + return len(dAtA) - i, nil +} + +func (m *NotesRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *NotesRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *NotesForVotingRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotesForVotingRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesForVotingRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.AddressIndex != nil { + { + size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.VotableAtHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.VotableAtHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *NotesForVotingRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesForVotingRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *NotesForVotingRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesForVotingRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *WitnessRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WitnessRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WitnessRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.TransactionPlan != nil { + { + size, err := m.TransactionPlan.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.NoteCommitments) > 0 { + for iNdEx := len(m.NoteCommitments) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.NoteCommitments[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + return len(dAtA) - i, nil +} + +func (m *WitnessRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WitnessRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *WitnessRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WitnessRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *WitnessResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WitnessResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WitnessResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.WitnessData != nil { + { + size, err := m.WitnessData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WitnessAndBuildRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WitnessAndBuildRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WitnessAndBuildRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AuthorizationData != nil { + { + size, err := m.AuthorizationData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.TransactionPlan != nil { + { + size, err := m.TransactionPlan.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WitnessAndBuildResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WitnessAndBuildResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WitnessAndBuildResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Transaction != nil { + { + size, err := m.Transaction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AssetsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AssetsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AssetsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IncludeVotingReceiptTokens { + i-- + if m.IncludeVotingReceiptTokens { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + } + if m.IncludeProposalNfts { + i-- + if m.IncludeProposalNfts { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if m.IncludeLpNfts { + i-- + if m.IncludeLpNfts { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.IncludeUnbondingTokens { + i-- + if m.IncludeUnbondingTokens { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.IncludeDelegationTokens { + i-- + if m.IncludeDelegationTokens { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.IncludeSpecificDenominations) > 0 { + for iNdEx := len(m.IncludeSpecificDenominations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.IncludeSpecificDenominations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Filtered { + i-- + if m.Filtered { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *AssetsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AssetsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AssetsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Asset != nil { + { + size, err := m.Asset.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ChainParametersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ChainParametersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ChainParametersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *ChainParametersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ChainParametersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ChainParametersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Parameters != nil { + { + size, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FMDParametersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FMDParametersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FMDParametersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *FMDParametersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FMDParametersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FMDParametersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Parameters != nil { + { + size, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NoteByCommitmentRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NoteByCommitmentRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NoteByCommitmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.AwaitDetection { + i-- + if m.AwaitDetection { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.NoteCommitment != nil { + { + size, err := m.NoteCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *NoteByCommitmentRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NoteByCommitmentRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *NoteByCommitmentRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NoteByCommitmentRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *NoteByCommitmentResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NoteByCommitmentResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NoteByCommitmentResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SpendableNote != nil { + { + size, err := m.SpendableNote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapByCommitmentRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapByCommitmentRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapByCommitmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.AwaitDetection { + i-- + if m.AwaitDetection { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.SwapCommitment != nil { + { + size, err := m.SwapCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *SwapByCommitmentRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapByCommitmentRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *SwapByCommitmentRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapByCommitmentRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *SwapByCommitmentResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapByCommitmentResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapByCommitmentResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NullifierStatusRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NullifierStatusRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NullifierStatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XToken != nil { + { + size := m.XToken.Size() + i -= size + if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XAccountGroupId != nil { + { + size := m.XAccountGroupId.Size() + i -= size + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.AwaitDetection { + i-- + if m.AwaitDetection { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Nullifier != nil { + { + size, err := m.Nullifier.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *NullifierStatusRequest_AccountGroupId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NullifierStatusRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.AccountGroupId != nil { + { + size, err := m.AccountGroupId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *NullifierStatusRequest_Token) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NullifierStatusRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Token != nil { + { + size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *NullifierStatusResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NullifierStatusResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NullifierStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Spent { + i-- + if m.Spent { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TransactionHashesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionHashesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionHashesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XEndHeight != nil { + { + size := m.XEndHeight.Size() + i -= size + if _, err := m.XEndHeight.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XStartHeight != nil { + { + size := m.XStartHeight.Size() + i -= size + if _, err := m.XStartHeight.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *TransactionHashesRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionHashesRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintView(dAtA, i, uint64(m.StartHeight)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} +func (m *TransactionHashesRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionHashesRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintView(dAtA, i, uint64(m.EndHeight)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *TransactionHashesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionHashesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionHashesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TxHash) > 0 { + i -= len(m.TxHash) + copy(dAtA[i:], m.TxHash) + i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) + i-- + dAtA[i] = 0x12 + } + if m.BlockHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.BlockHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TransactionByHashRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionByHashRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionByHashRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TxHash) > 0 { + i -= len(m.TxHash) + copy(dAtA[i:], m.TxHash) + i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionByHashResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionByHashResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionByHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Tx != nil { + { + size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XEndHeight != nil { + { + size := m.XEndHeight.Size() + i -= size + if _, err := m.XEndHeight.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XStartHeight != nil { + { + size := m.XStartHeight.Size() + i -= size + if _, err := m.XStartHeight.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *TransactionsRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionsRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintView(dAtA, i, uint64(m.StartHeight)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} +func (m *TransactionsRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionsRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintView(dAtA, i, uint64(m.EndHeight)) + i-- + dAtA[i] = 0x10 + return len(dAtA) - i, nil +} +func (m *TransactionsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Tx != nil { + { + size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.TxHash) > 0 { + i -= len(m.TxHash) + copy(dAtA[i:], m.TxHash) + i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) + i-- + dAtA[i] = 0x12 + } + if m.BlockHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.BlockHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TransactionPerspectiveRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPerspectiveRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPerspectiveRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TxHash) > 0 { + i -= len(m.TxHash) + copy(dAtA[i:], m.TxHash) + i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPerspectiveResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionPerspectiveResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPerspectiveResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Tx != nil { + { + size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Txp != nil { + { + size, err := m.Txp.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NotesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NoteRecord != nil { + { + size, err := m.NoteRecord.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NotesForVotingResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotesForVotingResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotesForVotingResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IdentityKey != nil { + { + size, err := m.IdentityKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.NoteRecord != nil { + { + size, err := m.NoteRecord.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendableNoteRecord) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendableNoteRecord) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendableNoteRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Source != nil { + { + size, err := m.Source.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.Position != 0 { + i = encodeVarintView(dAtA, i, uint64(m.Position)) + i-- + dAtA[i] = 0x38 + } + if m.XHeightSpent != nil { + { + size := m.XHeightSpent.Size() + i -= size + if _, err := m.XHeightSpent.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.HeightCreated != 0 { + i = encodeVarintView(dAtA, i, uint64(m.HeightCreated)) + i-- + dAtA[i] = 0x28 + } + if m.Nullifier != nil { + { + size, err := m.Nullifier.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.AddressIndex != nil { + { + size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.NoteCommitment != nil { + { + size, err := m.NoteCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendableNoteRecord_HeightSpent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendableNoteRecord_HeightSpent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintView(dAtA, i, uint64(m.HeightSpent)) + i-- + dAtA[i] = 0x30 + return len(dAtA) - i, nil +} +func (m *SwapRecord) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SwapRecord) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Source != nil { + { + size, err := m.Source.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.XHeightClaimed != nil { + { + size := m.XHeightClaimed.Size() + i -= size + if _, err := m.XHeightClaimed.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.OutputData != nil { + { + size, err := m.OutputData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Nullifier != nil { + { + size, err := m.Nullifier.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Position != 0 { + i = encodeVarintView(dAtA, i, uint64(m.Position)) + i-- + dAtA[i] = 0x18 + } + if m.Swap != nil { + { + size, err := m.Swap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.SwapCommitment != nil { + { + size, err := m.SwapCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SwapRecord_HeightClaimed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SwapRecord_HeightClaimed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintView(dAtA, i, uint64(m.HeightClaimed)) + i-- + dAtA[i] = 0x30 + return len(dAtA) - i, nil +} +func encodeVarintView(dAtA []byte, offset int, v uint64) int { + offset -= sovView(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *BroadcastTransactionRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Transaction != nil { + l = m.Transaction.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AwaitDetection { + n += 2 + } + return n +} + +func (m *BroadcastTransactionResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != nil { + l = m.Id.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionPlannerRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ExpiryHeight != 0 { + n += 1 + sovView(uint64(m.ExpiryHeight)) + } + if m.Fee != nil { + l = m.Fee.Size() + n += 1 + l + sovView(uint64(l)) + } + l = len(m.Memo) + if l > 0 { + n += 1 + l + sovView(uint64(l)) + } + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + if len(m.Outputs) > 0 { + for _, e := range m.Outputs { + l = e.Size() + n += 2 + l + sovView(uint64(l)) + } + } + if len(m.Swaps) > 0 { + for _, e := range m.Swaps { + l = e.Size() + n += 2 + l + sovView(uint64(l)) + } + } + if len(m.Delegations) > 0 { + for _, e := range m.Delegations { + l = e.Size() + n += 2 + l + sovView(uint64(l)) + } + } + if len(m.Undelegations) > 0 { + for _, e := range m.Undelegations { + l = e.Size() + n += 2 + l + sovView(uint64(l)) + } + } + if len(m.IbcActions) > 0 { + for _, e := range m.IbcActions { + l = e.Size() + n += 2 + l + sovView(uint64(l)) + } + } + return n +} + +func (m *TransactionPlannerRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *TransactionPlannerRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *TransactionPlannerRequest_Output) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionPlannerRequest_Swap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.TargetAsset != nil { + l = m.TargetAsset.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Fee != nil { + l = m.Fee.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionPlannerRequest_Delegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.IdentityKey != nil { + l = m.IdentityKey.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionPlannerRequest_Undelegate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionPlannerResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Plan != nil { + l = m.Plan.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *AddressByIndexRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AddressIndex != nil { + l = m.AddressIndex.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *AddressByIndexResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *IndexByAddressRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *IndexByAddressResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XAddressIndex != nil { + n += m.XAddressIndex.Size() + } + return n +} + +func (m *IndexByAddressResponse_AddressIndex) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AddressIndex != nil { + l = m.AddressIndex.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *EphemeralAddressRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AddressIndex != nil { + l = m.AddressIndex.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *EphemeralAddressResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *BalanceByAddressRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *BalanceByAddressResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Asset != nil { + l = m.Asset.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *ViewAuthToken) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *ViewAuthRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Fvk != nil { + l = m.Fvk.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *ViewAuthResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *StatusRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *StatusRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *StatusRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *StatusResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SyncHeight != 0 { + n += 1 + sovView(uint64(m.SyncHeight)) + } + if m.CatchingUp { + n += 2 + } + return n +} + +func (m *StatusStreamRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *StatusStreamRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *StatusStreamRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *StatusStreamResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LatestKnownBlockHeight != 0 { + n += 1 + sovView(uint64(m.LatestKnownBlockHeight)) + } + if m.SyncHeight != 0 { + n += 1 + sovView(uint64(m.SyncHeight)) + } + return n +} + +func (m *NotesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.IncludeSpent { + n += 2 + } + if m.AssetId != nil { + l = m.AssetId.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AddressIndex != nil { + l = m.AddressIndex.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AmountToSpend != 0 { + n += 1 + sovView(uint64(m.AmountToSpend)) + } + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *NotesRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *NotesRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *NotesForVotingRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.VotableAtHeight != 0 { + n += 1 + sovView(uint64(m.VotableAtHeight)) + } + if m.AddressIndex != nil { + l = m.AddressIndex.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *NotesForVotingRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *NotesForVotingRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *WitnessRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.NoteCommitments) > 0 { + for _, e := range m.NoteCommitments { + l = e.Size() + n += 1 + l + sovView(uint64(l)) + } + } + if m.TransactionPlan != nil { + l = m.TransactionPlan.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *WitnessRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *WitnessRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *WitnessResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.WitnessData != nil { + l = m.WitnessData.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *WitnessAndBuildRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TransactionPlan != nil { + l = m.TransactionPlan.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AuthorizationData != nil { + l = m.AuthorizationData.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *WitnessAndBuildResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Transaction != nil { + l = m.Transaction.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *AssetsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Filtered { + n += 2 + } + if len(m.IncludeSpecificDenominations) > 0 { + for _, e := range m.IncludeSpecificDenominations { + l = e.Size() + n += 1 + l + sovView(uint64(l)) + } + } + if m.IncludeDelegationTokens { + n += 2 + } + if m.IncludeUnbondingTokens { + n += 2 + } + if m.IncludeLpNfts { + n += 2 + } + if m.IncludeProposalNfts { + n += 2 + } + if m.IncludeVotingReceiptTokens { + n += 2 + } + return n +} + +func (m *AssetsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Asset != nil { + l = m.Asset.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *ChainParametersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *ChainParametersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Parameters != nil { + l = m.Parameters.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *FMDParametersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *FMDParametersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Parameters != nil { + l = m.Parameters.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *NoteByCommitmentRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteCommitment != nil { + l = m.NoteCommitment.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AwaitDetection { + n += 2 + } + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *NoteByCommitmentRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *NoteByCommitmentRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *NoteByCommitmentResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SpendableNote != nil { + l = m.SpendableNote.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *SwapByCommitmentRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapCommitment != nil { + l = m.SwapCommitment.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AwaitDetection { + n += 2 + } + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *SwapByCommitmentRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *SwapByCommitmentRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *SwapByCommitmentResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *NullifierStatusRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Nullifier != nil { + l = m.Nullifier.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AwaitDetection { + n += 2 + } + if m.XAccountGroupId != nil { + n += m.XAccountGroupId.Size() + } + if m.XToken != nil { + n += m.XToken.Size() + } + return n +} + +func (m *NullifierStatusRequest_AccountGroupId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountGroupId != nil { + l = m.AccountGroupId.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *NullifierStatusRequest_Token) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Token != nil { + l = m.Token.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} +func (m *NullifierStatusResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Spent { + n += 2 + } + return n +} + +func (m *TransactionHashesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XStartHeight != nil { + n += m.XStartHeight.Size() + } + if m.XEndHeight != nil { + n += m.XEndHeight.Size() + } + return n +} + +func (m *TransactionHashesRequest_StartHeight) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovView(uint64(m.StartHeight)) + return n +} +func (m *TransactionHashesRequest_EndHeight) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovView(uint64(m.EndHeight)) + return n +} +func (m *TransactionHashesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BlockHeight != 0 { + n += 1 + sovView(uint64(m.BlockHeight)) + } + l = len(m.TxHash) + if l > 0 { + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionByHashRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TxHash) + if l > 0 { + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionByHashResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Tx != nil { + l = m.Tx.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XStartHeight != nil { + n += m.XStartHeight.Size() + } + if m.XEndHeight != nil { + n += m.XEndHeight.Size() + } + return n +} + +func (m *TransactionsRequest_StartHeight) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovView(uint64(m.StartHeight)) + return n +} +func (m *TransactionsRequest_EndHeight) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovView(uint64(m.EndHeight)) + return n +} +func (m *TransactionsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BlockHeight != 0 { + n += 1 + sovView(uint64(m.BlockHeight)) + } + l = len(m.TxHash) + if l > 0 { + n += 1 + l + sovView(uint64(l)) + } + if m.Tx != nil { + l = m.Tx.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionPerspectiveRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TxHash) + if l > 0 { + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *TransactionPerspectiveResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Txp != nil { + l = m.Txp.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Tx != nil { + l = m.Tx.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *NotesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteRecord != nil { + l = m.NoteRecord.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *NotesForVotingResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteRecord != nil { + l = m.NoteRecord.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.IdentityKey != nil { + l = m.IdentityKey.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *SpendableNoteRecord) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteCommitment != nil { + l = m.NoteCommitment.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AddressIndex != nil { + l = m.AddressIndex.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Nullifier != nil { + l = m.Nullifier.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.HeightCreated != 0 { + n += 1 + sovView(uint64(m.HeightCreated)) + } + if m.XHeightSpent != nil { + n += m.XHeightSpent.Size() + } + if m.Position != 0 { + n += 1 + sovView(uint64(m.Position)) + } + if m.Source != nil { + l = m.Source.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *SpendableNoteRecord_HeightSpent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovView(uint64(m.HeightSpent)) + return n +} +func (m *SwapRecord) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapCommitment != nil { + l = m.SwapCommitment.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Swap != nil { + l = m.Swap.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Position != 0 { + n += 1 + sovView(uint64(m.Position)) + } + if m.Nullifier != nil { + l = m.Nullifier.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.OutputData != nil { + l = m.OutputData.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.XHeightClaimed != nil { + n += m.XHeightClaimed.Size() + } + if m.Source != nil { + l = m.Source.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *SwapRecord_HeightClaimed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovView(uint64(m.HeightClaimed)) + return n +} + +func sovView(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozView(x uint64) (n int) { + return sovView(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *BroadcastTransactionRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BroadcastTransactionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BroadcastTransactionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Transaction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Transaction == nil { + m.Transaction = &v1alpha1.Transaction{} + } + if err := m.Transaction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AwaitDetection", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AwaitDetection = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BroadcastTransactionResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BroadcastTransactionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BroadcastTransactionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Id == nil { + m.Id = &v1alpha1.Id{} + } + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionPlannerRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionPlannerRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + } + m.ExpiryHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpiryHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fee == nil { + m.Fee = &v1alpha11.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Memo", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Memo = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &TransactionPlannerRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &TransactionPlannerRequest_Token{v} + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Outputs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Outputs = append(m.Outputs, &TransactionPlannerRequest_Output{}) + if err := m.Outputs[len(m.Outputs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 30: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swaps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Swaps = append(m.Swaps, &TransactionPlannerRequest_Swap{}) + if err := m.Swaps[len(m.Swaps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 40: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Delegations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Delegations = append(m.Delegations, &TransactionPlannerRequest_Delegate{}) + if err := m.Delegations[len(m.Delegations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 50: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Undelegations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Undelegations = append(m.Undelegations, &TransactionPlannerRequest_Undelegate{}) + if err := m.Undelegations[len(m.Undelegations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 60: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IbcActions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IbcActions = append(m.IbcActions, &v1alpha12.IbcAction{}) + if err := m.IbcActions[len(m.IbcActions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlannerRequest_Output) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Output: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Output: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha11.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha11.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlannerRequest_Swap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Swap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Swap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha11.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetAsset", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TargetAsset == nil { + m.TargetAsset = &v1alpha11.AssetId{} + } + if err := m.TargetAsset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fee == nil { + m.Fee = &v1alpha11.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlannerRequest_Delegate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Delegate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Delegate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Amount == nil { + m.Amount = &v1alpha11.Amount{} + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdentityKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdentityKey == nil { + m.IdentityKey = &v1alpha11.IdentityKey{} + } + if err := m.IdentityKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlannerRequest_Undelegate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Undelegate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Undelegate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha11.Value{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlannerResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionPlannerResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionPlannerResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Plan", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Plan == nil { + m.Plan = &v1alpha1.TransactionPlan{} + } + if err := m.Plan.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AddressByIndexRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AddressByIndexRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddressByIndexRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressIndex", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AddressIndex == nil { + m.AddressIndex = &v1alpha11.AddressIndex{} + } + if err := m.AddressIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AddressByIndexResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AddressByIndexResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddressByIndexResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha11.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IndexByAddressRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IndexByAddressRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IndexByAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha11.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IndexByAddressResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IndexByAddressResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IndexByAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressIndex", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AddressIndex{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAddressIndex = &IndexByAddressResponse_AddressIndex{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EphemeralAddressRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EphemeralAddressRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EphemeralAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressIndex", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AddressIndex == nil { + m.AddressIndex = &v1alpha11.AddressIndex{} + } + if err := m.AddressIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EphemeralAddressResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EphemeralAddressResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EphemeralAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha11.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BalanceByAddressRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BalanceByAddressRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BalanceByAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &v1alpha11.Address{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BalanceByAddressResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BalanceByAddressResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BalanceByAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asset", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Asset == nil { + m.Asset = &v1alpha11.AssetId{} + } + if err := m.Asset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Amount == nil { + m.Amount = &v1alpha11.Amount{} + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ViewAuthToken) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ViewAuthToken: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ViewAuthToken: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ViewAuthRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ViewAuthRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ViewAuthRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fvk", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fvk == nil { + m.Fvk = &v1alpha11.FullViewingKey{} + } + if err := m.Fvk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ViewAuthResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ViewAuthResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ViewAuthResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Token == nil { + m.Token = &ViewAuthToken{} + } + if err := m.Token.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatusRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatusRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatusRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &StatusRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &StatusRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatusResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatusResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatusResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SyncHeight", wireType) + } + m.SyncHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SyncHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CatchingUp", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CatchingUp = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatusStreamRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatusStreamRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatusStreamRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &StatusStreamRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &StatusStreamRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatusStreamResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatusStreamResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatusStreamResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LatestKnownBlockHeight", wireType) + } + m.LatestKnownBlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LatestKnownBlockHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SyncHeight", wireType) + } + m.SyncHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SyncHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeSpent", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeSpent = bool(v != 0) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AssetId == nil { + m.AssetId = &v1alpha11.AssetId{} + } + if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressIndex", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AddressIndex == nil { + m.AddressIndex = &v1alpha11.AddressIndex{} + } + if err := m.AddressIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AmountToSpend", wireType) + } + m.AmountToSpend = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AmountToSpend |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &NotesRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &NotesRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotesForVotingRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotesForVotingRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotesForVotingRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field VotableAtHeight", wireType) + } + m.VotableAtHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.VotableAtHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressIndex", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AddressIndex == nil { + m.AddressIndex = &v1alpha11.AddressIndex{} + } + if err := m.AddressIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &NotesForVotingRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &NotesForVotingRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WitnessRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WitnessRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WitnessRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteCommitments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NoteCommitments = append(m.NoteCommitments, &v1alpha11.StateCommitment{}) + if err := m.NoteCommitments[len(m.NoteCommitments)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransactionPlan", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TransactionPlan == nil { + m.TransactionPlan = &v1alpha1.TransactionPlan{} + } + if err := m.TransactionPlan.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &WitnessRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &WitnessRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WitnessResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WitnessResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WitnessResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WitnessData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WitnessData == nil { + m.WitnessData = &v1alpha1.WitnessData{} + } + if err := m.WitnessData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WitnessAndBuildRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WitnessAndBuildRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WitnessAndBuildRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransactionPlan", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TransactionPlan == nil { + m.TransactionPlan = &v1alpha1.TransactionPlan{} + } + if err := m.TransactionPlan.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthorizationData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuthorizationData == nil { + m.AuthorizationData = &v1alpha1.AuthorizationData{} + } + if err := m.AuthorizationData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WitnessAndBuildResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WitnessAndBuildResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WitnessAndBuildResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Transaction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Transaction == nil { + m.Transaction = &v1alpha1.Transaction{} + } + if err := m.Transaction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AssetsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Filtered", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Filtered = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeSpecificDenominations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IncludeSpecificDenominations = append(m.IncludeSpecificDenominations, &v1alpha11.Denom{}) + if err := m.IncludeSpecificDenominations[len(m.IncludeSpecificDenominations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeDelegationTokens", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeDelegationTokens = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeUnbondingTokens", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeUnbondingTokens = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeLpNfts", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeLpNfts = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeProposalNfts", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeProposalNfts = bool(v != 0) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeVotingReceiptTokens", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeVotingReceiptTokens = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AssetsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asset", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Asset == nil { + m.Asset = &v1alpha11.Asset{} + } + if err := m.Asset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ChainParametersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ChainParametersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ChainParametersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ChainParametersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ChainParametersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ChainParametersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Parameters == nil { + m.Parameters = &v1alpha13.ChainParameters{} + } + if err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FMDParametersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FMDParametersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FMDParametersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FMDParametersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FMDParametersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FMDParametersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Parameters == nil { + m.Parameters = &v1alpha13.FmdParameters{} + } + if err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoteByCommitmentRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoteByCommitmentRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoteByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NoteCommitment == nil { + m.NoteCommitment = &v1alpha11.StateCommitment{} + } + if err := m.NoteCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AwaitDetection", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AwaitDetection = bool(v != 0) + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &NoteByCommitmentRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &NoteByCommitmentRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoteByCommitmentResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoteByCommitmentResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoteByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpendableNote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SpendableNote == nil { + m.SpendableNote = &SpendableNoteRecord{} + } + if err := m.SpendableNote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapByCommitmentRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapCommitment == nil { + m.SwapCommitment = &v1alpha11.StateCommitment{} + } + if err := m.SwapCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AwaitDetection", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AwaitDetection = bool(v != 0) + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &SwapByCommitmentRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &SwapByCommitmentRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapByCommitmentResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapByCommitmentResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Swap == nil { + m.Swap = &SwapRecord{} + } + if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NullifierStatusRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NullifierStatusRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Nullifier == nil { + m.Nullifier = &v1alpha11.Nullifier{} + } + if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AwaitDetection", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AwaitDetection = bool(v != 0) + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XAccountGroupId = &NullifierStatusRequest_AccountGroupId{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewAuthToken{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XToken = &NullifierStatusRequest_Token{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NullifierStatusResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NullifierStatusResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NullifierStatusResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Spent", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Spent = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionHashesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionHashesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartHeight", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.XStartHeight = &TransactionHashesRequest_StartHeight{v} + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndHeight", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.XEndHeight = &TransactionHashesRequest_EndHeight{v} + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionHashesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionHashesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + } + m.BlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlockHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) + if m.TxHash == nil { + m.TxHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionByHashRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionByHashRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) + if m.TxHash == nil { + m.TxHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionByHashResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionByHashResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionByHashResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Tx == nil { + m.Tx = &v1alpha1.Transaction{} + } + if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartHeight", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.XStartHeight = &TransactionsRequest_StartHeight{v} + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndHeight", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.XEndHeight = &TransactionsRequest_EndHeight{v} + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + } + m.BlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlockHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) + if m.TxHash == nil { + m.TxHash = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Tx == nil { + m.Tx = &v1alpha1.Transaction{} + } + if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionPerspectiveRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionPerspectiveRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) + if m.TxHash == nil { + m.TxHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionPerspectiveResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionPerspectiveResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Txp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Txp == nil { + m.Txp = &v1alpha1.TransactionPerspective{} + } + if err := m.Txp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Tx == nil { + m.Tx = &v1alpha1.Transaction{} + } + if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteRecord", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NoteRecord == nil { + m.NoteRecord = &SpendableNoteRecord{} + } + if err := m.NoteRecord.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotesForVotingResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotesForVotingResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotesForVotingResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteRecord", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NoteRecord == nil { + m.NoteRecord = &SpendableNoteRecord{} + } + if err := m.NoteRecord.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdentityKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdentityKey == nil { + m.IdentityKey = &v1alpha11.IdentityKey{} + } + if err := m.IdentityKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpendableNoteRecord) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpendableNoteRecord: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpendableNoteRecord: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoteCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NoteCommitment == nil { + m.NoteCommitment = &v1alpha11.StateCommitment{} + } + if err := m.NoteCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Note == nil { + m.Note = &v1alpha11.Note{} + } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressIndex", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AddressIndex == nil { + m.AddressIndex = &v1alpha11.AddressIndex{} + } + if err := m.AddressIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Nullifier == nil { + m.Nullifier = &v1alpha11.Nullifier{} + } + if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HeightCreated", wireType) + } + m.HeightCreated = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.HeightCreated |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HeightSpent", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.XHeightSpent = &SpendableNoteRecord_HeightSpent{v} + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + m.Position = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Position |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Source == nil { + m.Source = &v1alpha13.NoteSource{} + } + if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SwapRecord) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SwapRecord: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapRecord: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapCommitment == nil { + m.SwapCommitment = &v1alpha11.StateCommitment{} + } + if err := m.SwapCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Swap == nil { + m.Swap = &v1alpha14.SwapPlaintext{} + } + if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + m.Position = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Position |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Nullifier == nil { + m.Nullifier = &v1alpha11.Nullifier{} + } + if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OutputData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OutputData == nil { + m.OutputData = &v1alpha14.BatchSwapOutputData{} + } + if err := m.OutputData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HeightClaimed", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.XHeightClaimed = &SwapRecord_HeightClaimed{v} + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Source == nil { + m.Source = &v1alpha13.NoteSource{} + } + if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipView(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowView + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowView + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowView + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthView + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupView + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthView + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthView = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowView = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupView = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/channel.go b/relayer/channel.go index 5274d405d..528e1d047 100644 --- a/relayer/channel.go +++ b/relayer/channel.go @@ -74,7 +74,7 @@ func (c *Chain) CreateOpenChannels( dst.chainProcessor(c.log, nil), ). WithPathProcessors(pp). - WithInitialBlockHistory(0). + WithInitialBlockHistory(100). WithMessageLifecycle(&processor.ChannelMessageLifecycle{ Initial: &processor.ChannelMessage{ ChainID: c.PathEnd.ChainID, diff --git a/relayer/events.go b/relayer/events.go new file mode 100644 index 000000000..799844e89 --- /dev/null +++ b/relayer/events.go @@ -0,0 +1,55 @@ +package relayer + +import ( + "fmt" + + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" + channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer/provider" +) + +// ParseClientIDFromEvents parses events emitted from a MsgCreateClient and returns the +// client identifier. +func ParseClientIDFromEvents(events []provider.RelayerEvent) (string, error) { + for _, event := range events { + if event.EventType == clienttypes.EventTypeCreateClient { + for attributeKey, attributeValue := range event.Attributes { + if attributeKey == clienttypes.AttributeKeyClientID { + return attributeValue, nil + } + } + } + } + return "", fmt.Errorf("client identifier event attribute not found") +} + +// ParseConnectionIDFromEvents parses events emitted from a MsgConnectionOpenInit or +// MsgConnectionOpenTry and returns the connection identifier. +func ParseConnectionIDFromEvents(events []provider.RelayerEvent) (string, error) { + for _, event := range events { + if event.EventType == connectiontypes.EventTypeConnectionOpenInit || event.EventType == connectiontypes.EventTypeConnectionOpenTry { + for attributeKey, attributeValue := range event.Attributes { + if attributeKey == connectiontypes.AttributeKeyConnectionID { + return attributeValue, nil + } + } + } + } + return "", fmt.Errorf("connection identifier event attribute not found") +} + +// ParseChannelIDFromEvents parses events emitted from a MsgChannelOpenInit or +// MsgChannelOpenTry and returns the channel identifier. +func ParseChannelIDFromEvents(events []provider.RelayerEvent) (string, error) { + for _, event := range events { + if event.EventType == channeltypes.EventTypeChannelOpenInit || event.EventType == channeltypes.EventTypeChannelOpenTry { + for attributeKey, attributeValue := range event.Attributes { + if attributeKey == channeltypes.AttributeKeyChannelID { + return attributeValue, nil + } + } + } + } + return "", fmt.Errorf("channel identifier event attribute not found") +} diff --git a/relayer/provider/provider.go b/relayer/provider/provider.go index 2431604af..b3c3160a9 100644 --- a/relayer/provider/provider.go +++ b/relayer/provider/provider.go @@ -289,6 +289,9 @@ type ChainProvider interface { // i.e. the chain where the MsgTransfer was committed. MsgTimeoutOnClose(msgTransfer PacketInfo, proofUnreceived PacketProof) (RelayerMessage, error) + // Get the commitment prefix of the chain. + CommitmentPrefix() commitmenttypes.MerklePrefix + // [End] Packet flow IBC message assembly // [Begin] Connection handshake IBC message assembly @@ -395,7 +398,6 @@ type ChainProvider interface { ChainId() string Type() string ProviderConfig() ProviderConfig - CommitmentPrefix() commitmenttypes.MerklePrefix Key() string Address() (string, error) Timeout() string diff --git a/relayer/strategies.go b/relayer/strategies.go index dd82beb94..511f09905 100644 --- a/relayer/strategies.go +++ b/relayer/strategies.go @@ -11,6 +11,7 @@ import ( "github.com/avast/retry-go/v4" "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + penumbraprocessor "github.com/cosmos/relayer/v2/relayer/chains/penumbra" "github.com/cosmos/relayer/v2/relayer/processor" "go.uber.org/zap" ) @@ -115,6 +116,8 @@ type path struct { func (chain *Chain) chainProcessor(log *zap.Logger, metrics *processor.PrometheusMetrics) processor.ChainProcessor { // Handle new ChainProcessor implementations as cases here switch p := chain.ChainProvider.(type) { + case *penumbraprocessor.PenumbraProvider: + return penumbraprocessor.NewPenumbraChainProcessor(log, p) case *cosmos.CosmosProvider: return cosmos.NewCosmosChainProcessor(log, p, metrics) default: diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index 856fb275f..9c2cf5427 100755 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -15,8 +15,12 @@ for dir in $proto_dirs; do done done +buf generate --template proto/buf.gen.penumbra.yaml buf.build/penumbra-zone/penumbra + # move proto files to the right places + # # Note: Proto files are suffixed with the current binary version. +rm -rf github.com/cosmos/relayer/v2/relayer/chains/penumbra/client cp -r github.com/cosmos/relayer/v2/* ./ -rm -rf github.com \ No newline at end of file +rm -rf github.com diff --git a/third_party/proto/amino/amino.proto b/third_party/proto/amino/amino.proto deleted file mode 100644 index 05f965830..000000000 --- a/third_party/proto/amino/amino.proto +++ /dev/null @@ -1,80 +0,0 @@ -syntax = "proto3"; - -package amino; - -import "google/protobuf/descriptor.proto"; - -// TODO(fdymylja): once we fully migrate to protov2 the go_package needs to be -// updated. We need this right now because gogoproto codegen needs to import the -// extension. -option go_package = "github.com/cosmos/cosmos-sdk/types/tx/amino"; - -extend google.protobuf.MessageOptions { - // name is the string used when registering a concrete - // type into the Amino type registry, via the Amino codec's - // `RegisterConcrete()` method. This string MUST be at most 39 - // characters long, or else the message will be rejected by the - // Ledger hardware device. - string name = 11110001; - - // encoding describes the encoding format used by Amino for the given - // message. The field type is chosen to be a string for - // flexibility, but it should ideally be short and expected to be - // machine-readable, for example "base64" or "utf8_json". We - // highly recommend to use underscores for word separation instead of spaces. - // - // If left empty, then the Amino encoding is expected to be the same as the - // Protobuf one. - // - // This annotation should not be confused with the `encoding` - // one which operates on the field level. - string message_encoding = 11110002; -} - -extend google.protobuf.FieldOptions { - // encoding describes the encoding format used by Amino for - // the given field. The field type is chosen to be a string for - // flexibility, but it should ideally be short and expected to be - // machine-readable, for example "base64" or "utf8_json". We - // highly recommend to use underscores for word separation instead of spaces. - // - // If left empty, then the Amino encoding is expected to be the same as the - // Protobuf one. - // - // This annotation should not be confused with the - // `message_encoding` one which operates on the message level. - string encoding = 11110003; - - // field_name sets a different field name (i.e. key name) in - // the amino JSON object for the given field. - // - // Example: - // - // message Foo { - // string bar = 1 [(amino.field_name) = "baz"]; - // } - // - // Then the Amino encoding of Foo will be: - // `{"baz":"some value"}` - string field_name = 11110004; - - // dont_omitempty sets the field in the JSON object even if - // its value is empty, i.e. equal to the Golang zero value. To learn what - // the zero values are, see https://go.dev/ref/spec#The_zero_value. - // - // Fields default to `omitempty`, which is the default behavior when this - // annotation is unset. When set to true, then the field value in the - // JSON object will be set, i.e. not `undefined`. - // - // Example: - // - // message Foo { - // string bar = 1; - // string baz = 2 [(amino.dont_omitempty) = true]; - // } - // - // f := Foo{}; - // out := AminoJSONEncoder(&f); - // out == {"baz":""} - bool dont_omitempty = 11110005; -} \ No newline at end of file diff --git a/third_party/proto/buf.yaml b/third_party/proto/buf.yaml deleted file mode 100644 index e1693df81..000000000 --- a/third_party/proto/buf.yaml +++ /dev/null @@ -1,6 +0,0 @@ -version: v1 -lint: - ignore: - - cometbft - - gogoproto - - cosmos_proto \ No newline at end of file diff --git a/third_party/proto/cosmos/auth/v1beta1/auth.proto b/third_party/proto/cosmos/auth/v1beta1/auth.proto deleted file mode 100644 index 2b9ead613..000000000 --- a/third_party/proto/cosmos/auth/v1beta1/auth.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; -package cosmos.auth.v1beta1; - -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; - -// BaseAccount defines a base account type. It contains all the necessary fields -// for basic account functionality. Any custom account type should extend this -// type for additional functionality (e.g. vesting). -message BaseAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.equal) = false; - - string address = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; - google.protobuf.Any pub_key = 2 - [ (gogoproto.jsontag) = "public_key,omitempty" ]; - uint64 account_number = 3; - uint64 sequence = 4; -} diff --git a/third_party/proto/cosmos_proto/cosmos.proto b/third_party/proto/cosmos_proto/cosmos.proto deleted file mode 100644 index 1524a4257..000000000 --- a/third_party/proto/cosmos_proto/cosmos.proto +++ /dev/null @@ -1,97 +0,0 @@ -syntax = "proto3"; -package cosmos_proto; - -import "google/protobuf/descriptor.proto"; - -option go_package = "github.com/cosmos/cosmos-proto;cosmos_proto"; - -extend google.protobuf.MessageOptions { - - // implements_interface is used to indicate the type name of the interface - // that a message implements so that it can be used in google.protobuf.Any - // fields that accept that interface. A message can implement multiple - // interfaces. Interfaces should be declared using a declare_interface - // file option. - repeated string implements_interface = 93001; -} - -extend google.protobuf.FieldOptions { - - // accepts_interface is used to annotate that a google.protobuf.Any - // field accepts messages that implement the specified interface. - // Interfaces should be declared using a declare_interface file option. - string accepts_interface = 93001; - - // scalar is used to indicate that this field follows the formatting defined - // by the named scalar which should be declared with declare_scalar. Code - // generators may choose to use this information to map this field to a - // language-specific type representing the scalar. - string scalar = 93002; -} - -extend google.protobuf.FileOptions { - - // declare_interface declares an interface type to be used with - // accepts_interface and implements_interface. Interface names are - // expected to follow the following convention such that their declaration - // can be discovered by tools: for a given interface type a.b.C, it is - // expected that the declaration will be found in a protobuf file named - // a/b/interfaces.proto in the file descriptor set. - repeated InterfaceDescriptor declare_interface = 793021; - - // declare_scalar declares a scalar type to be used with - // the scalar field option. Scalar names are - // expected to follow the following convention such that their declaration - // can be discovered by tools: for a given scalar type a.b.C, it is - // expected that the declaration will be found in a protobuf file named - // a/b/scalars.proto in the file descriptor set. - repeated ScalarDescriptor declare_scalar = 793022; -} - -// InterfaceDescriptor describes an interface type to be used with -// accepts_interface and implements_interface and declared by declare_interface. -message InterfaceDescriptor { - - // name is the name of the interface. It should be a short-name (without - // a period) such that the fully qualified name of the interface will be - // package.name, ex. for the package a.b and interface named C, the - // fully-qualified name will be a.b.C. - string name = 1; - - // description is a human-readable description of the interface and its - // purpose. - string description = 2; -} - -// ScalarDescriptor describes an scalar type to be used with -// the scalar field option and declared by declare_scalar. -// Scalars extend simple protobuf built-in types with additional -// syntax and semantics, for instance to represent big integers. -// Scalars should ideally define an encoding such that there is only one -// valid syntactical representation for a given semantic meaning, -// i.e. the encoding should be deterministic. -message ScalarDescriptor { - - // name is the name of the scalar. It should be a short-name (without - // a period) such that the fully qualified name of the scalar will be - // package.name, ex. for the package a.b and scalar named C, the - // fully-qualified name will be a.b.C. - string name = 1; - - // description is a human-readable description of the scalar and its - // encoding format. For instance a big integer or decimal scalar should - // specify precisely the expected encoding format. - string description = 2; - - // field_type is the type of field with which this scalar can be used. - // Scalars can be used with one and only one type of field so that - // encoding standards and simple and clear. Currently only string and - // bytes fields are supported for scalars. - repeated ScalarType field_type = 3; -} - -enum ScalarType { - SCALAR_TYPE_UNSPECIFIED = 0; - SCALAR_TYPE_STRING = 1; - SCALAR_TYPE_BYTES = 2; -} \ No newline at end of file diff --git a/third_party/proto/gogoproto/gogo.proto b/third_party/proto/gogoproto/gogo.proto deleted file mode 100644 index bf975466a..000000000 --- a/third_party/proto/gogoproto/gogo.proto +++ /dev/null @@ -1,145 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; -package gogoproto; - -import "google/protobuf/descriptor.proto"; - -option java_package = "com.google.protobuf"; -option java_outer_classname = "GoGoProtos"; -option go_package = "github.com/gogo/protobuf/gogoproto"; - -extend google.protobuf.EnumOptions { - optional bool goproto_enum_prefix = 62001; - optional bool goproto_enum_stringer = 62021; - optional bool enum_stringer = 62022; - optional string enum_customname = 62023; - optional bool enumdecl = 62024; -} - -extend google.protobuf.EnumValueOptions { - optional string enumvalue_customname = 66001; -} - -extend google.protobuf.FileOptions { - optional bool goproto_getters_all = 63001; - optional bool goproto_enum_prefix_all = 63002; - optional bool goproto_stringer_all = 63003; - optional bool verbose_equal_all = 63004; - optional bool face_all = 63005; - optional bool gostring_all = 63006; - optional bool populate_all = 63007; - optional bool stringer_all = 63008; - optional bool onlyone_all = 63009; - - optional bool equal_all = 63013; - optional bool description_all = 63014; - optional bool testgen_all = 63015; - optional bool benchgen_all = 63016; - optional bool marshaler_all = 63017; - optional bool unmarshaler_all = 63018; - optional bool stable_marshaler_all = 63019; - - optional bool sizer_all = 63020; - - optional bool goproto_enum_stringer_all = 63021; - optional bool enum_stringer_all = 63022; - - optional bool unsafe_marshaler_all = 63023; - optional bool unsafe_unmarshaler_all = 63024; - - optional bool goproto_extensions_map_all = 63025; - optional bool goproto_unrecognized_all = 63026; - optional bool gogoproto_import = 63027; - optional bool protosizer_all = 63028; - optional bool compare_all = 63029; - optional bool typedecl_all = 63030; - optional bool enumdecl_all = 63031; - - optional bool goproto_registration = 63032; - optional bool messagename_all = 63033; - - optional bool goproto_sizecache_all = 63034; - optional bool goproto_unkeyed_all = 63035; -} - -extend google.protobuf.MessageOptions { - optional bool goproto_getters = 64001; - optional bool goproto_stringer = 64003; - optional bool verbose_equal = 64004; - optional bool face = 64005; - optional bool gostring = 64006; - optional bool populate = 64007; - optional bool stringer = 67008; - optional bool onlyone = 64009; - - optional bool equal = 64013; - optional bool description = 64014; - optional bool testgen = 64015; - optional bool benchgen = 64016; - optional bool marshaler = 64017; - optional bool unmarshaler = 64018; - optional bool stable_marshaler = 64019; - - optional bool sizer = 64020; - - optional bool unsafe_marshaler = 64023; - optional bool unsafe_unmarshaler = 64024; - - optional bool goproto_extensions_map = 64025; - optional bool goproto_unrecognized = 64026; - - optional bool protosizer = 64028; - optional bool compare = 64029; - - optional bool typedecl = 64030; - - optional bool messagename = 64033; - - optional bool goproto_sizecache = 64034; - optional bool goproto_unkeyed = 64035; -} - -extend google.protobuf.FieldOptions { - optional bool nullable = 65001; - optional bool embed = 65002; - optional string customtype = 65003; - optional string customname = 65004; - optional string jsontag = 65005; - optional string moretags = 65006; - optional string casttype = 65007; - optional string castkey = 65008; - optional string castvalue = 65009; - - optional bool stdtime = 65010; - optional bool stdduration = 65011; - optional bool wktpointer = 65012; - - optional string castrepeated = 65013; -} \ No newline at end of file diff --git a/third_party/proto/tendermint/crypto/proof.proto b/third_party/proto/tendermint/crypto/proof.proto deleted file mode 100644 index ad4145f3d..000000000 --- a/third_party/proto/tendermint/crypto/proof.proto +++ /dev/null @@ -1,41 +0,0 @@ -syntax = "proto3"; - -// buf:lint:ignore PACKAGE_VERSION_SUFFIX -package tendermint.crypto; - -option go_package = "github.com/cometbft/cometbft/proto/tendermint/crypto"; - -import "gogoproto/gogo.proto"; - -message Proof { - int64 total = 1; - int64 index = 2; - bytes leaf_hash = 3; - repeated bytes aunts = 4; -} - -message ValueOp { - // Encoded in ProofOp.Key. - bytes key = 1; - - // To encode in ProofOp.Data - Proof proof = 2; -} - -message DominoOp { - string key = 1; - string input = 2; - string output = 3; -} - -// ProofOp defines an operation used for calculating Merkle root -// The data could be arbitrary format, providing nessecary data -// for example neighbouring node hash -message ProofOp { - string type = 1; - bytes key = 2; - bytes data = 3; -} - -// ProofOps is Merkle proof defined by the list of ProofOps -message ProofOps { repeated ProofOp ops = 1 [ (gogoproto.nullable) = false ]; } \ No newline at end of file From d57648a42a618400afd8bf370139cb567f6ff756 Mon Sep 17 00:00:00 2001 From: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> Date: Mon, 3 Apr 2023 16:00:22 -0700 Subject: [PATCH 15/46] --time-threshold example use cases (#1155) --- docs/advanced_usage.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/advanced_usage.md b/docs/advanced_usage.md index a95d8d51e..715bc283d 100644 --- a/docs/advanced_usage.md +++ b/docs/advanced_usage.md @@ -38,16 +38,20 @@ By default, the Relayer will automatically update clients (`MsgUpdateClient`) if > This auto-update functionality is specifically useful on low trafficked paths where messages aren't regularly being relayed. -You can choose to update clients more regularly by using the `--time-threshold` flag when running the `rly start` command. +Alternitavely, you can choose to update clients more frequently by using the `--time-threshold` flag when running the `rly start` command. Example: -- You are relaying on a path that has a client trusting period of 9 minutes. +- Say... You are relaying on a path that has a client trusting period of 9 minutes. - If no messages are sent for 6 minutes and the client is 3 minutes (1/3) to expiration, the relayer will automatically update the client. - If you wish to update the client more frequently, say anytime two minutes have passed without a `MsgUpdateClient` being sent, use flag: `--time-threshold 2m` Selecting a time-threshold that is greater than 2/3 of the client trusting period will deem itself useless. +Use cases for configuring the `--time-threshold` flag: +- The underlying chain node that the relayer is using as an endpoint has restrictive pruning. Client updates are needed more frequently since states 2/3 trusting period ago would not be available due to pruning. +- Mitiage relayer operational errors allowing more frequent updates incase a relayer node goes down for > the client trusting period. + \* It is not mandatory for relayers to include the `MsgUpdateClient` when relaying packets, however most, if not all relayers currently do. --- From d7219fc72ed4aab0d9776fa7c55481d24ef3f82e Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Mon, 3 Apr 2023 19:03:56 -0600 Subject: [PATCH 16/46] Make ICA waits more explicit (#1157) * Make ICA waits more explicit * poll for timeout * poll for channel close confirm * Comment out sqlite db file for scenarios tests --- interchaintest/ica_channel_close_test.go | 81 ++++++++++++------- interchaintest/interchain_accounts_test.go | 81 +++++++++++++------ interchaintest/relay_many_test.go | 9 ++- interchaintest/relayer_override_test.go | 9 ++- .../tendermint_v0.37_boundary_test.go | 11 +-- 5 files changed, 121 insertions(+), 70 deletions(-) diff --git a/interchaintest/ica_channel_close_test.go b/interchaintest/ica_channel_close_test.go index 30e4dcee0..b21a41c32 100644 --- a/interchaintest/ica_channel_close_test.go +++ b/interchaintest/ica_channel_close_test.go @@ -8,6 +8,7 @@ import ( "time" "github.com/cosmos/cosmos-sdk/crypto/keyring" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" relayerinterchaintest "github.com/cosmos/relayer/v2/interchaintest" interchaintest "github.com/strangelove-ventures/interchaintest/v7" "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" @@ -61,7 +62,7 @@ func TestScenarioICAChannelClose(t *testing.T) { chains, err := cf.Chains(t.Name()) require.NoError(t, err) - chain1, chain2 := chains[0], chains[1] + chain1, chain2 := chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain) // Get a relayer instance r := relayerinterchaintest. @@ -84,11 +85,12 @@ func TestScenarioICAChannelClose(t *testing.T) { }) require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ - TestName: t.Name(), - Client: client, - NetworkID: network, - SkipPathCreation: true, - BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + TestName: t.Name(), + Client: client, + NetworkID: network, + SkipPathCreation: true, + // Uncomment this to load blocks, txs, msgs, and events into sqlite db as test runs + // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), })) // Fund a user account on chain1 and chain2 @@ -105,14 +107,14 @@ func TestScenarioICAChannelClose(t *testing.T) { err = r.CreateClients(ctx, eRep, pathName, ibc.CreateClientOptions{TrustingPeriod: "330h"}) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + err = testutil.WaitForBlocks(ctx, 2, chain1, chain2) require.NoError(t, err) // Create a new connection err = r.CreateConnections(ctx, eRep, pathName) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + err = testutil.WaitForBlocks(ctx, 2, chain1, chain2) require.NoError(t, err) // Query for the newly created connection @@ -120,6 +122,19 @@ func TestScenarioICAChannelClose(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(connections)) + // Start the relayer and set the cleanup function. + err = r.StartRelayer(ctx, eRep, pathName) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occurred while stopping the relayer: %s", err) + } + }, + ) + // Register a new interchain account on chain2, on behalf of the user acc on chain1 chain1Addr := chain1User.(*cosmos.CosmosWallet).FormattedAddressWithPrefix(chain1.Config().Bech32Prefix) @@ -136,21 +151,18 @@ func TestScenarioICAChannelClose(t *testing.T) { _, _, err = chain1.Exec(ctx, registerICA, nil) require.NoError(t, err) - // Start the relayer and set the cleanup function. - err = r.StartRelayer(ctx, eRep, pathName) + ir := cosmos.DefaultEncoding().InterfaceRegistry + + c2h, err := chain2.Height(ctx) require.NoError(t, err) - t.Cleanup( - func() { - err := r.StopRelayer(ctx, eRep) - if err != nil { - t.Logf("an error occured while stopping the relayer: %s", err) - } - }, - ) + channelFound := func(found *chantypes.MsgChannelOpenConfirm) bool { + return found.PortId == "icahost" + } - // Wait for relayer to start up and finish channel handshake - err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + // Wait for channel open confirm + _, err = cosmos.PollForMessage(ctx, chain2, ir, + c2h, c2h+30, channelFound) require.NoError(t, err) // Query for the newly registered interchain account @@ -185,10 +197,6 @@ func TestScenarioICAChannelClose(t *testing.T) { err = chain2.SendFunds(ctx, chain2User.KeyName(), transfer) require.NoError(t, err) - // Wait for transfer to be complete and assert balances - err = testutil.WaitForBlocks(ctx, 5, chain2) - require.NoError(t, err) - chain2Bal, err := chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) require.NoError(t, err) require.Equal(t, chain2OrigBal-transferAmount, chain2Bal) @@ -225,8 +233,18 @@ func TestScenarioICAChannelClose(t *testing.T) { _, _, err = chain1.Exec(ctx, sendICATransfer, nil) require.NoError(t, err) - // Wait for tx to be relayed - err = testutil.WaitForBlocks(ctx, 10, chain2) + c1h, err := chain1.Height(ctx) + require.NoError(t, err) + + ackFound := func(found *chantypes.MsgAcknowledgement) bool { + return found.Packet.Sequence == 1 && + found.Packet.SourcePort == "icacontroller-"+chain1Addr && + found.Packet.DestinationPort == "icahost" + } + + // Wait for ack + _, err = cosmos.PollForMessage(ctx, chain1, ir, + c1h, c1h+10, ackFound) require.NoError(t, err) // Assert that the funds have been received by the user account on chain2 @@ -243,9 +261,6 @@ func TestScenarioICAChannelClose(t *testing.T) { err = r.StopRelayer(ctx, eRep) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) - require.NoError(t, err) - // Send another bank transfer msg to ICA on chain2 from the user account on chain1. // This message should timeout and the channel will be closed when we re-start the relayer. _, _, err = chain1.Exec(ctx, sendICATransfer, nil) @@ -291,8 +306,12 @@ func TestScenarioICAChannelClose(t *testing.T) { _, _, err = chain1.Exec(ctx, registerICA, nil) require.NoError(t, err) - // Wait for channel handshake to finish - err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + c2h, err = chain2.Height(ctx) + require.NoError(t, err) + + // Wait for channel open confirm + _, err = cosmos.PollForMessage(ctx, chain2, ir, + c2h, c2h+30, channelFound) require.NoError(t, err) // Assert that a new channel has been opened and the same ICA is in use diff --git a/interchaintest/interchain_accounts_test.go b/interchaintest/interchain_accounts_test.go index 3da235746..0185b2bc2 100644 --- a/interchaintest/interchain_accounts_test.go +++ b/interchaintest/interchain_accounts_test.go @@ -9,6 +9,7 @@ import ( "time" "github.com/cosmos/cosmos-sdk/crypto/keyring" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" relayerinterchaintest "github.com/cosmos/relayer/v2/interchaintest" interchaintest "github.com/strangelove-ventures/interchaintest/v7" "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" @@ -62,7 +63,7 @@ func TestScenarioInterchainAccounts(t *testing.T) { chains, err := cf.Chains(t.Name()) require.NoError(t, err) - chain1, chain2 := chains[0], chains[1] + chain1, chain2 := chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain) // Get a relayer instance r := relayerinterchaintest. @@ -89,6 +90,8 @@ func TestScenarioInterchainAccounts(t *testing.T) { Client: client, NetworkID: network, SkipPathCreation: true, + // Uncomment this to load blocks, txs, msgs, and events into sqlite db as test runs + // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), })) // Fund a user account on chain1 and chain2 @@ -105,14 +108,14 @@ func TestScenarioInterchainAccounts(t *testing.T) { err = r.CreateClients(ctx, eRep, pathName, ibc.CreateClientOptions{TrustingPeriod: "330h"}) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + err = testutil.WaitForBlocks(ctx, 2, chain1, chain2) require.NoError(t, err) // Create a new connection err = r.CreateConnections(ctx, eRep, pathName) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) + err = testutil.WaitForBlocks(ctx, 2, chain1, chain2) require.NoError(t, err) // Query for the newly created connection @@ -120,6 +123,19 @@ func TestScenarioInterchainAccounts(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(connections)) + // Start the relayer and set the cleanup function. + err = r.StartRelayer(ctx, eRep, pathName) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) + // Register a new interchain account on chain2, on behalf of the user acc on chain1 chain1Addr := chain1User.(*cosmos.CosmosWallet).FormattedAddressWithPrefix(chain1.Config().Bech32Prefix) @@ -136,21 +152,18 @@ func TestScenarioInterchainAccounts(t *testing.T) { _, _, err = chain1.Exec(ctx, registerICA, nil) require.NoError(t, err) - // Start the relayer and set the cleanup function. - err = r.StartRelayer(ctx, eRep, pathName) + ir := cosmos.DefaultEncoding().InterfaceRegistry + + c2h, err := chain2.Height(ctx) require.NoError(t, err) - t.Cleanup( - func() { - err := r.StopRelayer(ctx, eRep) - if err != nil { - t.Logf("an error occured while stopping the relayer: %s", err) - } - }, - ) + channelFound := func(found *chantypes.MsgChannelOpenConfirm) bool { + return found.PortId == "icahost" + } - // Wait for relayer to start up and finish channel handshake - err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + // Wait for channel open confirm + _, err = cosmos.PollForMessage(ctx, chain2, ir, + c2h, c2h+30, channelFound) require.NoError(t, err) // Query for the newly registered interchain account @@ -185,10 +198,6 @@ func TestScenarioInterchainAccounts(t *testing.T) { err = chain2.SendFunds(ctx, chain2User.KeyName(), transfer) require.NoError(t, err) - // Wait for transfer to be complete and assert balances - err = testutil.WaitForBlocks(ctx, 5, chain2) - require.NoError(t, err) - chain2Bal, err := chain2.GetBalance(ctx, chain2Addr, chain2.Config().Denom) require.NoError(t, err) require.Equal(t, chain2OrigBal-transferAmount, chain2Bal) @@ -225,8 +234,18 @@ func TestScenarioInterchainAccounts(t *testing.T) { _, _, err = chain1.Exec(ctx, sendICATransfer, nil) require.NoError(t, err) - // Wait for tx to be relayed - err = testutil.WaitForBlocks(ctx, 10, chain2) + c1h, err := chain1.Height(ctx) + require.NoError(t, err) + + ackFound := func(found *chantypes.MsgAcknowledgement) bool { + return found.Packet.Sequence == 1 && + found.Packet.SourcePort == "icacontroller-"+chain1Addr && + found.Packet.DestinationPort == "icahost" + } + + // Wait for ack + _, err = cosmos.PollForMessage(ctx, chain1, ir, + c1h, c1h+10, ackFound) require.NoError(t, err) // Assert that the funds have been received by the user account on chain2 @@ -243,9 +262,6 @@ func TestScenarioInterchainAccounts(t *testing.T) { err = r.StopRelayer(ctx, eRep) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 5, chain1, chain2) - require.NoError(t, err) - // Send another bank transfer msg to ICA on chain2 from the user account on chain1. // This message should timeout and the channel will be closed when we re-start the relayer. _, _, err = chain1.Exec(ctx, sendICATransfer, nil) @@ -258,7 +274,15 @@ func TestScenarioInterchainAccounts(t *testing.T) { err = r.StartRelayer(ctx, eRep, pathName) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + c2h, err = chain2.Height(ctx) + require.NoError(t, err) + + chanCloseFound := func(found *chantypes.MsgChannelCloseConfirm) bool { + return found.PortId == "icahost" + } + + // Wait for channel close confirm + _, err = cosmos.PollForMessage(ctx, chain2, ir, c2h, c2h+30, chanCloseFound) require.NoError(t, err) // Assert that the packet timed out and that the acc balances are correct @@ -286,7 +310,12 @@ func TestScenarioInterchainAccounts(t *testing.T) { require.NoError(t, err) // Wait for channel handshake to finish - err = testutil.WaitForBlocks(ctx, 15, chain1, chain2) + c2h, err = chain2.Height(ctx) + require.NoError(t, err) + + // Wait for channel open confirm + _, err = cosmos.PollForMessage(ctx, chain2, ir, + c2h, c2h+30, channelFound) require.NoError(t, err) // Assert that a new channel has been opened and the same ICA is in use diff --git a/interchaintest/relay_many_test.go b/interchaintest/relay_many_test.go index 49bb530ca..65859f487 100644 --- a/interchaintest/relay_many_test.go +++ b/interchaintest/relay_many_test.go @@ -86,10 +86,11 @@ func TestRelayerMultiplePathsSingleProcess(t *testing.T) { client, network := interchaintest.DockerSetup(t) require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ - TestName: t.Name(), - Client: client, - NetworkID: network, - BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + TestName: t.Name(), + Client: client, + NetworkID: network, + // Uncomment this to load blocks, txs, msgs, and events into sqlite db as test runs + // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), SkipPathCreation: false, })) diff --git a/interchaintest/relayer_override_test.go b/interchaintest/relayer_override_test.go index 4774ce5a6..2885c21ff 100644 --- a/interchaintest/relayer_override_test.go +++ b/interchaintest/relayer_override_test.go @@ -73,10 +73,11 @@ func TestClientOverrideFlag(t *testing.T) { }) require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ - TestName: t.Name(), - Client: client, - NetworkID: network, - BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + TestName: t.Name(), + Client: client, + NetworkID: network, + // Uncomment this to load blocks, txs, msgs, and events into sqlite db as test runs + // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), SkipPathCreation: true, })) diff --git a/interchaintest/tendermint_v0.37_boundary_test.go b/interchaintest/tendermint_v0.37_boundary_test.go index 7833eb489..c7972c1ac 100644 --- a/interchaintest/tendermint_v0.37_boundary_test.go +++ b/interchaintest/tendermint_v0.37_boundary_test.go @@ -74,11 +74,12 @@ func TestScenarioTendermint37Boundary(t *testing.T) { rep := testreporter.NewNopReporter() require.NoError(t, ic.Build(ctx, rep.RelayerExecReporter(t), interchaintest.InterchainBuildOptions{ - TestName: t.Name(), - Client: client, - NetworkID: network, - BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), - SkipPathCreation: false, + TestName: t.Name(), + Client: client, + NetworkID: network, + // Uncomment this to load blocks, txs, msgs, and events into sqlite db as test runs + // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + SkipPathCreation: false, })) t.Cleanup(func() { _ = ic.Close() From deab34eb6c70df5ec8c5cbb411cf16fe914ba38e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 16:16:31 -0600 Subject: [PATCH 17/46] Bump github.com/docker/docker in /interchaintest (#1160) Bumps [github.com/docker/docker](https://github.com/docker/docker) from 20.10.19+incompatible to 20.10.24+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v20.10.19...v20.10.24) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- interchaintest/go.mod | 2 +- interchaintest/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/interchaintest/go.mod b/interchaintest/go.mod index 01f2c00f0..14570dac7 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -8,7 +8,7 @@ require ( github.com/cosmos/cosmos-sdk v0.47.0 github.com/cosmos/ibc-go/v7 v7.0.0 github.com/cosmos/relayer/v2 v2.0.0 - github.com/docker/docker v20.10.19+incompatible + github.com/docker/docker v20.10.24+incompatible github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 github.com/moby/moby v20.10.22+incompatible github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324180345-a06599d2eb8c diff --git a/interchaintest/go.sum b/interchaintest/go.sum index 8b3f4c189..46f3e39a5 100644 --- a/interchaintest/go.sum +++ b/interchaintest/go.sum @@ -586,8 +586,8 @@ github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4Kfc github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.19+incompatible h1:lzEmjivyNHFHMNAFLXORMBXyGIhw/UP4DvJwvyKYq64= -github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= +github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= From 2cf2952e1c6d8d6b2a87dea4d7ad9f73426d001b Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Tue, 4 Apr 2023 16:22:43 -0600 Subject: [PATCH 18/46] bump version in docs (#1158) --- README.md | 6 +++--- cmd/config.go | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2f267b396..7df037800 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Additional information on how IBC works can be found [here](https://ibc.cosmos.n ```shell $ git clone https://github.com/cosmos/relayer.git - $ cd relayer && git checkout v2.0.0-rc3 + $ cd relayer && git checkout v2.3.0 $ make install ``` @@ -58,7 +58,7 @@ Additional information on how IBC works can be found [here](https://ibc.cosmos.n ``` **Default config file location:** `~/.relayer/config/config.yaml` - By default, transactions will be relayed with a memo of `rly(VERSION)` e.g. `rly(v2.0.0)`. + By default, transactions will be relayed with a memo of `rly(VERSION)` e.g. `rly(v2.3.0)`. To customize the memo for all relaying, use the `--memo` flag when initializing the configuration. @@ -66,7 +66,7 @@ Additional information on how IBC works can be found [here](https://ibc.cosmos.n $ rly config init --memo "My custom memo" ``` - Custom memos will have `rly(VERSION)` appended. For example, a memo of `My custom memo` running on relayer version `v2.0.0` would result in a transaction memo of `My custom memo | rly(v2.0.0)`. + Custom memos will have `rly(VERSION)` appended. For example, a memo of `My custom memo` running on relayer version `v2.3.0` would result in a transaction memo of `My custom memo | rly(v2.3.0)`. The `--memo` flag is also available for other `rly` commands also that involve sending transactions such as `rly tx link` and `rly start`. It can be passed there to override the `config.yaml` value if desired. diff --git a/cmd/config.go b/cmd/config.go index 07513056b..1487d27b3 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -282,8 +282,8 @@ func (c *Config) Wrapped() *ConfigOutputWrapper { } // rlyMemo returns a formatted message memo string -// that includes "rly" and the version, e.g. "rly(v2.0.0)" -// or "My custom memo | rly(v2.0.0)" +// that includes "rly" and the version, e.g. "rly(v2.3.0)" +// or "My custom memo | rly(v2.3.0)" func rlyMemo(memo string) string { if memo == "-" { // omit memo entirely From f9aaf3dd0ebfe99fbe98d190a145861d7df93804 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 20:00:40 -0600 Subject: [PATCH 19/46] Bump github.com/opencontainers/runc in /interchaintest (#1153) Bumps [github.com/opencontainers/runc](https://github.com/opencontainers/runc) from 1.1.3 to 1.1.5. - [Release notes](https://github.com/opencontainers/runc/releases) - [Changelog](https://github.com/opencontainers/runc/blob/v1.1.5/CHANGELOG.md) - [Commits](https://github.com/opencontainers/runc/compare/v1.1.3...v1.1.5) --- updated-dependencies: - dependency-name: github.com/opencontainers/runc dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin --- interchaintest/go.mod | 2 +- interchaintest/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/interchaintest/go.mod b/interchaintest/go.mod index 14570dac7..66f66cf4e 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -170,7 +170,7 @@ require ( github.com/multiformats/go-varint v0.0.6 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc2 // indirect - github.com/opencontainers/runc v1.1.3 // indirect + github.com/opencontainers/runc v1.1.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d // indirect diff --git a/interchaintest/go.sum b/interchaintest/go.sum index 46f3e39a5..656c273e9 100644 --- a/interchaintest/go.sum +++ b/interchaintest/go.sum @@ -1185,8 +1185,8 @@ github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= -github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= +github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= From d619c89165407762b998b7b5398074c95736c0c9 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Thu, 6 Apr 2023 15:52:15 -0600 Subject: [PATCH 20/46] Fix QueryConnectionsUsingClient for cosmos (#1162) --- relayer/chains/cosmos/query.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/relayer/chains/cosmos/query.go b/relayer/chains/cosmos/query.go index 077253059..f8025456e 100644 --- a/relayer/chains/cosmos/query.go +++ b/relayer/chains/cosmos/query.go @@ -629,7 +629,12 @@ func (cc *CosmosProvider) QueryConnectionsUsingClient(ctx context.Context, heigh return nil, err } - connections.Connections = append(connections.Connections, res.Connections...) + for _, conn := range res.Connections { + if conn.ClientId == clientid { + connections.Connections = append(connections.Connections, conn) + } + } + next := res.GetPagination().GetNextKey() if len(next) == 0 { break @@ -727,8 +732,6 @@ func (cc *CosmosProvider) queryChannelABCI(ctx context.Context, height int64, po return nil, err } - - return &chantypes.QueryChannelResponse{ Channel: &channel, Proof: proofBz, From ba8f442e63b3391cdb63cbe3f89e07988d8b2f69 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Fri, 7 Apr 2023 11:17:09 -0600 Subject: [PATCH 21/46] Make min query loop duration configurable (#1164) --- .../chains/cosmos/cosmos_chain_processor.go | 14 +++++-- relayer/chains/cosmos/provider.go | 39 ++++++++++--------- .../penumbra/penumbra_chain_processor.go | 7 +++- relayer/chains/penumbra/provider.go | 39 ++++++++++--------- relayer/channel.go | 2 +- 5 files changed, 57 insertions(+), 44 deletions(-) diff --git a/relayer/chains/cosmos/cosmos_chain_processor.go b/relayer/chains/cosmos/cosmos_chain_processor.go index 300666b63..1feb92124 100644 --- a/relayer/chains/cosmos/cosmos_chain_processor.go +++ b/relayer/chains/cosmos/cosmos_chain_processor.go @@ -193,9 +193,14 @@ type queryCyclePersistence struct { // The initialBlockHistory parameter determines how many historical blocks should be fetched and processed before continuing with current blocks. // ChainProcessors should obey the context and return upon context cancellation. func (ccp *CosmosChainProcessor) Run(ctx context.Context, initialBlockHistory uint64) error { + minQueryLoopDuration := ccp.chainProvider.PCfg.MinLoopDuration + if minQueryLoopDuration == 0 { + minQueryLoopDuration = defaultMinQueryLoopDuration + } + // this will be used for persistence across query cycle loop executions persistence := queryCyclePersistence{ - minQueryLoopDuration: defaultMinQueryLoopDuration, + minQueryLoopDuration: minQueryLoopDuration, lastBalanceUpdate: time.Unix(0, 0), balanceUpdateWaitDuration: defaultBalanceUpdateWaitDuration, } @@ -320,9 +325,10 @@ func (ccp *CosmosChainProcessor) queryCycle(ctx context.Context, persistence *qu persistence.latestHeight = status.SyncInfo.LatestBlockHeight ccp.chainProvider.setCometVersion(ccp.log, status.NodeInfo.Version) - ccp.log.Debug("Queried latest height", - zap.Int64("latest_height", persistence.latestHeight), - ) + // This debug log is very noisy, but is helpful when debugging new chains. + // ccp.log.Debug("Queried latest height", + // zap.Int64("latest_height", persistence.latestHeight), + // ) if ccp.metrics != nil { ccp.CollectMetrics(ctx, persistence) diff --git a/relayer/chains/cosmos/provider.go b/relayer/chains/cosmos/provider.go index f34ec5700..58d3ca47f 100644 --- a/relayer/chains/cosmos/provider.go +++ b/relayer/chains/cosmos/provider.go @@ -35,25 +35,26 @@ var ( const cometEncodingThreshold = "v0.37.0-alpha" type CosmosProviderConfig struct { - KeyDirectory string `json:"key-directory" yaml:"key-directory"` - Key string `json:"key" yaml:"key"` - ChainName string `json:"-" yaml:"-"` - ChainID string `json:"chain-id" yaml:"chain-id"` - RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` - AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` - KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` - GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` - GasPrices string `json:"gas-prices" yaml:"gas-prices"` - MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` - Debug bool `json:"debug" yaml:"debug"` - Timeout string `json:"timeout" yaml:"timeout"` - BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` - OutputFormat string `json:"output-format" yaml:"output-format"` - SignModeStr string `json:"sign-mode" yaml:"sign-mode"` - ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` - Modules []module.AppModuleBasic `json:"-" yaml:"-"` - Slip44 *int `json:"coin-type" yaml:"coin-type"` - Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` + KeyDirectory string `json:"key-directory" yaml:"key-directory"` + Key string `json:"key" yaml:"key"` + ChainName string `json:"-" yaml:"-"` + ChainID string `json:"chain-id" yaml:"chain-id"` + RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` + AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` + KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` + GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` + GasPrices string `json:"gas-prices" yaml:"gas-prices"` + MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + Debug bool `json:"debug" yaml:"debug"` + Timeout string `json:"timeout" yaml:"timeout"` + BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` + OutputFormat string `json:"output-format" yaml:"output-format"` + SignModeStr string `json:"sign-mode" yaml:"sign-mode"` + ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` + Modules []module.AppModuleBasic `json:"-" yaml:"-"` + Slip44 *int `json:"coin-type" yaml:"coin-type"` + Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` + MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` } func (pc CosmosProviderConfig) Validate() error { diff --git a/relayer/chains/penumbra/penumbra_chain_processor.go b/relayer/chains/penumbra/penumbra_chain_processor.go index f1cc169a1..b140b87f5 100644 --- a/relayer/chains/penumbra/penumbra_chain_processor.go +++ b/relayer/chains/penumbra/penumbra_chain_processor.go @@ -154,9 +154,14 @@ type queryCyclePersistence struct { // The initialBlockHistory parameter determines how many historical blocks should be fetched and processed before continuing with current blocks. // ChainProcessors should obey the context and return upon context cancellation. func (pcp *PenumbraChainProcessor) Run(ctx context.Context, initialBlockHistory uint64) error { + minQueryLoopDuration := pcp.chainProvider.PCfg.MinLoopDuration + if minQueryLoopDuration == 0 { + minQueryLoopDuration = defaultMinQueryLoopDuration + } + // this will be used for persistence across query cycle loop executions persistence := queryCyclePersistence{ - minQueryLoopDuration: defaultMinQueryLoopDuration, + minQueryLoopDuration: minQueryLoopDuration, } // Infinite retry to get initial latest height diff --git a/relayer/chains/penumbra/provider.go b/relayer/chains/penumbra/provider.go index 604a9d7c2..25af1575a 100644 --- a/relayer/chains/penumbra/provider.go +++ b/relayer/chains/penumbra/provider.go @@ -37,25 +37,26 @@ var ( const cometEncodingThreshold = "v0.37.0-alpha" type PenumbraProviderConfig struct { - KeyDirectory string `json:"key-directory" yaml:"key-directory"` - Key string `json:"key" yaml:"key"` - ChainName string `json:"-" yaml:"-"` - ChainID string `json:"chain-id" yaml:"chain-id"` - RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` - AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` - KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` - GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` - GasPrices string `json:"gas-prices" yaml:"gas-prices"` - MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` - Debug bool `json:"debug" yaml:"debug"` - Timeout string `json:"timeout" yaml:"timeout"` - BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` - OutputFormat string `json:"output-format" yaml:"output-format"` - SignModeStr string `json:"sign-mode" yaml:"sign-mode"` - ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` - Modules []module.AppModuleBasic `json:"-" yaml:"-"` - Slip44 int `json:"coin-type" yaml:"coin-type"` - Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` + KeyDirectory string `json:"key-directory" yaml:"key-directory"` + Key string `json:"key" yaml:"key"` + ChainName string `json:"-" yaml:"-"` + ChainID string `json:"chain-id" yaml:"chain-id"` + RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` + AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` + KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` + GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` + GasPrices string `json:"gas-prices" yaml:"gas-prices"` + MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + Debug bool `json:"debug" yaml:"debug"` + Timeout string `json:"timeout" yaml:"timeout"` + BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` + OutputFormat string `json:"output-format" yaml:"output-format"` + SignModeStr string `json:"sign-mode" yaml:"sign-mode"` + ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` + Modules []module.AppModuleBasic `json:"-" yaml:"-"` + Slip44 int `json:"coin-type" yaml:"coin-type"` + Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` + MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` } func (pc PenumbraProviderConfig) Validate() error { diff --git a/relayer/channel.go b/relayer/channel.go index 528e1d047..5274d405d 100644 --- a/relayer/channel.go +++ b/relayer/channel.go @@ -74,7 +74,7 @@ func (c *Chain) CreateOpenChannels( dst.chainProcessor(c.log, nil), ). WithPathProcessors(pp). - WithInitialBlockHistory(100). + WithInitialBlockHistory(0). WithMessageLifecycle(&processor.ChannelMessageLifecycle{ Initial: &processor.ChannelMessage{ ChainID: c.PathEnd.ChainID, From 26aa346fbf4d88910f03e6c8e7991feff7d834bd Mon Sep 17 00:00:00 2001 From: Ava Howell Date: Mon, 10 Apr 2023 21:06:16 -0700 Subject: [PATCH 22/46] penumbra provider: update generated protos (#1168) --- .../penumbra/core/chain/v1alpha1/chain.pb.go | 753 ++-- .../core/crypto/v1alpha1/crypto.pb.go | 1600 +++++++-- .../penumbra/core/dex/v1alpha1/dex.pb.go | 735 ++-- .../penumbra/core/stake/v1alpha1/stake.pb.go | 327 +- .../transaction/v1alpha1/transaction.pb.go | 3035 +++++++++++++---- .../v1alpha1/transparent_proofs.pb.go | 171 +- 6 files changed, 4852 insertions(+), 1769 deletions(-) diff --git a/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go index 19da79408..2d6cf9a53 100644 --- a/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go +++ b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go @@ -527,7 +527,6 @@ type StatePayload struct { // *StatePayload_RolledUp_ // *StatePayload_Note_ // *StatePayload_Swap_ - // *StatePayload_Position_ StatePayload isStatePayload_StatePayload `protobuf_oneof:"state_payload"` } @@ -579,14 +578,10 @@ type StatePayload_Note_ struct { type StatePayload_Swap_ struct { Swap *StatePayload_Swap `protobuf:"bytes,3,opt,name=swap,proto3,oneof" json:"swap,omitempty"` } -type StatePayload_Position_ struct { - Position *StatePayload_Position `protobuf:"bytes,4,opt,name=position,proto3,oneof" json:"position,omitempty"` -} func (*StatePayload_RolledUp_) isStatePayload_StatePayload() {} func (*StatePayload_Note_) isStatePayload_StatePayload() {} func (*StatePayload_Swap_) isStatePayload_StatePayload() {} -func (*StatePayload_Position_) isStatePayload_StatePayload() {} func (m *StatePayload) GetStatePayload() isStatePayload_StatePayload { if m != nil { @@ -616,20 +611,12 @@ func (m *StatePayload) GetSwap() *StatePayload_Swap { return nil } -func (m *StatePayload) GetPosition() *StatePayload_Position { - if x, ok := m.GetStatePayload().(*StatePayload_Position_); ok { - return x.Position - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*StatePayload) XXX_OneofWrappers() []interface{} { return []interface{}{ (*StatePayload_RolledUp_)(nil), (*StatePayload_Note_)(nil), (*StatePayload_Swap_)(nil), - (*StatePayload_Position_)(nil), } } @@ -781,58 +768,6 @@ func (m *StatePayload_Swap) GetSwap() *v1alpha11.SwapPayload { return nil } -type StatePayload_Position struct { - LpNft *v1alpha11.LpNft `protobuf:"bytes,2,opt,name=lp_nft,json=lpNft,proto3" json:"lp_nft,omitempty"` - Commitment *v1alpha1.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` -} - -func (m *StatePayload_Position) Reset() { *m = StatePayload_Position{} } -func (m *StatePayload_Position) String() string { return proto.CompactTextString(m) } -func (*StatePayload_Position) ProtoMessage() {} -func (*StatePayload_Position) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{5, 3} -} -func (m *StatePayload_Position) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *StatePayload_Position) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_StatePayload_Position.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *StatePayload_Position) XXX_Merge(src proto.Message) { - xxx_messageInfo_StatePayload_Position.Merge(m, src) -} -func (m *StatePayload_Position) XXX_Size() int { - return m.Size() -} -func (m *StatePayload_Position) XXX_DiscardUnknown() { - xxx_messageInfo_StatePayload_Position.DiscardUnknown(m) -} - -var xxx_messageInfo_StatePayload_Position proto.InternalMessageInfo - -func (m *StatePayload_Position) GetLpNft() *v1alpha11.LpNft { - if m != nil { - return m.LpNft - } - return nil -} - -func (m *StatePayload_Position) GetCommitment() *v1alpha1.StateCommitment { - if m != nil { - return m.Commitment - } - return nil -} - type KnownAssets struct { Assets []*v1alpha1.Asset `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` } @@ -1036,7 +971,7 @@ func (m *GenesisAppState) GetAllocations() []*GenesisAppState_Allocation { } type GenesisAppState_Allocation struct { - Amount uint64 `protobuf:"varint,1,opt,name=amount,proto3" json:"amount,omitempty"` + Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` Address *v1alpha1.Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` } @@ -1074,11 +1009,11 @@ func (m *GenesisAppState_Allocation) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisAppState_Allocation proto.InternalMessageInfo -func (m *GenesisAppState_Allocation) GetAmount() uint64 { +func (m *GenesisAppState_Allocation) GetAmount() *v1alpha1.Amount { if m != nil { return m.Amount } - return 0 + return nil } func (m *GenesisAppState_Allocation) GetDenom() string { @@ -1095,6 +1030,58 @@ func (m *GenesisAppState_Allocation) GetAddress() *v1alpha1.Address { return nil } +type Epoch struct { + Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + StartHeight uint64 `protobuf:"varint,2,opt,name=start_height,json=startHeight,proto3" json:"start_height,omitempty"` +} + +func (m *Epoch) Reset() { *m = Epoch{} } +func (m *Epoch) String() string { return proto.CompactTextString(m) } +func (*Epoch) ProtoMessage() {} +func (*Epoch) Descriptor() ([]byte, []int) { + return fileDescriptor_b0cedb8b84ba3224, []int{10} +} +func (m *Epoch) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Epoch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Epoch.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Epoch) XXX_Merge(src proto.Message) { + xxx_messageInfo_Epoch.Merge(m, src) +} +func (m *Epoch) XXX_Size() int { + return m.Size() +} +func (m *Epoch) XXX_DiscardUnknown() { + xxx_messageInfo_Epoch.DiscardUnknown(m) +} + +var xxx_messageInfo_Epoch proto.InternalMessageInfo + +func (m *Epoch) GetIndex() uint64 { + if m != nil { + return m.Index + } + return 0 +} + +func (m *Epoch) GetStartHeight() uint64 { + if m != nil { + return m.StartHeight + } + return 0 +} + func init() { proto.RegisterType((*ChainParameters)(nil), "penumbra.core.chain.v1alpha1.ChainParameters") proto.RegisterType((*Ratio)(nil), "penumbra.core.chain.v1alpha1.Ratio") @@ -1105,12 +1092,12 @@ func init() { proto.RegisterType((*StatePayload_RolledUp)(nil), "penumbra.core.chain.v1alpha1.StatePayload.RolledUp") proto.RegisterType((*StatePayload_Note)(nil), "penumbra.core.chain.v1alpha1.StatePayload.Note") proto.RegisterType((*StatePayload_Swap)(nil), "penumbra.core.chain.v1alpha1.StatePayload.Swap") - proto.RegisterType((*StatePayload_Position)(nil), "penumbra.core.chain.v1alpha1.StatePayload.Position") proto.RegisterType((*KnownAssets)(nil), "penumbra.core.chain.v1alpha1.KnownAssets") proto.RegisterType((*NoteSource)(nil), "penumbra.core.chain.v1alpha1.NoteSource") proto.RegisterType((*SpendInfo)(nil), "penumbra.core.chain.v1alpha1.SpendInfo") proto.RegisterType((*GenesisAppState)(nil), "penumbra.core.chain.v1alpha1.GenesisAppState") proto.RegisterType((*GenesisAppState_Allocation)(nil), "penumbra.core.chain.v1alpha1.GenesisAppState.Allocation") + proto.RegisterType((*Epoch)(nil), "penumbra.core.chain.v1alpha1.Epoch") } func init() { @@ -1118,106 +1105,105 @@ func init() { } var fileDescriptor_b0cedb8b84ba3224 = []byte{ - // 1572 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5b, 0x8f, 0x1b, 0x49, - 0x15, 0x1e, 0xcf, 0xd5, 0x73, 0x3c, 0x97, 0x50, 0x9b, 0x4b, 0xc7, 0x0c, 0x93, 0x89, 0xb5, 0x0b, - 0x4e, 0x56, 0xd8, 0xec, 0xec, 0x0a, 0x22, 0x2f, 0xa0, 0xcc, 0x25, 0x4c, 0xa2, 0x4d, 0xb2, 0x4e, - 0xcd, 0x12, 0x50, 0x14, 0xa9, 0x55, 0xee, 0x2e, 0xc7, 0xa5, 0x74, 0x57, 0x35, 0x5d, 0xd5, 0x33, - 0x19, 0x89, 0x47, 0x40, 0x3c, 0xf2, 0xc0, 0x2f, 0xe0, 0x91, 0x37, 0xfe, 0x05, 0x42, 0x42, 0xda, - 0x47, 0xb4, 0x4f, 0x68, 0xf2, 0xc6, 0xaf, 0x40, 0x75, 0xaa, 0x2f, 0xb6, 0x59, 0x3c, 0x3b, 0xab, - 0x3c, 0xd9, 0x75, 0xce, 0xf7, 0x7d, 0x75, 0xea, 0x54, 0xd5, 0x39, 0x5d, 0xd0, 0x4e, 0xb8, 0xcc, - 0xe2, 0x41, 0xca, 0xba, 0x81, 0x4a, 0x79, 0x37, 0x18, 0x31, 0x21, 0xbb, 0x27, 0x1f, 0xb1, 0x28, - 0x19, 0xb1, 0x8f, 0xdc, 0xb0, 0x93, 0xa4, 0xca, 0x28, 0xb2, 0x55, 0x20, 0x3b, 0x16, 0xd9, 0x71, - 0xae, 0x02, 0xd9, 0xbc, 0x3b, 0xa5, 0x93, 0x9e, 0x25, 0x46, 0x8d, 0x09, 0xe1, 0xd8, 0x29, 0x35, - 0xa7, 0xe6, 0xd4, 0x86, 0xbd, 0xe6, 0x15, 0x14, 0x87, 0x39, 0xf2, 0xfd, 0x49, 0x64, 0xc8, 0xdf, - 0x54, 0xb8, 0x90, 0xbf, 0x71, 0xa8, 0xd6, 0x3f, 0x57, 0x60, 0xf3, 0xc0, 0x86, 0xd3, 0x67, 0x29, - 0x8b, 0xb9, 0xe1, 0xa9, 0x26, 0x37, 0xa1, 0x8e, 0x11, 0xfa, 0x22, 0xf4, 0x6a, 0x3b, 0xb5, 0xf6, - 0x2a, 0x5d, 0xc1, 0xf1, 0xa3, 0x90, 0x7c, 0x00, 0x1b, 0x3c, 0x51, 0xc1, 0xc8, 0x0f, 0xb3, 0x94, - 0x19, 0xa1, 0xa4, 0x37, 0xbf, 0x53, 0x6b, 0x2f, 0xd2, 0x75, 0xb4, 0x1e, 0xe6, 0x46, 0x72, 0x07, - 0xae, 0x64, 0x72, 0xa0, 0x64, 0x28, 0xe4, 0x2b, 0x1f, 0x5d, 0xda, 0x5b, 0x40, 0xe0, 0x66, 0x69, - 0x7f, 0x80, 0x66, 0xf2, 0x09, 0x5c, 0x67, 0x81, 0x11, 0x27, 0xdc, 0x3f, 0x61, 0x91, 0x08, 0x99, - 0x51, 0xa9, 0x1f, 0x89, 0x58, 0x18, 0x6f, 0x11, 0x09, 0x57, 0x9d, 0xf7, 0x79, 0xe1, 0x7c, 0x6c, - 0x7d, 0xa4, 0x0d, 0x57, 0x06, 0x4c, 0x73, 0x3f, 0xe5, 0xa7, 0x2c, 0x0d, 0xfd, 0x94, 0x19, 0xee, - 0xad, 0x22, 0x7e, 0xc3, 0xda, 0x29, 0x9a, 0x29, 0x33, 0x9c, 0xdc, 0x87, 0x2d, 0x1d, 0x31, 0x3d, - 0xb2, 0x91, 0x24, 0x5c, 0xb2, 0xc8, 0x9c, 0xf9, 0xb1, 0xd0, 0x03, 0x3e, 0x62, 0x27, 0x42, 0xa5, - 0xde, 0x12, 0xb2, 0x9a, 0x05, 0xa6, 0xef, 0x20, 0x4f, 0x2a, 0x04, 0xe9, 0xc1, 0xcd, 0xff, 0x51, - 0x08, 0xd5, 0xa9, 0x34, 0x22, 0xe6, 0x1e, 0x20, 0xfd, 0xc6, 0x14, 0xfd, 0x30, 0x77, 0x93, 0x9f, - 0x80, 0xa7, 0xc5, 0x2b, 0xc9, 0x43, 0x7f, 0x10, 0xa9, 0xe0, 0xb5, 0xf6, 0x4f, 0x85, 0x0c, 0xd5, - 0xa9, 0x1f, 0x71, 0xe9, 0x35, 0x90, 0x7a, 0xcd, 0xf9, 0xf7, 0xd1, 0xfd, 0x2b, 0xf4, 0x3e, 0xe6, - 0x92, 0xec, 0xc2, 0xb5, 0x58, 0x68, 0x5d, 0x11, 0x63, 0xf6, 0x46, 0xc4, 0x59, 0xec, 0xad, 0x21, - 0xeb, 0x3d, 0xe7, 0x74, 0xac, 0x27, 0xce, 0x45, 0x6e, 0x41, 0x43, 0x0c, 0x02, 0x9f, 0x4b, 0x36, - 0x88, 0x78, 0xe8, 0x2d, 0xef, 0xd4, 0xda, 0x75, 0x0a, 0x62, 0x10, 0x3c, 0x70, 0x16, 0xf2, 0x00, - 0x6e, 0x09, 0x39, 0x50, 0x99, 0x0c, 0x7d, 0x11, 0xe8, 0xdd, 0x1f, 0xf9, 0x26, 0x65, 0x52, 0x0f, - 0x79, 0xaa, 0x4b, 0xd2, 0x0a, 0x92, 0xb6, 0x72, 0xd8, 0x23, 0x8b, 0xfa, 0xa2, 0x00, 0x15, 0x32, - 0x47, 0xb0, 0xa3, 0x32, 0x33, 0x5b, 0xa7, 0x8e, 0x3a, 0xdf, 0x2b, 0x70, 0x5f, 0x2f, 0xf4, 0x09, - 0x5c, 0x4f, 0x52, 0x95, 0x28, 0xcd, 0x22, 0xff, 0x44, 0x19, 0x9b, 0x60, 0xb7, 0x5a, 0xef, 0xaa, - 0xdb, 0xfb, 0xc2, 0xfb, 0x1c, 0x9d, 0x6e, 0xb5, 0xe4, 0xc7, 0x70, 0xa3, 0x64, 0x85, 0x3c, 0x51, - 0x5a, 0x18, 0x9f, 0xc5, 0x2a, 0x93, 0xc6, 0xbb, 0xe6, 0x52, 0x5a, 0xb8, 0x0f, 0x9d, 0x77, 0x0f, - 0x9d, 0x36, 0xa5, 0xd5, 0x6c, 0xf6, 0x38, 0xf9, 0xbf, 0xc9, 0x54, 0x9a, 0xc5, 0xde, 0x75, 0x3c, - 0xe3, 0xef, 0x95, 0x93, 0x59, 0xdf, 0x33, 0x74, 0x4d, 0xcc, 0x95, 0x30, 0xad, 0x7d, 0x33, 0x4a, - 0xb9, 0x1e, 0xa9, 0x28, 0xf4, 0x6e, 0x20, 0xab, 0x94, 0xec, 0x33, 0xad, 0xbf, 0x28, 0x9c, 0xe4, - 0x1e, 0x78, 0x25, 0x0f, 0xcf, 0xc6, 0x18, 0xd1, 0x43, 0x62, 0xb9, 0xf2, 0x63, 0xeb, 0xae, 0x98, - 0x3f, 0x83, 0xef, 0x86, 0x4c, 0xf9, 0x3a, 0xe1, 0x32, 0xf4, 0x0b, 0x4c, 0x95, 0xd7, 0x9b, 0x98, - 0x57, 0x2f, 0x64, 0xea, 0xd8, 0x22, 0xfa, 0x05, 0x20, 0x4f, 0x69, 0xeb, 0x08, 0x96, 0xa8, 0xbd, - 0x83, 0x64, 0x0b, 0x56, 0x65, 0x16, 0xf3, 0xd4, 0xde, 0x19, 0xbc, 0xc5, 0x8b, 0xb4, 0x32, 0x90, - 0x1d, 0x68, 0x84, 0x5c, 0xaa, 0x58, 0x48, 0xf4, 0xbb, 0x4b, 0x3c, 0x6e, 0x6a, 0x05, 0xb0, 0xfe, - 0x8b, 0x38, 0x1c, 0xab, 0x0a, 0x1f, 0xc0, 0x46, 0x92, 0xf2, 0x40, 0x68, 0xa1, 0xa4, 0x3f, 0x10, - 0x46, 0xa3, 0xea, 0x3a, 0x5d, 0x2f, 0xad, 0xfb, 0xc2, 0x68, 0xf2, 0x21, 0x10, 0xa6, 0x7d, 0x35, - 0x74, 0x3b, 0xe9, 0x8f, 0xb8, 0x78, 0x35, 0x32, 0xf9, 0x04, 0x9b, 0x4c, 0x7f, 0x3e, 0xc4, 0x5d, - 0x7c, 0x88, 0xe6, 0xd6, 0x57, 0x35, 0x58, 0xdd, 0xd3, 0x9a, 0x9b, 0x47, 0x72, 0xa8, 0xc8, 0x1e, - 0xd4, 0x99, 0x1d, 0x14, 0x75, 0xa7, 0xb1, 0xfb, 0xfd, 0xce, 0x54, 0xe1, 0x74, 0xa5, 0xb0, 0xa8, - 0x63, 0x1d, 0xc7, 0x0d, 0xe9, 0x0a, 0x73, 0x7f, 0x48, 0x0f, 0x96, 0x70, 0x11, 0x38, 0x61, 0x63, - 0xf7, 0xfd, 0x0b, 0xf8, 0x87, 0x16, 0x4b, 0x1d, 0xe5, 0xff, 0x44, 0xbe, 0xf0, 0xb5, 0x91, 0x93, - 0xdb, 0xb0, 0x66, 0x94, 0xb1, 0xbb, 0x9b, 0x25, 0x49, 0x74, 0x96, 0x17, 0xab, 0x06, 0xda, 0x8e, - 0xd1, 0xd4, 0xfa, 0xdd, 0x12, 0xac, 0x1d, 0xa8, 0x38, 0x61, 0x81, 0x41, 0x26, 0xb9, 0x0e, 0xcb, - 0xb9, 0xa8, 0xdb, 0x8f, 0x7c, 0x44, 0x9e, 0xc1, 0x86, 0x36, 0xcc, 0x70, 0x3f, 0x61, 0x67, 0x91, - 0x62, 0xa1, 0xf6, 0xe6, 0x77, 0x16, 0xda, 0x8d, 0xdd, 0xbb, 0x9d, 0x59, 0x6d, 0xa3, 0x73, 0x6c, - 0x39, 0x7d, 0x47, 0xa1, 0xeb, 0x7a, 0x6c, 0xa4, 0xc9, 0x43, 0x00, 0x99, 0x45, 0x91, 0x18, 0x0a, - 0x9e, 0xda, 0xd2, 0x6b, 0xe5, 0xda, 0x17, 0x24, 0xe3, 0x69, 0x41, 0xa0, 0x63, 0x5c, 0xab, 0xe4, - 0xf2, 0x91, 0x2a, 0xe5, 0x6a, 0x72, 0x63, 0xf7, 0xce, 0x05, 0x4a, 0x4f, 0x78, 0xfa, 0x3a, 0xe2, - 0x54, 0x29, 0x43, 0x57, 0x91, 0x6c, 0xff, 0x5a, 0x25, 0xd7, 0x3b, 0x50, 0xe9, 0x3b, 0x97, 0x56, - 0x42, 0x32, 0x2a, 0xdd, 0x81, 0x2b, 0xd5, 0xed, 0x32, 0x2c, 0x35, 0x3c, 0xc4, 0x8a, 0x51, 0xa7, - 0x9b, 0xe5, 0xad, 0x72, 0x66, 0x42, 0x61, 0x63, 0x18, 0x87, 0x7e, 0x52, 0x9e, 0x63, 0x2f, 0xc4, - 0x89, 0x3f, 0x9c, 0x9d, 0xdb, 0x89, 0xa3, 0x4f, 0xd7, 0x87, 0x13, 0x37, 0x81, 0xc2, 0x9a, 0x3e, - 0x65, 0x89, 0xaf, 0x32, 0x93, 0x64, 0x46, 0x7b, 0x4b, 0x98, 0xde, 0xee, 0x94, 0xa2, 0xed, 0xb1, - 0xa5, 0xde, 0x3e, 0x33, 0xc1, 0xe8, 0xf8, 0x94, 0x25, 0x9f, 0x23, 0xe7, 0x90, 0x19, 0x46, 0x1b, - 0xba, 0x1c, 0x6b, 0xf2, 0x6b, 0xb8, 0xe2, 0x7a, 0xee, 0x58, 0xa4, 0xcb, 0x18, 0xe9, 0x0f, 0x67, - 0x47, 0x3a, 0xd5, 0xbc, 0xe9, 0x66, 0x30, 0x69, 0x68, 0x7d, 0xb5, 0x0c, 0x6b, 0xe3, 0x47, 0x85, - 0x50, 0x58, 0x4d, 0x55, 0x14, 0xf1, 0xd0, 0xcf, 0x92, 0xfc, 0x9e, 0x7d, 0xfc, 0xcd, 0x4f, 0x5a, - 0x87, 0x22, 0xf7, 0x97, 0xc9, 0xc3, 0x39, 0x5a, 0x4f, 0xf3, 0xff, 0xe4, 0x01, 0x2c, 0x4a, 0x65, - 0x78, 0x7e, 0xed, 0xba, 0x97, 0x90, 0x7b, 0xaa, 0x0c, 0x7f, 0x38, 0x47, 0x91, 0x6e, 0x65, 0x6c, - 0x52, 0xf0, 0xd2, 0x5d, 0x4e, 0xc6, 0xe6, 0xd6, 0xca, 0x58, 0x3a, 0x79, 0x06, 0x75, 0x2c, 0xfc, - 0xf6, 0xfb, 0x64, 0xf1, 0xd2, 0x0b, 0xec, 0xe7, 0x54, 0xbb, 0xc0, 0x42, 0xa6, 0xf9, 0x02, 0xea, - 0xc5, 0xc2, 0xc9, 0x53, 0x80, 0x40, 0xc5, 0xb1, 0x30, 0x31, 0x97, 0x26, 0xcf, 0x60, 0xe7, 0x82, - 0x83, 0x8c, 0x33, 0x1c, 0x94, 0x2c, 0x3a, 0xa6, 0xd0, 0xfc, 0x63, 0x0d, 0x16, 0x6d, 0x1a, 0xc8, - 0x7d, 0x58, 0xd6, 0x2a, 0x4b, 0x03, 0x9e, 0x8b, 0xb6, 0x67, 0x47, 0x6d, 0x39, 0xc7, 0x88, 0xa7, - 0x39, 0x8f, 0xfc, 0x7c, 0x62, 0x1f, 0xee, 0x5e, 0x74, 0xe3, 0x55, 0x55, 0x40, 0x90, 0xd7, 0xfc, - 0x7d, 0x0d, 0x16, 0x6d, 0x2a, 0xdf, 0x41, 0x28, 0x9f, 0xe6, 0x7b, 0xe9, 0x42, 0xf9, 0xc1, 0xac, - 0xdb, 0x61, 0x67, 0x2c, 0xe3, 0xb0, 0xa4, 0xe6, 0x9f, 0x6b, 0x50, 0x2f, 0xf6, 0x81, 0xdc, 0x83, - 0xe5, 0x28, 0xf1, 0xe5, 0xd0, 0xe4, 0x5a, 0xb7, 0x67, 0x69, 0x3d, 0x4e, 0x9e, 0x0e, 0x0d, 0x5d, - 0x8a, 0xec, 0xcf, 0xbb, 0xde, 0xa9, 0xfd, 0x4d, 0x58, 0x9f, 0xa8, 0xd4, 0xad, 0xcf, 0xa0, 0xf1, - 0x99, 0x54, 0xa7, 0x12, 0x1b, 0x91, 0x26, 0x3f, 0x85, 0x65, 0xec, 0x44, 0xb6, 0x37, 0x2e, 0x7c, - 0x83, 0xfe, 0x83, 0x34, 0x9a, 0x73, 0x5a, 0x2d, 0x80, 0x2a, 0x8f, 0xe4, 0x2a, 0x2c, 0x09, 0x29, - 0xb9, 0x6b, 0xde, 0x6b, 0xd4, 0x0d, 0x5a, 0x67, 0xb0, 0x8a, 0x8d, 0x1f, 0x1b, 0xe6, 0x23, 0x68, - 0xd8, 0x5d, 0xf3, 0xbf, 0xe5, 0x4e, 0x81, 0xac, 0x66, 0xbb, 0x0d, 0x6b, 0xee, 0x93, 0x63, 0xa2, - 0x61, 0x37, 0xd0, 0x96, 0x37, 0xeb, 0x3f, 0x2c, 0xc0, 0xe6, 0x11, 0x97, 0x5c, 0x0b, 0xbd, 0x97, - 0x24, 0x98, 0x26, 0xd2, 0x87, 0xb5, 0xb1, 0xb2, 0xa5, 0xf3, 0x10, 0x2e, 0x59, 0xb2, 0x1a, 0x55, - 0xc9, 0xd2, 0xe4, 0x08, 0xa0, 0x7c, 0x08, 0x14, 0x8d, 0x70, 0xfa, 0xf0, 0xb8, 0x67, 0x4e, 0xa9, - 0x57, 0xbe, 0x0d, 0xe8, 0x18, 0x95, 0xbc, 0x80, 0x06, 0x8b, 0x22, 0x15, 0xe0, 0x8b, 0xa4, 0xe8, - 0x81, 0xf7, 0x66, 0x47, 0x36, 0xb5, 0xbc, 0xce, 0x5e, 0x29, 0x40, 0xc7, 0xc5, 0x9a, 0xbf, 0x05, - 0xa8, 0x5c, 0xb6, 0xaf, 0xe7, 0xdf, 0x9f, 0x79, 0x5f, 0x77, 0x23, 0xbb, 0x83, 0xd5, 0xc7, 0xc8, - 0x6a, 0xf1, 0x99, 0x71, 0x1f, 0x56, 0x58, 0x18, 0xa6, 0x5c, 0xeb, 0xbc, 0xcc, 0x5d, 0xf8, 0x91, - 0xe3, 0xd0, 0xb4, 0xa0, 0xed, 0xff, 0x6d, 0xfe, 0xef, 0xe7, 0xdb, 0xb5, 0x2f, 0xcf, 0xb7, 0x6b, - 0xff, 0x3e, 0xdf, 0xae, 0xfd, 0xe9, 0xed, 0xf6, 0xdc, 0x97, 0x6f, 0xb7, 0xe7, 0xfe, 0xf5, 0x76, - 0x7b, 0x0e, 0x76, 0x02, 0x15, 0xcf, 0x5c, 0xe2, 0x3e, 0xb8, 0xec, 0xdb, 0xc7, 0x5f, 0xbf, 0xf6, - 0xe2, 0xf9, 0x2b, 0x61, 0x46, 0xd9, 0xa0, 0x13, 0xa8, 0xb8, 0x1b, 0x28, 0x1d, 0x2b, 0xdd, 0x4d, - 0x79, 0xc4, 0xce, 0x78, 0xda, 0x3d, 0xd9, 0x2d, 0xff, 0xa2, 0x84, 0xee, 0xce, 0x7a, 0xee, 0x7e, - 0x8a, 0xc3, 0x62, 0xf4, 0x97, 0xf9, 0x85, 0xfe, 0xc1, 0xc1, 0x5f, 0xe7, 0xb7, 0xfa, 0x45, 0x28, - 0x07, 0x36, 0x14, 0x9c, 0xba, 0xf3, 0x3c, 0x07, 0xfd, 0xa3, 0x72, 0xbf, 0xb4, 0xee, 0x97, 0xe8, - 0x7e, 0x59, 0xb8, 0xcf, 0xe7, 0xdb, 0xb3, 0xdc, 0x2f, 0x8f, 0xfa, 0xfb, 0x4f, 0xb8, 0x61, 0x21, - 0x33, 0xec, 0x3f, 0xf3, 0xb7, 0x0a, 0x68, 0xaf, 0x67, 0xb1, 0xbd, 0x1e, 0x82, 0x7b, 0xbd, 0x02, - 0x3d, 0x58, 0xc6, 0xe7, 0xee, 0xc7, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x31, 0xa7, 0xa5, 0x64, - 0xb4, 0x0f, 0x00, 0x00, + // 1553 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5b, 0x6f, 0x23, 0x49, + 0x15, 0x8e, 0x73, 0xf7, 0xb1, 0x93, 0x0c, 0xb5, 0x73, 0xe9, 0x09, 0x21, 0x93, 0xb5, 0x76, 0xc0, + 0x33, 0x2b, 0x6c, 0x36, 0xbb, 0x82, 0x95, 0x97, 0x45, 0x93, 0xcb, 0x90, 0x19, 0xed, 0xce, 0xac, + 0xb7, 0xb2, 0x04, 0x34, 0x8a, 0xd4, 0x2a, 0x77, 0x57, 0xe2, 0xd2, 0x74, 0x57, 0x35, 0x5d, 0xd5, + 0xb9, 0xbc, 0x83, 0xc4, 0x23, 0xbf, 0x01, 0xde, 0x78, 0x40, 0xe2, 0x5f, 0x20, 0x24, 0xa4, 0x7d, + 0x44, 0x3c, 0xa1, 0xcc, 0x1b, 0x4f, 0xfc, 0x04, 0x54, 0xa7, 0xfa, 0x62, 0x9b, 0xc5, 0x99, 0x20, + 0xde, 0x5c, 0xe7, 0x7c, 0xdf, 0x57, 0xa7, 0x4e, 0xd5, 0x39, 0xa7, 0x0d, 0xed, 0x84, 0xcb, 0x2c, + 0x1e, 0xa4, 0xac, 0x1b, 0xa8, 0x94, 0x77, 0x83, 0x21, 0x13, 0xb2, 0x7b, 0xf6, 0x01, 0x8b, 0x92, + 0x21, 0xfb, 0xc0, 0x2d, 0x3b, 0x49, 0xaa, 0x8c, 0x22, 0x1b, 0x05, 0xb2, 0x63, 0x91, 0x1d, 0xe7, + 0x2a, 0x90, 0xeb, 0x8f, 0x27, 0x74, 0xd2, 0xcb, 0xc4, 0xa8, 0x11, 0x21, 0x5c, 0x3b, 0xa5, 0xf5, + 0x89, 0x3d, 0xb5, 0x61, 0xaf, 0x79, 0x05, 0xc5, 0x65, 0x8e, 0x7c, 0x6f, 0x1c, 0x19, 0xf2, 0x8b, + 0x0a, 0x17, 0xf2, 0x0b, 0x87, 0x6a, 0xfd, 0x75, 0x09, 0xd6, 0xf6, 0x6c, 0x38, 0x7d, 0x96, 0xb2, + 0x98, 0x1b, 0x9e, 0x6a, 0x72, 0x1f, 0x96, 0x31, 0x42, 0x5f, 0x84, 0x5e, 0x6d, 0xab, 0xd6, 0xae, + 0xd3, 0x25, 0x5c, 0x3f, 0x0f, 0xc9, 0x43, 0x58, 0xe5, 0x89, 0x0a, 0x86, 0x7e, 0x98, 0xa5, 0xcc, + 0x08, 0x25, 0xbd, 0xd9, 0xad, 0x5a, 0x7b, 0x9e, 0xae, 0xa0, 0x75, 0x3f, 0x37, 0x92, 0x47, 0x70, + 0x2b, 0x93, 0x03, 0x25, 0x43, 0x21, 0x4f, 0x7d, 0x74, 0x69, 0x6f, 0x0e, 0x81, 0x6b, 0xa5, 0xfd, + 0x29, 0x9a, 0xc9, 0x47, 0x70, 0x97, 0x05, 0x46, 0x9c, 0x71, 0xff, 0x8c, 0x45, 0x22, 0x64, 0x46, + 0xa5, 0x7e, 0x24, 0x62, 0x61, 0xbc, 0x79, 0x24, 0xdc, 0x76, 0xde, 0xa3, 0xc2, 0xf9, 0xb9, 0xf5, + 0x91, 0x36, 0xdc, 0x1a, 0x30, 0xcd, 0xfd, 0x94, 0x9f, 0xb3, 0x34, 0xf4, 0x53, 0x66, 0xb8, 0x57, + 0x47, 0xfc, 0xaa, 0xb5, 0x53, 0x34, 0x53, 0x66, 0x38, 0x79, 0x02, 0x1b, 0x3a, 0x62, 0x7a, 0x68, + 0x23, 0x49, 0xb8, 0x64, 0x91, 0xb9, 0xf4, 0x63, 0xa1, 0x07, 0x7c, 0xc8, 0xce, 0x84, 0x4a, 0xbd, + 0x05, 0x64, 0xad, 0x17, 0x98, 0xbe, 0x83, 0xbc, 0xa8, 0x10, 0xa4, 0x07, 0xf7, 0xff, 0x43, 0x21, + 0x54, 0xe7, 0xd2, 0x88, 0x98, 0x7b, 0x80, 0xf4, 0x7b, 0x13, 0xf4, 0xfd, 0xdc, 0x4d, 0x7e, 0x04, + 0x9e, 0x16, 0xa7, 0x92, 0x87, 0xfe, 0x20, 0x52, 0xc1, 0x6b, 0xed, 0x9f, 0x0b, 0x19, 0xaa, 0x73, + 0x3f, 0xe2, 0xd2, 0x6b, 0x20, 0xf5, 0x8e, 0xf3, 0xef, 0xa2, 0xfb, 0xe7, 0xe8, 0xfd, 0x9c, 0x4b, + 0xb2, 0x0d, 0x77, 0x62, 0xa1, 0x75, 0x45, 0x8c, 0xd9, 0x85, 0x88, 0xb3, 0xd8, 0x6b, 0x22, 0xeb, + 0x1d, 0xe7, 0x74, 0xac, 0x17, 0xce, 0x45, 0x1e, 0x40, 0x43, 0x0c, 0x02, 0x9f, 0x4b, 0x36, 0x88, + 0x78, 0xe8, 0x2d, 0x6e, 0xd5, 0xda, 0xcb, 0x14, 0xc4, 0x20, 0x78, 0xea, 0x2c, 0xe4, 0x29, 0x3c, + 0x10, 0x72, 0xa0, 0x32, 0x19, 0xfa, 0x22, 0xd0, 0xdb, 0x3f, 0xf0, 0x4d, 0xca, 0xa4, 0x3e, 0xe1, + 0xa9, 0x2e, 0x49, 0x4b, 0x48, 0xda, 0xc8, 0x61, 0xcf, 0x2d, 0xea, 0xab, 0x02, 0x54, 0xc8, 0x1c, + 0xc0, 0x96, 0xca, 0xcc, 0x74, 0x9d, 0x65, 0xd4, 0xf9, 0x4e, 0x81, 0xfb, 0x66, 0xa1, 0x8f, 0xe0, + 0x6e, 0x92, 0xaa, 0x44, 0x69, 0x16, 0xf9, 0x67, 0xca, 0xd8, 0x04, 0xbb, 0xd3, 0x7a, 0xb7, 0xdd, + 0xdd, 0x17, 0xde, 0x23, 0x74, 0xba, 0xd3, 0x92, 0x1f, 0xc2, 0xbd, 0x92, 0x15, 0xf2, 0x44, 0x69, + 0x61, 0x7c, 0x16, 0xab, 0x4c, 0x1a, 0xef, 0x8e, 0x4b, 0x69, 0xe1, 0xde, 0x77, 0xde, 0x1d, 0x74, + 0xda, 0x94, 0x56, 0xbb, 0xd9, 0xe7, 0xe4, 0xff, 0x32, 0x53, 0x69, 0x16, 0x7b, 0x77, 0xf1, 0x8d, + 0xbf, 0x53, 0x6e, 0x66, 0x7d, 0x5f, 0xa2, 0x6b, 0x6c, 0xaf, 0x84, 0x69, 0xed, 0x9b, 0x61, 0xca, + 0xf5, 0x50, 0x45, 0xa1, 0x77, 0x0f, 0x59, 0xa5, 0x64, 0x9f, 0x69, 0xfd, 0x55, 0xe1, 0x24, 0x1f, + 0x83, 0x57, 0xf2, 0xf0, 0x6d, 0x8c, 0x10, 0x3d, 0x24, 0x96, 0x27, 0x3f, 0xb4, 0xee, 0x8a, 0xf9, + 0x29, 0x7c, 0x3b, 0x64, 0xca, 0xd7, 0x09, 0x97, 0xa1, 0x5f, 0x60, 0xaa, 0xbc, 0xde, 0xc7, 0xbc, + 0x7a, 0x21, 0x53, 0x87, 0x16, 0xd1, 0x2f, 0x00, 0x79, 0x4a, 0x5b, 0x07, 0xb0, 0x40, 0x6d, 0x0d, + 0x92, 0x0d, 0xa8, 0xcb, 0x2c, 0xe6, 0xa9, 0xad, 0x19, 0xac, 0xe2, 0x79, 0x5a, 0x19, 0xc8, 0x16, + 0x34, 0x42, 0x2e, 0x55, 0x2c, 0x24, 0xfa, 0x5d, 0x11, 0x8f, 0x9a, 0x5a, 0x01, 0xac, 0xfc, 0x34, + 0x0e, 0x47, 0xba, 0xc2, 0x43, 0x58, 0x4d, 0x52, 0x1e, 0x08, 0x2d, 0x94, 0xf4, 0x07, 0xc2, 0x68, + 0x54, 0x5d, 0xa1, 0x2b, 0xa5, 0x75, 0x57, 0x18, 0x4d, 0xde, 0x07, 0xc2, 0xb4, 0xaf, 0x4e, 0xdc, + 0x4d, 0xfa, 0x43, 0x2e, 0x4e, 0x87, 0x26, 0xdf, 0x60, 0x8d, 0xe9, 0x2f, 0x4e, 0xf0, 0x16, 0x9f, + 0xa1, 0xb9, 0xf5, 0xf7, 0x1a, 0xd4, 0x77, 0xb4, 0xe6, 0xe6, 0xb9, 0x3c, 0x51, 0x64, 0x07, 0x96, + 0x99, 0x5d, 0x14, 0x7d, 0xa7, 0xb1, 0xfd, 0xdd, 0xce, 0x44, 0xe3, 0x74, 0xad, 0xb0, 0xe8, 0x63, + 0x1d, 0xc7, 0x0d, 0xe9, 0x12, 0x73, 0x3f, 0x48, 0x0f, 0x16, 0xf0, 0x10, 0xb8, 0x61, 0x63, 0xfb, + 0xbd, 0x6b, 0xf8, 0xfb, 0x16, 0x4b, 0x1d, 0xe5, 0xbf, 0x44, 0x3e, 0xf7, 0x8d, 0x91, 0x93, 0x77, + 0xa1, 0x69, 0x94, 0xb1, 0xb7, 0x9b, 0x25, 0x49, 0x74, 0x99, 0x37, 0xab, 0x06, 0xda, 0x0e, 0xd1, + 0xd4, 0xfa, 0xd5, 0x02, 0x34, 0xf7, 0x54, 0x9c, 0xb0, 0xc0, 0x20, 0x93, 0xdc, 0x85, 0xc5, 0x5c, + 0xd4, 0xdd, 0x47, 0xbe, 0x22, 0x5f, 0xc2, 0xaa, 0x36, 0xcc, 0x70, 0x3f, 0x61, 0x97, 0x91, 0x62, + 0xa1, 0xf6, 0x66, 0xb7, 0xe6, 0xda, 0x8d, 0xed, 0xc7, 0x9d, 0x69, 0x63, 0xa3, 0x73, 0x68, 0x39, + 0x7d, 0x47, 0xa1, 0x2b, 0x7a, 0x64, 0xa5, 0xc9, 0x33, 0x00, 0x99, 0x45, 0x91, 0x38, 0x11, 0x3c, + 0xb5, 0xad, 0xd7, 0xca, 0xb5, 0xaf, 0x49, 0xc6, 0xcb, 0x82, 0x40, 0x47, 0xb8, 0x56, 0xc9, 0xe5, + 0x23, 0x55, 0xca, 0xf5, 0xe4, 0xc6, 0xf6, 0xa3, 0x6b, 0x94, 0x5e, 0xf0, 0xf4, 0x75, 0xc4, 0xa9, + 0x52, 0x86, 0xd6, 0x91, 0x6c, 0x7f, 0x5a, 0x25, 0x37, 0x3b, 0x50, 0xe9, 0x5b, 0x37, 0x56, 0x42, + 0x32, 0x2a, 0x3d, 0x82, 0x5b, 0x55, 0x75, 0x19, 0x96, 0x1a, 0x1e, 0x62, 0xc7, 0x58, 0xa6, 0x6b, + 0x65, 0x55, 0x39, 0x33, 0xa1, 0xb0, 0x7a, 0x12, 0x87, 0x7e, 0x52, 0xbe, 0x63, 0x2f, 0xc4, 0x8d, + 0xdf, 0x9f, 0x9e, 0xdb, 0xb1, 0xa7, 0x4f, 0x57, 0x4e, 0xc6, 0x2a, 0x81, 0x42, 0x53, 0x9f, 0xb3, + 0xc4, 0x57, 0x99, 0x49, 0x32, 0xa3, 0xbd, 0x05, 0x4c, 0x6f, 0x77, 0x42, 0xd1, 0xce, 0xd8, 0x52, + 0x6f, 0x97, 0x99, 0x60, 0x78, 0x78, 0xce, 0x92, 0x2f, 0x90, 0xb3, 0xcf, 0x0c, 0xa3, 0x0d, 0x5d, + 0xae, 0x35, 0xf9, 0x05, 0xdc, 0x72, 0x33, 0x77, 0x24, 0xd2, 0x45, 0x8c, 0xf4, 0xfb, 0xd3, 0x23, + 0x9d, 0x18, 0xde, 0x74, 0x2d, 0x18, 0x37, 0xb4, 0xfe, 0x35, 0x0f, 0xcd, 0xd1, 0xa7, 0x42, 0x28, + 0xd4, 0x53, 0x15, 0x45, 0x3c, 0xf4, 0xb3, 0x24, 0xaf, 0xb3, 0x0f, 0xdf, 0xfe, 0xa5, 0x75, 0x28, + 0x72, 0x7f, 0x96, 0x3c, 0x9b, 0xa1, 0xcb, 0x69, 0xfe, 0x9b, 0x3c, 0x85, 0x79, 0xa9, 0x0c, 0xcf, + 0xcb, 0xae, 0x7b, 0x03, 0xb9, 0x97, 0xca, 0xf0, 0x67, 0x33, 0x14, 0xe9, 0x56, 0xc6, 0x26, 0x05, + 0x8b, 0xee, 0x66, 0x32, 0x36, 0xb7, 0x56, 0xc6, 0xd2, 0xd7, 0x5f, 0xc1, 0x72, 0x11, 0x25, 0x79, + 0x09, 0x10, 0xa8, 0x38, 0x16, 0x26, 0xe6, 0xd2, 0xe4, 0xc7, 0xed, 0x5c, 0xf3, 0xea, 0x50, 0x79, + 0xaf, 0x64, 0xd1, 0x11, 0x85, 0xf5, 0xdf, 0xd4, 0x60, 0xde, 0xc6, 0x4c, 0x9e, 0xc0, 0xa2, 0x56, + 0x59, 0x1a, 0xf0, 0x5c, 0xb4, 0x3d, 0x3d, 0x5a, 0xcb, 0x39, 0x44, 0x3c, 0xcd, 0x79, 0xe4, 0x27, + 0x63, 0x49, 0x7b, 0x7c, 0x5d, 0x79, 0xaa, 0xaa, 0xda, 0x91, 0xb7, 0xfe, 0xeb, 0x1a, 0xcc, 0xdb, + 0x73, 0xff, 0x1f, 0x42, 0xf9, 0x24, 0x4f, 0xbc, 0x0b, 0xe5, 0x7b, 0xd3, 0x9e, 0xb2, 0xdd, 0xb1, + 0x8c, 0xc3, 0x92, 0x76, 0xd7, 0x60, 0x65, 0xac, 0x7f, 0xb5, 0x3e, 0x83, 0xc6, 0x67, 0x52, 0x9d, + 0x4b, 0x6c, 0xcf, 0x9a, 0xfc, 0x18, 0x16, 0xb1, 0x3f, 0xdb, 0x89, 0x31, 0xf7, 0x16, 0x5d, 0x19, + 0x69, 0x34, 0xe7, 0xb4, 0x5a, 0x00, 0x55, 0xc0, 0xe4, 0x36, 0x2c, 0x08, 0x29, 0xb9, 0x1b, 0x69, + 0x4d, 0xea, 0x16, 0xad, 0x4b, 0xa8, 0xe3, 0x38, 0xc4, 0x31, 0xf2, 0x1c, 0x1a, 0x36, 0x3d, 0xfe, + 0xff, 0x98, 0x12, 0x90, 0xd5, 0x6e, 0xef, 0x42, 0xd3, 0x0d, 0xe2, 0xb1, 0x31, 0xd6, 0x40, 0x5b, + 0x3e, 0xc2, 0xfe, 0x38, 0x07, 0x6b, 0x07, 0x5c, 0x72, 0x2d, 0xf4, 0x4e, 0x92, 0xe0, 0xcb, 0x21, + 0x7d, 0x68, 0x8e, 0x14, 0xb3, 0xce, 0x43, 0xb8, 0x61, 0x21, 0x37, 0xaa, 0x42, 0xd6, 0xe4, 0x00, + 0xa0, 0xfc, 0x3c, 0x2e, 0xc6, 0xc3, 0xe4, 0x2d, 0xb9, 0x8f, 0xff, 0x52, 0xaf, 0xfc, 0x62, 0xa6, + 0x23, 0x54, 0xf2, 0x0a, 0x1a, 0x2c, 0x8a, 0x54, 0x80, 0xdf, 0xe9, 0xc5, 0x64, 0xf8, 0x78, 0x7a, + 0x64, 0x13, 0xc7, 0xeb, 0xec, 0x94, 0x02, 0x74, 0x54, 0x6c, 0xfd, 0xf7, 0x35, 0x80, 0xca, 0x47, + 0x3e, 0x85, 0xc5, 0xfc, 0xb3, 0xcc, 0x9d, 0xff, 0xe1, 0x75, 0xd7, 0x8e, 0x60, 0x9a, 0x93, 0xec, + 0x4d, 0x57, 0xa3, 0xbc, 0x5e, 0x0c, 0xe9, 0x27, 0xb0, 0xc4, 0xc2, 0x30, 0xe5, 0x5a, 0xe7, 0x4d, + 0xe2, 0xda, 0x4f, 0x04, 0x87, 0xa6, 0x05, 0xad, 0xf5, 0x04, 0x16, 0xf0, 0xaf, 0x87, 0x7b, 0x4a, + 0x21, 0xbf, 0xc8, 0xa7, 0xb1, 0x5b, 0xe0, 0x95, 0xdb, 0xd9, 0x31, 0x79, 0xe5, 0xd6, 0xe6, 0xae, + 0x7c, 0xf7, 0x4f, 0xb3, 0x7f, 0xbe, 0xda, 0xac, 0x7d, 0x7d, 0xb5, 0x59, 0xfb, 0xc7, 0xd5, 0x66, + 0xed, 0xb7, 0x6f, 0x36, 0x67, 0xbe, 0x7e, 0xb3, 0x39, 0xf3, 0xb7, 0x37, 0x9b, 0x33, 0xb0, 0x15, + 0xa8, 0x78, 0x6a, 0x32, 0x77, 0xc1, 0xdd, 0xb3, 0xfd, 0xf3, 0xd5, 0xaf, 0xbd, 0x3a, 0x3a, 0x15, + 0x66, 0x98, 0x0d, 0x3a, 0x81, 0x8a, 0xbb, 0x81, 0xd2, 0xb1, 0xd2, 0xdd, 0x94, 0x47, 0xec, 0x92, + 0xa7, 0xdd, 0xb3, 0xed, 0xf2, 0x27, 0x4a, 0xe8, 0xee, 0xb4, 0xbf, 0x9b, 0x9f, 0xe0, 0xb2, 0x58, + 0xfd, 0x6e, 0x76, 0xae, 0xbf, 0xb7, 0xf7, 0x87, 0xd9, 0x8d, 0x7e, 0x11, 0xca, 0x9e, 0x0d, 0x05, + 0xb7, 0xee, 0x1c, 0xe5, 0xa0, 0xbf, 0x54, 0xee, 0x63, 0xeb, 0x3e, 0x46, 0xf7, 0x71, 0xe1, 0xbe, + 0x9a, 0x6d, 0x4f, 0x73, 0x1f, 0x1f, 0xf4, 0x77, 0x5f, 0x70, 0xc3, 0x42, 0x66, 0xd8, 0x3f, 0x67, + 0x1f, 0x14, 0xd0, 0x5e, 0xcf, 0x62, 0x7b, 0x3d, 0x04, 0xf7, 0x7a, 0x05, 0x7a, 0xb0, 0x88, 0x7f, + 0x37, 0x3f, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0xae, 0x76, 0x40, 0x34, 0x0f, 0x00, + 0x00, } func (m *ChainParameters) Marshal() (dAtA []byte, err error) { @@ -1725,27 +1711,6 @@ func (m *StatePayload_Swap_) MarshalToSizedBuffer(dAtA []byte) (int, error) { } return len(dAtA) - i, nil } -func (m *StatePayload_Position_) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StatePayload_Position_) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Position != nil { - { - size, err := m.Position.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintChain(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - return len(dAtA) - i, nil -} func (m *StatePayload_RolledUp) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1875,53 +1840,6 @@ func (m *StatePayload_Swap) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *StatePayload_Position) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StatePayload_Position) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StatePayload_Position) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.LpNft != nil { - { - size, err := m.LpNft.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintChain(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Commitment != nil { - { - size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintChain(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *KnownAssets) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2131,8 +2049,48 @@ func (m *GenesisAppState_Allocation) MarshalToSizedBuffer(dAtA []byte) (int, err i-- dAtA[i] = 0x12 } - if m.Amount != 0 { - i = encodeVarintChain(dAtA, i, uint64(m.Amount)) + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Epoch) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Epoch) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Epoch) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.StartHeight != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.StartHeight)) + i-- + dAtA[i] = 0x10 + } + if m.Index != 0 { + i = encodeVarintChain(dAtA, i, uint64(m.Index)) i-- dAtA[i] = 0x8 } @@ -2367,18 +2325,6 @@ func (m *StatePayload_Swap_) Size() (n int) { } return n } -func (m *StatePayload_Position_) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Position != nil { - l = m.Position.Size() - n += 1 + l + sovChain(uint64(l)) - } - return n -} func (m *StatePayload_RolledUp) Size() (n int) { if m == nil { return 0 @@ -2426,23 +2372,6 @@ func (m *StatePayload_Swap) Size() (n int) { return n } -func (m *StatePayload_Position) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Commitment != nil { - l = m.Commitment.Size() - n += 1 + l + sovChain(uint64(l)) - } - if m.LpNft != nil { - l = m.LpNft.Size() - n += 1 + l + sovChain(uint64(l)) - } - return n -} - func (m *KnownAssets) Size() (n int) { if m == nil { return 0 @@ -2518,8 +2447,9 @@ func (m *GenesisAppState_Allocation) Size() (n int) { } var l int _ = l - if m.Amount != 0 { - n += 1 + sovChain(uint64(m.Amount)) + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovChain(uint64(l)) } l = len(m.Denom) if l > 0 { @@ -2532,6 +2462,21 @@ func (m *GenesisAppState_Allocation) Size() (n int) { return n } +func (m *Epoch) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Index != 0 { + n += 1 + sovChain(uint64(m.Index)) + } + if m.StartHeight != 0 { + n += 1 + sovChain(uint64(m.StartHeight)) + } + return n +} + func sovChain(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -3791,41 +3736,6 @@ func (m *StatePayload) Unmarshal(dAtA []byte) error { } m.StatePayload = &StatePayload_Swap_{v} iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthChain - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthChain - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &StatePayload_Position{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.StatePayload = &StatePayload_Position_{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipChain(dAtA[iNdEx:]) @@ -4177,128 +4087,6 @@ func (m *StatePayload_Swap) Unmarshal(dAtA []byte) error { } return nil } -func (m *StatePayload_Position) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Position: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Position: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthChain - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthChain - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Commitment == nil { - m.Commitment = &v1alpha1.StateCommitment{} - } - if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LpNft", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthChain - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthChain - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.LpNft == nil { - m.LpNft = &v1alpha11.LpNft{} - } - if err := m.LpNft.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipChain(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthChain - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *KnownAssets) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -4756,10 +4544,10 @@ func (m *GenesisAppState_Allocation) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - m.Amount = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowChain @@ -4769,11 +4557,28 @@ func (m *GenesisAppState_Allocation) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Amount |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Amount == nil { + m.Amount = &v1alpha1.Amount{} + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) @@ -4863,6 +4668,94 @@ func (m *GenesisAppState_Allocation) Unmarshal(dAtA []byte) error { } return nil } +func (m *Epoch) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Epoch: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Epoch: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + m.Index = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Index |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartHeight", wireType) + } + m.StartHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipChain(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthChain + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipChain(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go index fa0a1ff3e..720bc79d3 100644 --- a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go +++ b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go @@ -864,6 +864,206 @@ func (m *Value) GetAssetId() *AssetId { return nil } +// Represents a value of a known or unknown denomination. +// +// Note: unlike some other View types, we don't just store the underlying +// `Value` message together with an additional `Denom`. Instead, we record +// either an `Amount` and `Denom` (only) or an `Amount` and `AssetId`. This is +// because we don't want to allow a situation where the supplied `Denom` doesn't +// match the `AssetId`, and a consumer of the API that doesn't check is tricked. +// This way, the `Denom` will always match, because the consumer is forced to +// recompute it themselves if they want it. +type ValueView struct { + // Types that are valid to be assigned to ValueView: + // + // *ValueView_KnownDenom_ + // *ValueView_UnknownDenom_ + ValueView isValueView_ValueView `protobuf_oneof:"value_view"` +} + +func (m *ValueView) Reset() { *m = ValueView{} } +func (m *ValueView) String() string { return proto.CompactTextString(m) } +func (*ValueView) ProtoMessage() {} +func (*ValueView) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{15} +} +func (m *ValueView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValueView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValueView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValueView) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValueView.Merge(m, src) +} +func (m *ValueView) XXX_Size() int { + return m.Size() +} +func (m *ValueView) XXX_DiscardUnknown() { + xxx_messageInfo_ValueView.DiscardUnknown(m) +} + +var xxx_messageInfo_ValueView proto.InternalMessageInfo + +type isValueView_ValueView interface { + isValueView_ValueView() + MarshalTo([]byte) (int, error) + Size() int +} + +type ValueView_KnownDenom_ struct { + KnownDenom *ValueView_KnownDenom `protobuf:"bytes,1,opt,name=known_denom,json=knownDenom,proto3,oneof" json:"known_denom,omitempty"` +} +type ValueView_UnknownDenom_ struct { + UnknownDenom *ValueView_UnknownDenom `protobuf:"bytes,2,opt,name=unknown_denom,json=unknownDenom,proto3,oneof" json:"unknown_denom,omitempty"` +} + +func (*ValueView_KnownDenom_) isValueView_ValueView() {} +func (*ValueView_UnknownDenom_) isValueView_ValueView() {} + +func (m *ValueView) GetValueView() isValueView_ValueView { + if m != nil { + return m.ValueView + } + return nil +} + +func (m *ValueView) GetKnownDenom() *ValueView_KnownDenom { + if x, ok := m.GetValueView().(*ValueView_KnownDenom_); ok { + return x.KnownDenom + } + return nil +} + +func (m *ValueView) GetUnknownDenom() *ValueView_UnknownDenom { + if x, ok := m.GetValueView().(*ValueView_UnknownDenom_); ok { + return x.UnknownDenom + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ValueView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ValueView_KnownDenom_)(nil), + (*ValueView_UnknownDenom_)(nil), + } +} + +// A value whose asset ID has a known denomination. +type ValueView_KnownDenom struct { + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Denom *Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *ValueView_KnownDenom) Reset() { *m = ValueView_KnownDenom{} } +func (m *ValueView_KnownDenom) String() string { return proto.CompactTextString(m) } +func (*ValueView_KnownDenom) ProtoMessage() {} +func (*ValueView_KnownDenom) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{15, 0} +} +func (m *ValueView_KnownDenom) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValueView_KnownDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValueView_KnownDenom.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValueView_KnownDenom) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValueView_KnownDenom.Merge(m, src) +} +func (m *ValueView_KnownDenom) XXX_Size() int { + return m.Size() +} +func (m *ValueView_KnownDenom) XXX_DiscardUnknown() { + xxx_messageInfo_ValueView_KnownDenom.DiscardUnknown(m) +} + +var xxx_messageInfo_ValueView_KnownDenom proto.InternalMessageInfo + +func (m *ValueView_KnownDenom) GetAmount() *Amount { + if m != nil { + return m.Amount + } + return nil +} + +func (m *ValueView_KnownDenom) GetDenom() *Denom { + if m != nil { + return m.Denom + } + return nil +} + +type ValueView_UnknownDenom struct { + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (m *ValueView_UnknownDenom) Reset() { *m = ValueView_UnknownDenom{} } +func (m *ValueView_UnknownDenom) String() string { return proto.CompactTextString(m) } +func (*ValueView_UnknownDenom) ProtoMessage() {} +func (*ValueView_UnknownDenom) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{15, 1} +} +func (m *ValueView_UnknownDenom) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValueView_UnknownDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValueView_UnknownDenom.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValueView_UnknownDenom) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValueView_UnknownDenom.Merge(m, src) +} +func (m *ValueView_UnknownDenom) XXX_Size() int { + return m.Size() +} +func (m *ValueView_UnknownDenom) XXX_DiscardUnknown() { + xxx_messageInfo_ValueView_UnknownDenom.DiscardUnknown(m) +} + +var xxx_messageInfo_ValueView_UnknownDenom proto.InternalMessageInfo + +func (m *ValueView_UnknownDenom) GetAmount() *Amount { + if m != nil { + return m.Amount + } + return nil +} + +func (m *ValueView_UnknownDenom) GetAssetId() *AssetId { + if m != nil { + return m.AssetId + } + return nil +} + type MerkleRoot struct { Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` } @@ -872,7 +1072,7 @@ func (m *MerkleRoot) Reset() { *m = MerkleRoot{} } func (m *MerkleRoot) String() string { return proto.CompactTextString(m) } func (*MerkleRoot) ProtoMessage() {} func (*MerkleRoot) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{15} + return fileDescriptor_5c23a0b4440af102, []int{16} } func (m *MerkleRoot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -917,7 +1117,7 @@ func (m *Asset) Reset() { *m = Asset{} } func (m *Asset) String() string { return proto.CompactTextString(m) } func (*Asset) ProtoMessage() {} func (*Asset) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{16} + return fileDescriptor_5c23a0b4440af102, []int{17} } func (m *Asset) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -969,7 +1169,7 @@ func (m *IdentityKey) Reset() { *m = IdentityKey{} } func (m *IdentityKey) String() string { return proto.CompactTextString(m) } func (*IdentityKey) ProtoMessage() {} func (*IdentityKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{17} + return fileDescriptor_5c23a0b4440af102, []int{18} } func (m *IdentityKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1014,7 +1214,7 @@ func (m *GovernanceKey) Reset() { *m = GovernanceKey{} } func (m *GovernanceKey) String() string { return proto.CompactTextString(m) } func (*GovernanceKey) ProtoMessage() {} func (*GovernanceKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{18} + return fileDescriptor_5c23a0b4440af102, []int{19} } func (m *GovernanceKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1058,7 +1258,7 @@ func (m *ConsensusKey) Reset() { *m = ConsensusKey{} } func (m *ConsensusKey) String() string { return proto.CompactTextString(m) } func (*ConsensusKey) ProtoMessage() {} func (*ConsensusKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{19} + return fileDescriptor_5c23a0b4440af102, []int{20} } func (m *ConsensusKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1104,7 +1304,7 @@ func (m *Note) Reset() { *m = Note{} } func (m *Note) String() string { return proto.CompactTextString(m) } func (*Note) ProtoMessage() {} func (*Note) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{20} + return fileDescriptor_5c23a0b4440af102, []int{21} } func (m *Note) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1154,6 +1354,66 @@ func (m *Note) GetAddress() *Address { return nil } +type NoteView struct { + Value *ValueView `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` + Address *AddressView `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *NoteView) Reset() { *m = NoteView{} } +func (m *NoteView) String() string { return proto.CompactTextString(m) } +func (*NoteView) ProtoMessage() {} +func (*NoteView) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{22} +} +func (m *NoteView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NoteView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NoteView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NoteView) XXX_Merge(src proto.Message) { + xxx_messageInfo_NoteView.Merge(m, src) +} +func (m *NoteView) XXX_Size() int { + return m.Size() +} +func (m *NoteView) XXX_DiscardUnknown() { + xxx_messageInfo_NoteView.DiscardUnknown(m) +} + +var xxx_messageInfo_NoteView proto.InternalMessageInfo + +func (m *NoteView) GetValue() *ValueView { + if m != nil { + return m.Value + } + return nil +} + +func (m *NoteView) GetRseed() []byte { + if m != nil { + return m.Rseed + } + return nil +} + +func (m *NoteView) GetAddress() *AddressView { + if m != nil { + return m.Address + } + return nil +} + // An encrypted note. // 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. type NoteCiphertext struct { @@ -1164,7 +1424,7 @@ func (m *NoteCiphertext) Reset() { *m = NoteCiphertext{} } func (m *NoteCiphertext) String() string { return proto.CompactTextString(m) } func (*NoteCiphertext) ProtoMessage() {} func (*NoteCiphertext) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{21} + return fileDescriptor_5c23a0b4440af102, []int{23} } func (m *NoteCiphertext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1208,7 +1468,7 @@ func (m *Nullifier) Reset() { *m = Nullifier{} } func (m *Nullifier) String() string { return proto.CompactTextString(m) } func (*Nullifier) ProtoMessage() {} func (*Nullifier) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{22} + return fileDescriptor_5c23a0b4440af102, []int{24} } func (m *Nullifier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1252,7 +1512,7 @@ func (m *SpendAuthSignature) Reset() { *m = SpendAuthSignature{} } func (m *SpendAuthSignature) String() string { return proto.CompactTextString(m) } func (*SpendAuthSignature) ProtoMessage() {} func (*SpendAuthSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{23} + return fileDescriptor_5c23a0b4440af102, []int{25} } func (m *SpendAuthSignature) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1296,7 +1556,7 @@ func (m *BindingSignature) Reset() { *m = BindingSignature{} } func (m *BindingSignature) String() string { return proto.CompactTextString(m) } func (*BindingSignature) ProtoMessage() {} func (*BindingSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{24} + return fileDescriptor_5c23a0b4440af102, []int{26} } func (m *BindingSignature) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1348,7 +1608,7 @@ func (m *NotePayload) Reset() { *m = NotePayload{} } func (m *NotePayload) String() string { return proto.CompactTextString(m) } func (*NotePayload) ProtoMessage() {} func (*NotePayload) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{25} + return fileDescriptor_5c23a0b4440af102, []int{27} } func (m *NotePayload) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1409,7 +1669,7 @@ func (m *StateCommitmentProof) Reset() { *m = StateCommitmentProof{} } func (m *StateCommitmentProof) String() string { return proto.CompactTextString(m) } func (*StateCommitmentProof) ProtoMessage() {} func (*StateCommitmentProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{26} + return fileDescriptor_5c23a0b4440af102, []int{28} } func (m *StateCommitmentProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1470,7 +1730,7 @@ func (m *MerklePathChunk) Reset() { *m = MerklePathChunk{} } func (m *MerklePathChunk) String() string { return proto.CompactTextString(m) } func (*MerklePathChunk) ProtoMessage() {} func (*MerklePathChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{27} + return fileDescriptor_5c23a0b4440af102, []int{29} } func (m *MerklePathChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1529,7 +1789,7 @@ func (m *Clue) Reset() { *m = Clue{} } func (m *Clue) String() string { return proto.CompactTextString(m) } func (*Clue) ProtoMessage() {} func (*Clue) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{28} + return fileDescriptor_5c23a0b4440af102, []int{30} } func (m *Clue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1574,7 +1834,7 @@ func (m *EffectHash) Reset() { *m = EffectHash{} } func (m *EffectHash) String() string { return proto.CompactTextString(m) } func (*EffectHash) ProtoMessage() {} func (*EffectHash) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{29} + return fileDescriptor_5c23a0b4440af102, []int{31} } func (m *EffectHash) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1619,7 +1879,7 @@ func (m *ZKOutputProof) Reset() { *m = ZKOutputProof{} } func (m *ZKOutputProof) String() string { return proto.CompactTextString(m) } func (*ZKOutputProof) ProtoMessage() {} func (*ZKOutputProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{30} + return fileDescriptor_5c23a0b4440af102, []int{32} } func (m *ZKOutputProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1664,7 +1924,7 @@ func (m *ZKSpendProof) Reset() { *m = ZKSpendProof{} } func (m *ZKSpendProof) String() string { return proto.CompactTextString(m) } func (*ZKSpendProof) ProtoMessage() {} func (*ZKSpendProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{31} + return fileDescriptor_5c23a0b4440af102, []int{33} } func (m *ZKSpendProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1709,7 +1969,7 @@ func (m *ZKSwapProof) Reset() { *m = ZKSwapProof{} } func (m *ZKSwapProof) String() string { return proto.CompactTextString(m) } func (*ZKSwapProof) ProtoMessage() {} func (*ZKSwapProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{32} + return fileDescriptor_5c23a0b4440af102, []int{34} } func (m *ZKSwapProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1763,12 +2023,16 @@ func init() { proto.RegisterType((*Amount)(nil), "penumbra.core.crypto.v1alpha1.Amount") proto.RegisterType((*Denom)(nil), "penumbra.core.crypto.v1alpha1.Denom") proto.RegisterType((*Value)(nil), "penumbra.core.crypto.v1alpha1.Value") + proto.RegisterType((*ValueView)(nil), "penumbra.core.crypto.v1alpha1.ValueView") + proto.RegisterType((*ValueView_KnownDenom)(nil), "penumbra.core.crypto.v1alpha1.ValueView.KnownDenom") + proto.RegisterType((*ValueView_UnknownDenom)(nil), "penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom") proto.RegisterType((*MerkleRoot)(nil), "penumbra.core.crypto.v1alpha1.MerkleRoot") proto.RegisterType((*Asset)(nil), "penumbra.core.crypto.v1alpha1.Asset") proto.RegisterType((*IdentityKey)(nil), "penumbra.core.crypto.v1alpha1.IdentityKey") proto.RegisterType((*GovernanceKey)(nil), "penumbra.core.crypto.v1alpha1.GovernanceKey") proto.RegisterType((*ConsensusKey)(nil), "penumbra.core.crypto.v1alpha1.ConsensusKey") proto.RegisterType((*Note)(nil), "penumbra.core.crypto.v1alpha1.Note") + proto.RegisterType((*NoteView)(nil), "penumbra.core.crypto.v1alpha1.NoteView") proto.RegisterType((*NoteCiphertext)(nil), "penumbra.core.crypto.v1alpha1.NoteCiphertext") proto.RegisterType((*Nullifier)(nil), "penumbra.core.crypto.v1alpha1.Nullifier") proto.RegisterType((*SpendAuthSignature)(nil), "penumbra.core.crypto.v1alpha1.SpendAuthSignature") @@ -1788,74 +2052,81 @@ func init() { } var fileDescriptor_5c23a0b4440af102 = []byte{ - // 1060 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4f, 0x6f, 0xe3, 0x44, - 0x14, 0xaf, 0x9d, 0xb6, 0x69, 0x5f, 0xd2, 0x74, 0xb1, 0x7a, 0xa8, 0x0a, 0xcd, 0x76, 0xdd, 0x6e, - 0xd9, 0x5d, 0x20, 0x51, 0x5b, 0x89, 0x43, 0x10, 0x12, 0x4d, 0x96, 0x6d, 0x4b, 0xb4, 0xdd, 0xc8, - 0x45, 0x5d, 0x54, 0x55, 0x8a, 0xa6, 0xf6, 0x6b, 0x3c, 0x8a, 0x33, 0x63, 0xec, 0x71, 0xba, 0x81, - 0x0f, 0x80, 0xb8, 0x71, 0xe6, 0xc8, 0x91, 0x6f, 0xc0, 0x37, 0x40, 0x9c, 0xf6, 0xb8, 0x47, 0x68, - 0x0f, 0x48, 0x9c, 0xf8, 0x08, 0x68, 0xec, 0x71, 0x36, 0xad, 0xd6, 0x49, 0x01, 0x21, 0x71, 0x9b, - 0x37, 0xef, 0xf7, 0x7e, 0xf3, 0xfe, 0xdb, 0xf0, 0xc8, 0x47, 0x16, 0xf5, 0xce, 0x02, 0x52, 0xb5, - 0x79, 0x80, 0x55, 0x3b, 0x18, 0xf8, 0x82, 0x57, 0xfb, 0x5b, 0xc4, 0xf3, 0x5d, 0xb2, 0xa5, 0xe4, - 0x8a, 0x1f, 0x70, 0xc1, 0x8d, 0xd5, 0x14, 0x5b, 0x91, 0xd8, 0x8a, 0xd2, 0xa5, 0x58, 0xf3, 0x1b, - 0x0d, 0x72, 0x4f, 0x10, 0x8d, 0x8f, 0x61, 0x96, 0xf4, 0x78, 0xc4, 0xc4, 0xb2, 0xb6, 0xa6, 0x3d, - 0x28, 0x6c, 0xdf, 0xaf, 0x8c, 0xb5, 0xab, 0xec, 0xc6, 0x60, 0x4b, 0x19, 0x19, 0xbb, 0x30, 0x47, - 0xc2, 0x10, 0x45, 0x9b, 0x3a, 0xcb, 0x7a, 0x4c, 0xb0, 0x39, 0x89, 0x40, 0xc2, 0x0f, 0x1c, 0x2b, - 0x4f, 0x92, 0x83, 0x79, 0x17, 0xf2, 0xbb, 0x8e, 0x13, 0x60, 0x18, 0x1a, 0x4b, 0x30, 0x43, 0x19, - 0xc3, 0x20, 0xf6, 0xa5, 0x68, 0x25, 0x82, 0xf9, 0x67, 0x0e, 0x0a, 0x0a, 0x71, 0x4c, 0xf1, 0xc2, - 0x38, 0x84, 0x7c, 0x9f, 0x86, 0xf4, 0xcc, 0x43, 0xe5, 0xf3, 0xf6, 0xa4, 0x27, 0x5f, 0x1b, 0x57, - 0x8e, 0x13, 0xcb, 0xfd, 0x29, 0x2b, 0x25, 0x31, 0x9a, 0x30, 0xcb, 0x7d, 0xf2, 0x65, 0x84, 0x2a, - 0x82, 0xad, 0xbf, 0x41, 0xf7, 0x2c, 0x36, 0xdc, 0x9f, 0xb2, 0x14, 0xc5, 0xca, 0xef, 0x1a, 0xe4, - 0xd5, 0x1b, 0xc6, 0x27, 0x90, 0x27, 0x09, 0x56, 0x39, 0xba, 0x79, 0x3b, 0x66, 0x2b, 0x35, 0x33, - 0x76, 0x65, 0x42, 0x1c, 0x7c, 0xa1, 0x3c, 0x7b, 0xef, 0x76, 0xf6, 0x07, 0xd2, 0xc4, 0x4a, 0x2c, - 0x8d, 0xe7, 0x70, 0x87, 0xd8, 0xb6, 0x2c, 0x56, 0xbb, 0x13, 0xf0, 0xc8, 0x97, 0x95, 0xca, 0xc5, - 0x6c, 0x1f, 0x4c, 0x62, 0x4b, 0xcc, 0xf6, 0xa4, 0xd5, 0x81, 0x63, 0x95, 0xc8, 0x35, 0x79, 0xe5, - 0x33, 0x98, 0x4d, 0xa2, 0xff, 0xf7, 0x71, 0xd6, 0x4b, 0x50, 0x54, 0xc7, 0x76, 0x9f, 0xe2, 0x85, - 0xb9, 0x06, 0x73, 0x47, 0x3e, 0x32, 0xa7, 0x89, 0x83, 0x8c, 0xa6, 0x78, 0x1f, 0x96, 0x62, 0xc4, - 0x31, 0x06, 0xf4, 0x9c, 0xda, 0x44, 0x50, 0xce, 0xb2, 0xd1, 0x9b, 0x50, 0x7a, 0x12, 0x79, 0x9e, - 0x2c, 0x19, 0x65, 0x9d, 0xb1, 0xb8, 0xeb, 0x51, 0x67, 0xe0, 0xd6, 0xa1, 0xf0, 0x98, 0xf6, 0x31, - 0x08, 0xe9, 0x39, 0xc5, 0x20, 0x03, 0xb4, 0x0f, 0xc5, 0xd1, 0x82, 0x18, 0xcb, 0x90, 0x57, 0x29, - 0x8c, 0xcb, 0xb9, 0x60, 0xa5, 0xa2, 0x51, 0x06, 0x08, 0x08, 0x73, 0x78, 0x8f, 0x7e, 0x85, 0x41, - 0x5c, 0x9d, 0xa2, 0x35, 0x72, 0x63, 0xbe, 0x0b, 0x8b, 0x47, 0x82, 0x08, 0x6c, 0xf0, 0x5e, 0x8f, - 0x8a, 0x1e, 0x32, 0x91, 0xf1, 0xe4, 0x43, 0x78, 0xab, 0x4e, 0x3c, 0xc2, 0xec, 0xc9, 0x50, 0x39, - 0x76, 0xc9, 0x04, 0x66, 0x00, 0x1e, 0xc0, 0x6c, 0x32, 0xec, 0x46, 0x09, 0x74, 0x8f, 0xc7, 0xca, - 0x69, 0x4b, 0xf7, 0xb8, 0x94, 0x5d, 0x1a, 0xc7, 0x30, 0x6d, 0xe9, 0x2e, 0x35, 0x57, 0x61, 0xe6, - 0x31, 0x32, 0xde, 0x93, 0x44, 0x8e, 0x3c, 0xc4, 0xd8, 0x79, 0x2b, 0x11, 0xcc, 0x6f, 0x35, 0x98, - 0x39, 0x26, 0x5e, 0xf4, 0x7f, 0x58, 0x36, 0x26, 0xc0, 0x53, 0x0c, 0xba, 0x1e, 0x5a, 0x9c, 0x67, - 0x65, 0xe6, 0x6b, 0x98, 0x89, 0xed, 0x8c, 0x0f, 0x41, 0xa7, 0xce, 0x6d, 0x5b, 0x5a, 0xbd, 0xa4, - 0x53, 0xc7, 0xa8, 0xa5, 0x69, 0x48, 0x9c, 0xdc, 0x98, 0x60, 0x1a, 0xe7, 0x2e, 0x4d, 0xd6, 0x2a, - 0x14, 0x0e, 0x1c, 0x64, 0x82, 0x8a, 0x81, 0x6c, 0xd3, 0x12, 0xe8, 0xb4, 0xab, 0xdc, 0xd3, 0x69, - 0xd7, 0xbc, 0x0b, 0x0b, 0x7b, 0xbc, 0x8f, 0x01, 0x93, 0x35, 0x56, 0x80, 0xce, 0x10, 0xd0, 0xe9, - 0x9a, 0x1b, 0x50, 0x6c, 0x70, 0x16, 0x22, 0x0b, 0xa3, 0x30, 0xbb, 0xcf, 0xbf, 0xd7, 0x60, 0xfa, - 0x90, 0x0b, 0x94, 0xae, 0xf6, 0x65, 0x69, 0x54, 0x94, 0x93, 0x5c, 0x8d, 0xcb, 0x68, 0x25, 0x26, - 0x92, 0x3a, 0x08, 0x11, 0x93, 0x5a, 0x14, 0xad, 0x44, 0x18, 0x5d, 0x06, 0xb9, 0x7f, 0xb4, 0x0c, - 0xe4, 0x10, 0x4a, 0xdf, 0x1a, 0xd4, 0x77, 0x31, 0x10, 0xf8, 0x22, 0xab, 0x4e, 0xf7, 0x60, 0xfe, - 0x30, 0xf2, 0xbc, 0x71, 0x23, 0xf8, 0x08, 0x8c, 0x78, 0x4b, 0xec, 0x46, 0xc2, 0x3d, 0xa2, 0x1d, - 0x46, 0x44, 0x14, 0x60, 0x66, 0xbf, 0xdf, 0xa9, 0x53, 0xe6, 0x50, 0xd6, 0x99, 0x84, 0xfc, 0x4d, - 0x83, 0x82, 0xf4, 0xb0, 0x45, 0x06, 0x1e, 0x27, 0x8e, 0xf1, 0x1c, 0x16, 0x19, 0x17, 0xd8, 0xb6, - 0x87, 0x33, 0xa7, 0xd2, 0x59, 0x99, 0x10, 0xfa, 0x8d, 0xa1, 0xb6, 0x4a, 0x92, 0x66, 0x64, 0x72, - 0xd7, 0x61, 0x01, 0x7d, 0x17, 0x7b, 0x18, 0x10, 0xaf, 0xdd, 0xc5, 0x81, 0xca, 0x74, 0x71, 0x78, - 0x29, 0x2b, 0xfc, 0x39, 0x94, 0x90, 0xc5, 0xcc, 0xe8, 0xb4, 0x25, 0xc1, 0x2d, 0xd7, 0xfb, 0xf5, - 0x1c, 0x5b, 0x0b, 0x43, 0x12, 0xa9, 0x30, 0x5f, 0x69, 0xb0, 0x74, 0xc3, 0xbd, 0x56, 0xc0, 0xf9, - 0xf9, 0x7f, 0x17, 0xec, 0x0a, 0xcc, 0xf9, 0x3c, 0xa4, 0x72, 0x91, 0xab, 0xdd, 0x32, 0x94, 0x8d, - 0x26, 0xcc, 0x93, 0x48, 0xb8, 0x6d, 0x9f, 0x08, 0x77, 0x39, 0xb7, 0x96, 0xbb, 0xc5, 0x73, 0xc9, - 0x98, 0xb7, 0x88, 0x70, 0x1b, 0x6e, 0xc4, 0xba, 0xd6, 0x9c, 0x24, 0x90, 0xa2, 0xe9, 0xc2, 0xe2, - 0x0d, 0xa5, 0xf1, 0x36, 0xcc, 0xcb, 0x4f, 0x36, 0x65, 0x9d, 0xf6, 0x96, 0xaa, 0xf5, 0x9c, 0xba, - 0xd8, 0x1a, 0x55, 0x6e, 0xab, 0x0a, 0xa4, 0xca, 0xed, 0x51, 0xe5, 0x8e, 0xda, 0xdc, 0xa9, 0x72, - 0xc7, 0x7c, 0x07, 0xa6, 0x1b, 0x6a, 0x52, 0xde, 0xd0, 0x46, 0x26, 0xc0, 0xa7, 0xe7, 0xe7, 0x68, - 0x8b, 0x7d, 0x12, 0xba, 0x19, 0x98, 0xfb, 0xb0, 0x70, 0xd2, 0x7c, 0x16, 0x09, 0x3f, 0x52, 0xe9, - 0x7f, 0x33, 0x6c, 0x03, 0x8a, 0x27, 0xcd, 0xb8, 0xd3, 0xc7, 0xa1, 0xd6, 0xa1, 0x70, 0xd2, 0x3c, - 0xba, 0x20, 0xfe, 0x18, 0x50, 0xfd, 0x27, 0xfd, 0xe7, 0xcb, 0xb2, 0xf6, 0xf2, 0xb2, 0xac, 0xfd, - 0x7a, 0x59, 0xd6, 0xbe, 0xbb, 0x2a, 0x4f, 0xbd, 0xbc, 0x2a, 0x4f, 0xbd, 0xba, 0x2a, 0x4f, 0xc1, - 0x3d, 0x9b, 0xf7, 0xc6, 0x67, 0xbd, 0x5e, 0x68, 0xc4, 0x17, 0x2d, 0xf9, 0x0b, 0xda, 0xd2, 0x4e, - 0xbe, 0xe8, 0x50, 0xe1, 0x46, 0x67, 0x15, 0x9b, 0xf7, 0xaa, 0x36, 0x0f, 0x7b, 0x3c, 0xac, 0x06, - 0xe8, 0x91, 0x01, 0x06, 0xd5, 0xfe, 0xf6, 0xf0, 0x68, 0xbb, 0x84, 0xb2, 0xb0, 0x3a, 0xf6, 0xe7, - 0xf6, 0xa3, 0x44, 0x4e, 0xc5, 0x1f, 0xf4, 0x5c, 0xab, 0xd1, 0xf8, 0x51, 0x5f, 0x6d, 0xa5, 0xee, - 0x34, 0xa4, 0x3b, 0xc9, 0xeb, 0x95, 0x63, 0x85, 0xfa, 0xe5, 0xb5, 0xfe, 0x54, 0xea, 0x4f, 0x13, - 0xfd, 0x69, 0xaa, 0xbf, 0xd4, 0x1f, 0x8e, 0xd5, 0x9f, 0xee, 0xb5, 0xea, 0x4f, 0x51, 0x10, 0x87, - 0x08, 0xf2, 0x87, 0xbe, 0x96, 0x62, 0x6b, 0x35, 0x09, 0xae, 0xd5, 0x12, 0x74, 0xad, 0x96, 0xc2, - 0xcf, 0x66, 0xe3, 0x5f, 0xef, 0x9d, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x9c, 0x41, 0xcd, - 0xa8, 0x0b, 0x00, 0x00, + // 1182 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcf, 0x6f, 0xe3, 0xc4, + 0x17, 0x8f, 0x9d, 0xb6, 0x49, 0x5f, 0x7e, 0xec, 0x7e, 0xad, 0x1e, 0xaa, 0x7e, 0x69, 0xb6, 0xeb, + 0x76, 0x4b, 0xb7, 0x40, 0xa2, 0xa6, 0x82, 0x43, 0x10, 0x88, 0x26, 0x65, 0xdb, 0x12, 0x6d, 0x37, + 0x72, 0x21, 0x8b, 0xaa, 0x4a, 0xd1, 0xd4, 0x9e, 0xc6, 0xa3, 0x38, 0x33, 0xc6, 0x1e, 0xa7, 0x1b, + 0xf8, 0x03, 0x56, 0xdc, 0xf6, 0xcc, 0x91, 0x03, 0x07, 0xfe, 0x03, 0xfe, 0x03, 0xc4, 0x69, 0x8f, + 0x7b, 0x84, 0xf6, 0x80, 0x84, 0x38, 0xf0, 0x27, 0xa0, 0xb1, 0xc7, 0x69, 0x5a, 0x6d, 0x7e, 0x40, + 0x85, 0xe0, 0xe6, 0xe7, 0xf7, 0x79, 0x9f, 0xf9, 0xbc, 0xf7, 0x66, 0xde, 0xd8, 0xb0, 0xe9, 0x62, + 0x1a, 0x74, 0x4f, 0x3d, 0x54, 0x32, 0x99, 0x87, 0x4b, 0xa6, 0xd7, 0x77, 0x39, 0x2b, 0xf5, 0xb6, + 0x90, 0xe3, 0xda, 0x68, 0x4b, 0xda, 0x45, 0xd7, 0x63, 0x9c, 0x69, 0xcb, 0x31, 0xb6, 0x28, 0xb0, + 0x45, 0xe9, 0x8b, 0xb1, 0xfa, 0x73, 0x05, 0x92, 0x8f, 0x30, 0xd6, 0x3e, 0x80, 0x39, 0xd4, 0x65, + 0x01, 0xe5, 0x8b, 0xca, 0x8a, 0xb2, 0x91, 0x29, 0x3f, 0x28, 0x8e, 0x8d, 0x2b, 0xee, 0x84, 0x60, + 0x43, 0x06, 0x69, 0x3b, 0x90, 0x46, 0xbe, 0x8f, 0x79, 0x8b, 0x58, 0x8b, 0x6a, 0x48, 0xb0, 0x3e, + 0x89, 0x40, 0xc0, 0x0f, 0x2c, 0x23, 0x85, 0xa2, 0x07, 0xfd, 0x1e, 0xa4, 0x76, 0x2c, 0xcb, 0xc3, + 0xbe, 0xaf, 0x2d, 0xc0, 0x2c, 0xa1, 0x14, 0x7b, 0xa1, 0x96, 0xac, 0x11, 0x19, 0xfa, 0x1f, 0x49, + 0xc8, 0x48, 0x44, 0x93, 0xe0, 0x73, 0xed, 0x10, 0x52, 0x3d, 0xe2, 0x93, 0x53, 0x07, 0x4b, 0xcd, + 0xe5, 0x49, 0x4b, 0x5e, 0x05, 0x17, 0x9b, 0x51, 0xe4, 0x7e, 0xc2, 0x88, 0x49, 0xb4, 0x3a, 0xcc, + 0x31, 0x17, 0x7d, 0x11, 0x60, 0x99, 0xc1, 0xd6, 0x5f, 0xa0, 0x7b, 0x12, 0x06, 0xee, 0x27, 0x0c, + 0x49, 0xb1, 0xf4, 0xab, 0x02, 0x29, 0xb9, 0x86, 0xf6, 0x11, 0xa4, 0x50, 0x84, 0x95, 0x42, 0xd7, + 0xa7, 0x63, 0x36, 0xe2, 0x30, 0x6d, 0x47, 0x14, 0xc4, 0xc2, 0xcf, 0xa4, 0xb2, 0xb7, 0xa6, 0x8b, + 0x3f, 0x10, 0x21, 0x46, 0x14, 0xa9, 0x3d, 0x85, 0xbb, 0xc8, 0x34, 0x45, 0xb3, 0x5a, 0x6d, 0x8f, + 0x05, 0xae, 0xe8, 0x54, 0x32, 0x64, 0x7b, 0x67, 0x12, 0x5b, 0x14, 0xb6, 0x27, 0xa2, 0x0e, 0x2c, + 0x23, 0x8f, 0xae, 0xd9, 0x4b, 0x9f, 0xc0, 0x5c, 0x94, 0xfd, 0xed, 0xf3, 0xac, 0xe6, 0x21, 0x2b, + 0x1f, 0x5b, 0x3d, 0x82, 0xcf, 0xf5, 0x15, 0x48, 0x1f, 0xb9, 0x98, 0x5a, 0x75, 0xdc, 0x1f, 0xb1, + 0x29, 0xde, 0x86, 0x85, 0x10, 0xd1, 0xc4, 0x1e, 0x39, 0x23, 0x26, 0xe2, 0x84, 0xd1, 0xd1, 0xe8, + 0x75, 0xc8, 0x3f, 0x0a, 0x1c, 0x47, 0xb4, 0x8c, 0xd0, 0xf6, 0x58, 0xdc, 0xf5, 0xac, 0x47, 0xe0, + 0x56, 0x21, 0xb3, 0x4b, 0x7a, 0xd8, 0xf3, 0xc9, 0x19, 0xc1, 0xde, 0x08, 0xd0, 0x3e, 0x64, 0x87, + 0x1b, 0xa2, 0x2d, 0x42, 0x4a, 0x96, 0x30, 0x6c, 0x67, 0xce, 0x88, 0x4d, 0xad, 0x00, 0xe0, 0x21, + 0x6a, 0xb1, 0x2e, 0xf9, 0x12, 0x7b, 0x61, 0x77, 0xb2, 0xc6, 0xd0, 0x1b, 0xfd, 0x4d, 0xb8, 0x73, + 0xc4, 0x11, 0xc7, 0x35, 0xd6, 0xed, 0x12, 0xde, 0xc5, 0x94, 0x8f, 0x58, 0xf2, 0x21, 0xfc, 0xaf, + 0x8a, 0x1c, 0x44, 0xcd, 0xc9, 0x50, 0x71, 0xec, 0xa2, 0x13, 0x38, 0x02, 0xb0, 0x01, 0x73, 0xd1, + 0x61, 0xd7, 0xf2, 0xa0, 0x3a, 0x2c, 0x74, 0xce, 0x18, 0xaa, 0xc3, 0x84, 0x6d, 0x93, 0x30, 0x87, + 0x19, 0x43, 0xb5, 0x89, 0xbe, 0x0c, 0xb3, 0xbb, 0x98, 0xb2, 0xae, 0x20, 0xb2, 0xc4, 0x43, 0x88, + 0x9d, 0x37, 0x22, 0x43, 0xff, 0x5a, 0x81, 0xd9, 0x26, 0x72, 0x82, 0xff, 0xc2, 0xb0, 0xf9, 0x3d, + 0x09, 0xf3, 0xa1, 0x96, 0x70, 0x92, 0x34, 0x21, 0xd3, 0xa1, 0xec, 0x9c, 0xb6, 0xae, 0x54, 0x67, + 0xca, 0xdb, 0x13, 0x38, 0x07, 0xe1, 0xc5, 0xba, 0x88, 0x0d, 0x33, 0xdf, 0x4f, 0x18, 0xd0, 0x19, + 0x58, 0xda, 0x09, 0xe4, 0x02, 0x3a, 0xcc, 0x1c, 0xa9, 0x7d, 0x77, 0x6a, 0xe6, 0xcf, 0x68, 0x67, + 0x98, 0x3b, 0x1b, 0x0c, 0xd9, 0x4b, 0xcf, 0x15, 0x80, 0xab, 0xa5, 0x6f, 0x5b, 0xd4, 0x4a, 0xdc, + 0xb3, 0x48, 0xe3, 0xda, 0x84, 0xe8, 0x70, 0x4d, 0xd9, 0xd9, 0xa5, 0x17, 0x0a, 0x64, 0x87, 0xa5, + 0xfe, 0xfb, 0x0d, 0xae, 0x66, 0x01, 0x7a, 0xa2, 0x8c, 0xd1, 0x1c, 0xd1, 0x01, 0x1e, 0x63, 0xaf, + 0xe3, 0x60, 0x83, 0xb1, 0x51, 0x07, 0xe1, 0x2b, 0x98, 0x0d, 0x59, 0xb4, 0xf7, 0x40, 0x25, 0xd6, + 0xb4, 0x13, 0x4c, 0xae, 0xab, 0x12, 0xeb, 0x36, 0x15, 0xd4, 0x97, 0x21, 0x73, 0x60, 0x61, 0xca, + 0x09, 0xef, 0x8b, 0xa9, 0x94, 0x07, 0x95, 0x74, 0xa4, 0x3c, 0x95, 0x74, 0xf4, 0x7b, 0x90, 0xdb, + 0x63, 0x3d, 0xec, 0x51, 0x71, 0xa4, 0x25, 0xa0, 0x3d, 0x00, 0xb4, 0x3b, 0xfa, 0x1a, 0x64, 0x6b, + 0x8c, 0xfa, 0x98, 0xfa, 0x81, 0x3f, 0x7a, 0xac, 0x7d, 0xa3, 0xc0, 0xcc, 0x21, 0xe3, 0x58, 0x48, + 0x0d, 0xab, 0x23, 0xb3, 0x5c, 0x9b, 0x66, 0x43, 0x1a, 0x51, 0x88, 0xa0, 0xf6, 0x7c, 0x8c, 0xa3, + 0xce, 0x64, 0x8d, 0xc8, 0x18, 0x9e, 0xfd, 0xc9, 0xbf, 0x35, 0xfb, 0xf5, 0xef, 0x14, 0x48, 0x0b, + 0x71, 0xe1, 0x89, 0xfc, 0xf0, 0xba, 0xc0, 0x8d, 0x69, 0x4f, 0xcc, 0x78, 0x91, 0xbb, 0x37, 0x45, + 0x6e, 0x4e, 0x7f, 0xc5, 0x5f, 0x09, 0x5d, 0x87, 0xbc, 0xd0, 0x59, 0x23, 0xae, 0x8d, 0x3d, 0x8e, + 0x9f, 0x8d, 0xda, 0x50, 0xf7, 0x61, 0xfe, 0x30, 0x70, 0x9c, 0x71, 0x57, 0xc3, 0x26, 0x68, 0xe1, + 0xed, 0xb5, 0x13, 0x70, 0xfb, 0x88, 0xb4, 0x29, 0xe2, 0x81, 0x87, 0x47, 0xce, 0xe1, 0xbb, 0x55, + 0x42, 0x2d, 0x42, 0xdb, 0x93, 0x90, 0xbf, 0x28, 0x90, 0x11, 0x0a, 0x1b, 0xa8, 0xef, 0x30, 0x64, + 0x69, 0x4f, 0xe1, 0x0e, 0x65, 0x1c, 0xb7, 0xcc, 0xc1, 0x5d, 0x20, 0xcb, 0x5a, 0x9c, 0x90, 0xfe, + 0x8d, 0xcb, 0xc6, 0xc8, 0x0b, 0x9a, 0xa1, 0x1b, 0x65, 0x15, 0x72, 0xd8, 0xb5, 0x71, 0x17, 0x7b, + 0xc8, 0x69, 0x75, 0x70, 0x5f, 0x56, 0x3b, 0x3b, 0x78, 0x29, 0xb6, 0xe2, 0xa7, 0x90, 0xc7, 0x34, + 0x64, 0xc6, 0x56, 0x4b, 0x10, 0x4c, 0xf9, 0xd9, 0x71, 0xbd, 0xc6, 0x46, 0x6e, 0x40, 0x22, 0x1c, + 0xfa, 0x2b, 0x05, 0x16, 0x6e, 0xc8, 0x6b, 0x78, 0x8c, 0x9d, 0xfd, 0x73, 0xc9, 0x2e, 0x41, 0xda, + 0x65, 0x3e, 0x11, 0x1f, 0x18, 0xf2, 0xce, 0x1b, 0xd8, 0x5a, 0x1d, 0xe6, 0x51, 0xc0, 0xed, 0x96, + 0x8b, 0xb8, 0xbd, 0x98, 0x5c, 0x49, 0x4e, 0xb1, 0x5c, 0x34, 0x8f, 0x1a, 0x88, 0xdb, 0x35, 0x3b, + 0xa0, 0x1d, 0x23, 0x2d, 0x08, 0x84, 0xa9, 0xdb, 0x70, 0xe7, 0x86, 0x53, 0xfb, 0x3f, 0xcc, 0x8b, + 0x4f, 0x49, 0x42, 0xdb, 0xad, 0x2d, 0xd9, 0xeb, 0xb4, 0x7c, 0xb1, 0x35, 0xec, 0x2c, 0xcb, 0x0e, + 0xc4, 0xce, 0xf2, 0xb0, 0x73, 0x5b, 0x7e, 0x51, 0xc4, 0xce, 0x6d, 0xfd, 0x0d, 0x98, 0xa9, 0xc9, + 0xd3, 0xf2, 0x9a, 0x6d, 0xa4, 0x03, 0x7c, 0x7c, 0x76, 0x86, 0x4d, 0xbe, 0x8f, 0x7c, 0x7b, 0x04, + 0xe6, 0x01, 0xe4, 0x8e, 0xeb, 0x4f, 0x02, 0xee, 0x06, 0xb2, 0xfc, 0xaf, 0x87, 0xad, 0x41, 0xf6, + 0xb8, 0x1e, 0xee, 0xf4, 0x71, 0xa8, 0x55, 0xc8, 0x1c, 0xd7, 0x8f, 0xce, 0x91, 0x3b, 0x06, 0x54, + 0xfd, 0x41, 0xfd, 0xf1, 0xa2, 0xa0, 0xbc, 0xbc, 0x28, 0x28, 0x3f, 0x5f, 0x14, 0x94, 0x17, 0x97, + 0x85, 0xc4, 0xcb, 0xcb, 0x42, 0xe2, 0xd5, 0x65, 0x21, 0x01, 0xf7, 0x4d, 0xd6, 0x1d, 0x5f, 0xf5, + 0x6a, 0xa6, 0x16, 0xbe, 0x68, 0x88, 0x5f, 0xa3, 0x86, 0x72, 0xfc, 0x79, 0x9b, 0x70, 0x3b, 0x38, + 0x2d, 0x9a, 0xac, 0x5b, 0x32, 0x99, 0xdf, 0x65, 0x7e, 0xc9, 0xc3, 0x0e, 0xea, 0x63, 0xaf, 0xd4, + 0x2b, 0x0f, 0x1e, 0x4d, 0x1b, 0x11, 0xea, 0x97, 0xc6, 0xfe, 0x74, 0xbd, 0x1f, 0xd9, 0xb1, 0xf9, + 0xad, 0x9a, 0x6c, 0xd4, 0x6a, 0xdf, 0xab, 0xcb, 0x8d, 0x58, 0x4e, 0x4d, 0xc8, 0x89, 0x56, 0x2f, + 0x36, 0x25, 0xea, 0xa7, 0x2b, 0xff, 0x89, 0xf0, 0x9f, 0x44, 0xfe, 0x93, 0xd8, 0x7f, 0xa1, 0x3e, + 0x1c, 0xeb, 0x3f, 0xd9, 0x6b, 0x54, 0x1f, 0x63, 0x8e, 0x2c, 0xc4, 0xd1, 0x6f, 0xea, 0x4a, 0x8c, + 0xad, 0x54, 0x04, 0xb8, 0x52, 0x89, 0xd0, 0x95, 0x4a, 0x0c, 0x3f, 0x9d, 0x0b, 0x7f, 0x09, 0xb7, + 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x4e, 0x9d, 0x9e, 0x40, 0x0e, 0x00, 0x00, } func (m *Fee) Marshal() (dAtA []byte, err error) { @@ -2488,7 +2759,7 @@ func (m *Value) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *MerkleRoot) Marshal() (dAtA []byte, err error) { +func (m *ValueView) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2498,27 +2769,71 @@ func (m *MerkleRoot) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MerkleRoot) MarshalTo(dAtA []byte) (int, error) { +func (m *ValueView) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MerkleRoot) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ValueView) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Inner) > 0 { - i -= len(m.Inner) - copy(dAtA[i:], m.Inner) - i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + if m.ValueView != nil { + { + size := m.ValueView.Size() + i -= size + if _, err := m.ValueView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ValueView_KnownDenom_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValueView_KnownDenom_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.KnownDenom != nil { + { + size, err := m.KnownDenom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } +func (m *ValueView_UnknownDenom_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} -func (m *Asset) Marshal() (dAtA []byte, err error) { +func (m *ValueView_UnknownDenom_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UnknownDenom != nil { + { + size, err := m.UnknownDenom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *ValueView_KnownDenom) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2528,12 +2843,12 @@ func (m *Asset) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Asset) MarshalTo(dAtA []byte) (int, error) { +func (m *ValueView_KnownDenom) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Asset) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ValueView_KnownDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2550,9 +2865,9 @@ func (m *Asset) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.Id != nil { + if m.Amount != nil { { - size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2565,7 +2880,7 @@ func (m *Asset) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *IdentityKey) Marshal() (dAtA []byte, err error) { +func (m *ValueView_UnknownDenom) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2575,26 +2890,150 @@ func (m *IdentityKey) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *IdentityKey) MarshalTo(dAtA []byte) (int, error) { +func (m *ValueView_UnknownDenom) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *IdentityKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ValueView_UnknownDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Ik) > 0 { - i -= len(m.Ik) - copy(dAtA[i:], m.Ik) - i = encodeVarintCrypto(dAtA, i, uint64(len(m.Ik))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - + if m.AssetId != nil { + { + size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MerkleRoot) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MerkleRoot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MerkleRoot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Asset) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Asset) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Asset) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Denom != nil { + { + size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Id != nil { + { + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *IdentityKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IdentityKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IdentityKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Ik) > 0 { + i -= len(m.Ik) + copy(dAtA[i:], m.Ik) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Ik))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *GovernanceKey) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2709,6 +3148,60 @@ func (m *Note) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *NoteView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NoteView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NoteView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Address != nil { + { + size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Rseed) > 0 { + i -= len(m.Rseed) + copy(dAtA[i:], m.Rseed) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Rseed))) + i-- + dAtA[i] = 0x12 + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *NoteCiphertext) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3407,136 +3900,133 @@ func (m *Value) Size() (n int) { return n } -func (m *MerkleRoot) Size() (n int) { +func (m *ValueView) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Inner) - if l > 0 { - n += 1 + l + sovCrypto(uint64(l)) + if m.ValueView != nil { + n += m.ValueView.Size() } return n } -func (m *Asset) Size() (n int) { +func (m *ValueView_KnownDenom_) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Id != nil { - l = m.Id.Size() - n += 1 + l + sovCrypto(uint64(l)) - } - if m.Denom != nil { - l = m.Denom.Size() + if m.KnownDenom != nil { + l = m.KnownDenom.Size() n += 1 + l + sovCrypto(uint64(l)) } return n } - -func (m *IdentityKey) Size() (n int) { +func (m *ValueView_UnknownDenom_) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Ik) - if l > 0 { + if m.UnknownDenom != nil { + l = m.UnknownDenom.Size() n += 1 + l + sovCrypto(uint64(l)) } return n } - -func (m *GovernanceKey) Size() (n int) { +func (m *ValueView_KnownDenom) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Gk) - if l > 0 { + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Denom != nil { + l = m.Denom.Size() n += 1 + l + sovCrypto(uint64(l)) } return n } -func (m *ConsensusKey) Size() (n int) { +func (m *ValueView_UnknownDenom) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Inner) - if l > 0 { + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.AssetId != nil { + l = m.AssetId.Size() n += 1 + l + sovCrypto(uint64(l)) } return n } -func (m *Note) Size() (n int) { +func (m *MerkleRoot) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovCrypto(uint64(l)) - } - l = len(m.Rseed) + l = len(m.Inner) if l > 0 { n += 1 + l + sovCrypto(uint64(l)) } - if m.Address != nil { - l = m.Address.Size() - n += 1 + l + sovCrypto(uint64(l)) - } return n } -func (m *NoteCiphertext) Size() (n int) { +func (m *Asset) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Inner) - if l > 0 { + if m.Id != nil { + l = m.Id.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Denom != nil { + l = m.Denom.Size() n += 1 + l + sovCrypto(uint64(l)) } return n } -func (m *Nullifier) Size() (n int) { +func (m *IdentityKey) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Inner) + l = len(m.Ik) if l > 0 { n += 1 + l + sovCrypto(uint64(l)) } return n } -func (m *SpendAuthSignature) Size() (n int) { +func (m *GovernanceKey) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Inner) + l = len(m.Gk) if l > 0 { n += 1 + l + sovCrypto(uint64(l)) } return n } -func (m *BindingSignature) Size() (n int) { +func (m *ConsensusKey) Size() (n int) { if m == nil { return 0 } @@ -3549,15 +4039,109 @@ func (m *BindingSignature) Size() (n int) { return n } -func (m *NotePayload) Size() (n int) { +func (m *Note) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.NoteCommitment != nil { - l = m.NoteCommitment.Size() - n += 1 + l + sovCrypto(uint64(l)) + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Rseed) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *NoteView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Rseed) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Address != nil { + l = m.Address.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *NoteCiphertext) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *Nullifier) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *SpendAuthSignature) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *BindingSignature) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *NotePayload) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NoteCommitment != nil { + l = m.NoteCommitment.Size() + n += 1 + l + sovCrypto(uint64(l)) } l = len(m.EphemeralKey) if l > 0 { @@ -5321,7 +5905,7 @@ func (m *Value) Unmarshal(dAtA []byte) error { } return nil } -func (m *MerkleRoot) Unmarshal(dAtA []byte) error { +func (m *ValueView) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5344,17 +5928,17 @@ func (m *MerkleRoot) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MerkleRoot: wiretype end group for non-group") + return fmt.Errorf("proto: ValueView: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MerkleRoot: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ValueView: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field KnownDenom", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -5364,25 +5948,61 @@ func (m *MerkleRoot) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) - if m.Inner == nil { - m.Inner = []byte{} + v := &ValueView_KnownDenom{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ValueView = &ValueView_KnownDenom_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnknownDenom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ValueView_UnknownDenom{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } + m.ValueView = &ValueView_UnknownDenom_{v} iNdEx = postIndex default: iNdEx = preIndex @@ -5405,7 +6025,7 @@ func (m *MerkleRoot) Unmarshal(dAtA []byte) error { } return nil } -func (m *Asset) Unmarshal(dAtA []byte) error { +func (m *ValueView_KnownDenom) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5428,15 +6048,15 @@ func (m *Asset) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Asset: wiretype end group for non-group") + return fmt.Errorf("proto: KnownDenom: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Asset: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: KnownDenom: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5463,10 +6083,10 @@ func (m *Asset) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Id == nil { - m.Id = &AssetId{} + if m.Amount == nil { + m.Amount = &Amount{} } - if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5527,7 +6147,7 @@ func (m *Asset) Unmarshal(dAtA []byte) error { } return nil } -func (m *IdentityKey) Unmarshal(dAtA []byte) error { +func (m *ValueView_UnknownDenom) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5550,17 +6170,17 @@ func (m *IdentityKey) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: IdentityKey: wiretype end group for non-group") + return fmt.Errorf("proto: UnknownDenom: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: IdentityKey: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UnknownDenom: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ik", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -5570,81 +6190,33 @@ func (m *IdentityKey) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - m.Ik = append(m.Ik[:0], dAtA[iNdEx:postIndex]...) - if m.Ik == nil { - m.Ik = []byte{} + if m.Amount == nil { + m.Amount = &Amount{} } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCrypto(dAtA[iNdEx:]) - if err != nil { + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCrypto - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GovernanceKey) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCrypto - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GovernanceKey: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GovernanceKey: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Gk", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -5654,24 +6226,26 @@ func (m *GovernanceKey) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - m.Gk = append(m.Gk[:0], dAtA[iNdEx:postIndex]...) - if m.Gk == nil { - m.Gk = []byte{} + if m.AssetId == nil { + m.AssetId = &AssetId{} + } + if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -5695,7 +6269,7 @@ func (m *GovernanceKey) Unmarshal(dAtA []byte) error { } return nil } -func (m *ConsensusKey) Unmarshal(dAtA []byte) error { +func (m *MerkleRoot) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5718,10 +6292,10 @@ func (m *ConsensusKey) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ConsensusKey: wiretype end group for non-group") + return fmt.Errorf("proto: MerkleRoot: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ConsensusKey: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MerkleRoot: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -5779,7 +6353,7 @@ func (m *ConsensusKey) Unmarshal(dAtA []byte) error { } return nil } -func (m *Note) Unmarshal(dAtA []byte) error { +func (m *Asset) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5802,10 +6376,384 @@ func (m *Note) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Note: wiretype end group for non-group") + return fmt.Errorf("proto: Asset: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Note: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Asset: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Id == nil { + m.Id = &AssetId{} + } + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Denom == nil { + m.Denom = &Denom{} + } + if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IdentityKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IdentityKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IdentityKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ik", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ik = append(m.Ik[:0], dAtA[iNdEx:postIndex]...) + if m.Ik == nil { + m.Ik = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GovernanceKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GovernanceKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GovernanceKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Gk = append(m.Gk[:0], dAtA[iNdEx:postIndex]...) + if m.Gk == nil { + m.Gk = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ConsensusKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ConsensusKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConsensusKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Note) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Note: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Note: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -5935,6 +6883,162 @@ func (m *Note) Unmarshal(dAtA []byte) error { } return nil } +func (m *NoteView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoteView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoteView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &ValueView{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rseed", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rseed = append(m.Rseed[:0], dAtA[iNdEx:postIndex]...) + if m.Rseed == nil { + m.Rseed = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Address == nil { + m.Address = &AddressView{} + } + if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *NoteCiphertext) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go index b3c6b6c99..cf6cf0bb4 100644 --- a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go +++ b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go @@ -503,7 +503,7 @@ func (m *SwapPlaintext) GetRseed() []byte { type MockFlowCiphertext struct { // Represents this transaction's contribution to flow's value. - Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` + Value *v1alpha1.Amount `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } func (m *MockFlowCiphertext) Reset() { *m = MockFlowCiphertext{} } @@ -539,11 +539,11 @@ func (m *MockFlowCiphertext) XXX_DiscardUnknown() { var xxx_messageInfo_MockFlowCiphertext proto.InternalMessageInfo -func (m *MockFlowCiphertext) GetValue() uint64 { +func (m *MockFlowCiphertext) GetValue() *v1alpha1.Amount { if m != nil { return m.Value } - return 0 + return nil } type SwapPlan struct { @@ -941,9 +941,9 @@ func (*SwapClaimView) XXX_OneofWrappers() []interface{} { } type SwapClaimView_Visible struct { - SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` - Output_1 *v1alpha1.Note `protobuf:"bytes,2,opt,name=output_1,json=output1,proto3" json:"output_1,omitempty"` - Output_2 *v1alpha1.Note `protobuf:"bytes,3,opt,name=output_2,json=output2,proto3" json:"output_2,omitempty"` + SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` + Output_1 *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=output_1,json=output1,proto3" json:"output_1,omitempty"` + Output_2 *v1alpha1.NoteView `protobuf:"bytes,3,opt,name=output_2,json=output2,proto3" json:"output_2,omitempty"` } func (m *SwapClaimView_Visible) Reset() { *m = SwapClaimView_Visible{} } @@ -986,14 +986,14 @@ func (m *SwapClaimView_Visible) GetSwapClaim() *SwapClaim { return nil } -func (m *SwapClaimView_Visible) GetOutput_1() *v1alpha1.Note { +func (m *SwapClaimView_Visible) GetOutput_1() *v1alpha1.NoteView { if m != nil { return m.Output_1 } return nil } -func (m *SwapClaimView_Visible) GetOutput_2() *v1alpha1.Note { +func (m *SwapClaimView_Visible) GetOutput_2() *v1alpha1.NoteView { if m != nil { return m.Output_2 } @@ -1163,19 +1163,21 @@ func (m *DirectedTradingPair) GetEnd() *v1alpha1.AssetId { // clearing price for the batch. type BatchSwapOutputData struct { // The total amount of asset 1 that was input to the batch swap. - Delta_1 uint64 `protobuf:"varint,1,opt,name=delta_1,json=delta1,proto3" json:"delta_1,omitempty"` + Delta_1 *v1alpha1.Amount `protobuf:"bytes,1,opt,name=delta_1,json=delta1,proto3" json:"delta_1,omitempty"` // The total amount of asset 2 that was input to the batch swap. - Delta_2 uint64 `protobuf:"varint,2,opt,name=delta_2,json=delta2,proto3" json:"delta_2,omitempty"` - // The total amount of asset 1 that was output from the batch swap. - Lambda_1 uint64 `protobuf:"varint,3,opt,name=lambda_1,json=lambda1,proto3" json:"lambda_1,omitempty"` - // The total amount of asset 2 that was output from the batch swap. - Lambda_2 uint64 `protobuf:"varint,4,opt,name=lambda_2,json=lambda2,proto3" json:"lambda_2,omitempty"` - // Whether the swap succeeded or not. - Success bool `protobuf:"varint,5,opt,name=success,proto3" json:"success,omitempty"` + Delta_2 *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_2,json=delta2,proto3" json:"delta_2,omitempty"` + // The total amount of asset 1 that was output from the batch swap for 1=>2 trades. + Lambda_1_1 *v1alpha1.Amount `protobuf:"bytes,3,opt,name=lambda_1_1,json=lambda11,proto3" json:"lambda_1_1,omitempty"` + // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. + Lambda_2_1 *v1alpha1.Amount `protobuf:"bytes,4,opt,name=lambda_2_1,json=lambda21,proto3" json:"lambda_2_1,omitempty"` + // The total amount of asset 1 that was output from the batch swap for 2=>1 trades. + Lambda_1_2 *v1alpha1.Amount `protobuf:"bytes,5,opt,name=lambda_1_2,json=lambda12,proto3" json:"lambda_1_2,omitempty"` + // The total amount of asset 2 that was output from the batch swap for 2=>1 trades. + Lambda_2_2 *v1alpha1.Amount `protobuf:"bytes,6,opt,name=lambda_2_2,json=lambda22,proto3" json:"lambda_2_2,omitempty"` // The height for which the batch swap data is valid. - Height uint64 `protobuf:"varint,6,opt,name=height,proto3" json:"height,omitempty"` + Height uint64 `protobuf:"varint,7,opt,name=height,proto3" json:"height,omitempty"` // The trading pair associated with the batch swap. - TradingPair *TradingPair `protobuf:"bytes,7,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *TradingPair `protobuf:"bytes,8,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (m *BatchSwapOutputData) Reset() { *m = BatchSwapOutputData{} } @@ -1211,39 +1213,46 @@ func (m *BatchSwapOutputData) XXX_DiscardUnknown() { var xxx_messageInfo_BatchSwapOutputData proto.InternalMessageInfo -func (m *BatchSwapOutputData) GetDelta_1() uint64 { +func (m *BatchSwapOutputData) GetDelta_1() *v1alpha1.Amount { if m != nil { return m.Delta_1 } - return 0 + return nil } -func (m *BatchSwapOutputData) GetDelta_2() uint64 { +func (m *BatchSwapOutputData) GetDelta_2() *v1alpha1.Amount { if m != nil { return m.Delta_2 } - return 0 + return nil } -func (m *BatchSwapOutputData) GetLambda_1() uint64 { +func (m *BatchSwapOutputData) GetLambda_1_1() *v1alpha1.Amount { if m != nil { - return m.Lambda_1 + return m.Lambda_1_1 } - return 0 + return nil } -func (m *BatchSwapOutputData) GetLambda_2() uint64 { +func (m *BatchSwapOutputData) GetLambda_2_1() *v1alpha1.Amount { if m != nil { - return m.Lambda_2 + return m.Lambda_2_1 } - return 0 + return nil +} + +func (m *BatchSwapOutputData) GetLambda_1_2() *v1alpha1.Amount { + if m != nil { + return m.Lambda_1_2 + } + return nil } -func (m *BatchSwapOutputData) GetSuccess() bool { +func (m *BatchSwapOutputData) GetLambda_2_2() *v1alpha1.Amount { if m != nil { - return m.Success + return m.Lambda_2_2 } - return false + return nil } func (m *BatchSwapOutputData) GetHeight() uint64 { @@ -2125,7 +2134,9 @@ func (m *SwapExecution) GetTrades() []*Trade { // Contains private and public data for withdrawing funds from a closed position. type PositionWithdrawPlan struct { - Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` + Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` + PositionId *PositionId `protobuf:"bytes,2,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + Pair *TradingPair `protobuf:"bytes,3,opt,name=pair,proto3" json:"pair,omitempty"` } func (m *PositionWithdrawPlan) Reset() { *m = PositionWithdrawPlan{} } @@ -2168,6 +2179,20 @@ func (m *PositionWithdrawPlan) GetReserves() *Reserves { return nil } +func (m *PositionWithdrawPlan) GetPositionId() *PositionId { + if m != nil { + return m.PositionId + } + return nil +} + +func (m *PositionWithdrawPlan) GetPair() *TradingPair { + if m != nil { + return m.Pair + } + return nil +} + // Contains private and public data for claiming rewards from a position. type PositionRewardClaimPlan struct { Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` @@ -2257,119 +2282,121 @@ func init() { } var fileDescriptor_d1eba752ca2f0d70 = []byte{ - // 1788 bytes of a gzipped FileDescriptorProto + // 1815 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x5f, 0x6f, 0x23, 0x57, - 0x15, 0xcf, 0xd8, 0x4e, 0xec, 0x1c, 0x3b, 0xbb, 0xd9, 0x9b, 0x15, 0x0d, 0x41, 0x4d, 0x77, 0xa7, - 0xdd, 0xb2, 0x6c, 0x91, 0x53, 0x4f, 0x8b, 0x54, 0xb2, 0xb4, 0xdb, 0xf8, 0x4f, 0x1a, 0x6f, 0x1b, - 0x67, 0xb8, 0x49, 0x77, 0xab, 0xb2, 0x62, 0x74, 0x33, 0x73, 0xb3, 0x1e, 0x31, 0x9e, 0x99, 0x9d, - 0x19, 0x27, 0xce, 0x13, 0x12, 0x02, 0xf1, 0x84, 0xa0, 0x1f, 0x00, 0xa1, 0xe5, 0x91, 0xcf, 0x80, - 0xe0, 0x15, 0x21, 0x10, 0xfb, 0x06, 0x6f, 0xa0, 0xdd, 0x37, 0x3e, 0x00, 0x42, 0x82, 0x07, 0x74, - 0xff, 0xd9, 0x93, 0xc4, 0x8e, 0xed, 0x6c, 0x78, 0xe9, 0x9b, 0xef, 0x3d, 0xe7, 0xf7, 0x9b, 0x73, - 0xef, 0xef, 0xde, 0x73, 0xce, 0x4d, 0xe0, 0x8d, 0x90, 0xfa, 0xdd, 0xce, 0x7e, 0x44, 0xd6, 0xec, - 0x20, 0xa2, 0x6b, 0x0e, 0xed, 0xad, 0x1d, 0x56, 0x88, 0x17, 0xb6, 0x49, 0x85, 0x0d, 0xca, 0x61, - 0x14, 0x24, 0x01, 0x5a, 0x51, 0x5e, 0x65, 0xe6, 0x55, 0x66, 0x06, 0xe5, 0xb5, 0x72, 0xe7, 0x24, - 0x83, 0x1d, 0x1d, 0x87, 0x49, 0x30, 0x20, 0x11, 0x63, 0xc1, 0xa3, 0xff, 0x48, 0x83, 0xdc, 0xee, - 0x11, 0x09, 0xd1, 0x87, 0x30, 0x1b, 0x46, 0x41, 0x70, 0xb0, 0xac, 0xdd, 0xd0, 0x6e, 0x17, 0x8d, - 0x3b, 0xe5, 0x93, 0x1f, 0x90, 0x20, 0x45, 0x52, 0xfe, 0xfc, 0x63, 0x86, 0x32, 0x19, 0x02, 0x0b, - 0x20, 0x7a, 0x0f, 0x72, 0xfb, 0x81, 0x73, 0xbc, 0x9c, 0xe3, 0x04, 0x6f, 0x94, 0x47, 0x47, 0x58, - 0x66, 0xd8, 0x6a, 0xe0, 0x1c, 0x63, 0x8e, 0xd0, 0x7f, 0xaa, 0xc1, 0x3c, 0x9b, 0xaa, 0x79, 0xc4, - 0xed, 0xa0, 0xeb, 0xe9, 0x48, 0x4a, 0x8a, 0xfd, 0x7d, 0xc9, 0x9e, 0xe1, 0xec, 0xdf, 0x18, 0xc7, - 0xce, 0xa9, 0x06, 0x9f, 0x40, 0xb7, 0xe0, 0x0a, 0x0d, 0x03, 0xbb, 0x6d, 0x39, 0xdd, 0x88, 0x24, - 0x6e, 0xe0, 0x2f, 0xe7, 0x6f, 0x68, 0xb7, 0x73, 0x78, 0x81, 0xcf, 0xd6, 0xe5, 0xa4, 0xfe, 0xab, - 0x2c, 0x2c, 0x9c, 0x80, 0xa3, 0x4d, 0x98, 0xf7, 0xbb, 0x9e, 0xe7, 0x1e, 0xb8, 0x34, 0x92, 0x7b, - 0x73, 0x7b, 0xcc, 0xde, 0xb4, 0x94, 0x3f, 0x1e, 0x40, 0xd1, 0xbb, 0x90, 0x3d, 0xa0, 0x54, 0x86, - 0xaf, 0x8f, 0x61, 0xd8, 0xa4, 0x14, 0x33, 0x77, 0xf4, 0x7d, 0x58, 0x0a, 0xba, 0x49, 0xd8, 0x4d, - 0xac, 0x8a, 0x65, 0x07, 0x9d, 0x8e, 0x9b, 0x74, 0xa8, 0x9f, 0x2c, 0x67, 0x39, 0x4b, 0x79, 0x0c, - 0xcb, 0x6e, 0x42, 0x12, 0x5a, 0xeb, 0xa3, 0xf0, 0x35, 0x41, 0x55, 0x19, 0x4c, 0xa5, 0xf8, 0x8d, - 0x34, 0x7f, 0xee, 0x65, 0xf8, 0x8d, 0x14, 0xbf, 0x09, 0x45, 0xc9, 0xef, 0x90, 0x84, 0x2c, 0xcf, - 0x71, 0xde, 0xb5, 0xf3, 0xc4, 0xab, 0x92, 0xc4, 0x6e, 0x33, 0x09, 0x76, 0x38, 0xae, 0x4e, 0x12, - 0x82, 0x21, 0xe8, 0xff, 0xd6, 0xff, 0x9d, 0x81, 0x82, 0x3a, 0x3e, 0xe8, 0x3e, 0x94, 0x92, 0x88, - 0x38, 0xae, 0xff, 0xd8, 0x0a, 0x89, 0xab, 0xf4, 0xf9, 0xfa, 0x79, 0xfc, 0x7b, 0xc2, 0xdf, 0x24, - 0x6e, 0x84, 0x8b, 0xc9, 0x60, 0x80, 0x36, 0x60, 0xde, 0xa1, 0x5e, 0x42, 0xac, 0x8a, 0xe5, 0x4a, - 0x99, 0x6e, 0x8d, 0xd9, 0x80, 0x8d, 0x4e, 0xd0, 0xf5, 0x13, 0x9c, 0xe7, 0xb8, 0x4a, 0x73, 0x40, - 0x61, 0x58, 0xae, 0xd4, 0x68, 0x2a, 0x0a, 0xa3, 0x89, 0x1e, 0xc2, 0x95, 0x03, 0x4a, 0xcf, 0x6a, - 0xf1, 0xf6, 0x18, 0x9e, 0x2a, 0xf1, 0x88, 0x6f, 0xa7, 0xd5, 0x58, 0x38, 0xa0, 0xa9, 0x21, 0xda, - 0x80, 0x7c, 0x48, 0x8e, 0xbd, 0x80, 0x38, 0xcb, 0xb3, 0xe3, 0x77, 0x89, 0x5f, 0x6e, 0xe1, 0x8e, - 0x15, 0x4e, 0xff, 0xb1, 0x06, 0xc5, 0x94, 0x01, 0xb5, 0x00, 0x52, 0x71, 0x6a, 0x17, 0x3a, 0x33, - 0x29, 0x06, 0x7e, 0x47, 0x7d, 0x0e, 0xa0, 0x8e, 0x15, 0x1f, 0x91, 0x90, 0xcb, 0x50, 0xc2, 0x0b, - 0xfd, 0x59, 0xf6, 0x75, 0xfd, 0x27, 0xf2, 0x8e, 0x9a, 0x1e, 0x71, 0xfd, 0x84, 0xf6, 0x92, 0x2f, - 0xe1, 0x31, 0xb8, 0x07, 0xf3, 0x36, 0x4b, 0x41, 0x16, 0xcb, 0x19, 0xb9, 0x89, 0x73, 0x46, 0x81, - 0x83, 0x36, 0x29, 0x45, 0x1f, 0xc3, 0x82, 0x20, 0x20, 0x8e, 0x13, 0xd1, 0x38, 0x96, 0xa2, 0xbf, - 0x39, 0x2e, 0x0e, 0xe1, 0x8d, 0x4b, 0x1c, 0x2c, 0x47, 0x2c, 0x23, 0x47, 0x31, 0xa5, 0x0e, 0xbf, - 0xbf, 0x25, 0x2c, 0x06, 0xfa, 0x1d, 0x40, 0xdb, 0x81, 0xfd, 0x83, 0x4d, 0x2f, 0x38, 0xaa, 0xb9, - 0x61, 0x9b, 0x46, 0x5c, 0x8b, 0xeb, 0x30, 0x7b, 0x48, 0xbc, 0x2e, 0xe5, 0x22, 0xe4, 0xb0, 0x18, - 0xe8, 0x3f, 0x14, 0x97, 0xd6, 0xf4, 0x88, 0x8f, 0x4c, 0xb8, 0xc2, 0xc4, 0xb5, 0x42, 0xa5, 0x9f, - 0xd4, 0x6b, 0x6c, 0x4e, 0xef, 0x0b, 0x8e, 0x17, 0xe2, 0x13, 0xfa, 0xdf, 0x84, 0x12, 0xbb, 0x34, - 0xfb, 0x9e, 0xeb, 0x33, 0x1d, 0xe5, 0xb1, 0x29, 0x1e, 0x50, 0x5a, 0x95, 0x53, 0xfa, 0xbf, 0xb4, - 0x54, 0x62, 0xff, 0x3f, 0x85, 0xb1, 0x02, 0x85, 0x30, 0x88, 0x5d, 0x5e, 0x5d, 0x32, 0x7c, 0xf5, - 0xfd, 0xf1, 0xe9, 0x44, 0x98, 0x7d, 0xe9, 0x44, 0x38, 0xa4, 0xa2, 0xe5, 0x86, 0x55, 0xb4, 0xff, - 0xca, 0x7c, 0xf9, 0xc0, 0xa5, 0x47, 0x68, 0x0b, 0xf2, 0x87, 0x6e, 0xec, 0xee, 0x7b, 0x54, 0x2e, - 0xf6, 0x9b, 0xe3, 0x16, 0xcb, 0x60, 0xe5, 0x07, 0x02, 0xb3, 0x35, 0x83, 0x15, 0x1c, 0x35, 0x60, - 0x2e, 0x08, 0xc9, 0x93, 0xae, 0xaa, 0x68, 0x6f, 0x4d, 0x44, 0xb4, 0xc3, 0x21, 0x5b, 0x33, 0x58, - 0x82, 0x57, 0xbe, 0xd0, 0x20, 0x2f, 0xd9, 0xd1, 0xbb, 0x90, 0xe3, 0x97, 0x5e, 0x44, 0x76, 0x63, - 0x1c, 0x21, 0xe6, 0xde, 0x43, 0x64, 0xcc, 0xbe, 0x9c, 0x8c, 0x2b, 0x1f, 0xc0, 0x9c, 0x88, 0xf3, - 0x62, 0x11, 0x55, 0x8b, 0x30, 0xcf, 0x23, 0x3a, 0x74, 0xe9, 0x91, 0xfe, 0xf7, 0x74, 0x43, 0xc1, - 0x35, 0xd8, 0x3e, 0xad, 0x41, 0x65, 0xa2, 0x5e, 0x66, 0x94, 0x10, 0xf7, 0x4f, 0x09, 0xf1, 0xf6, - 0xe4, 0x6c, 0x67, 0xd4, 0xf8, 0x4b, 0x4a, 0x8d, 0x3a, 0x00, 0x5f, 0x05, 0x4f, 0x04, 0x32, 0xd2, - 0x5b, 0x13, 0x71, 0x63, 0xbe, 0x7c, 0xd1, 0xcb, 0x7d, 0x00, 0x05, 0xd5, 0xbf, 0xc8, 0xf8, 0x5e, - 0x1f, 0xd7, 0x3c, 0x05, 0x09, 0xc5, 0x79, 0xd9, 0xa9, 0xa4, 0xf0, 0x86, 0xd4, 0x75, 0x1a, 0xbc, - 0xb1, 0xd2, 0xea, 0x6b, 0x79, 0x29, 0xeb, 0xa9, 0x5e, 0x83, 0xab, 0x03, 0x16, 0xa1, 0xf0, 0xcf, - 0x35, 0x28, 0xa6, 0xaa, 0x09, 0xba, 0x07, 0x79, 0x12, 0xc7, 0x94, 0xad, 0x58, 0x9b, 0x2c, 0xe7, - 0x32, 0xef, 0xa6, 0x83, 0xe7, 0x38, 0xac, 0x32, 0x20, 0x30, 0xe4, 0x96, 0x4d, 0x47, 0x60, 0xe8, - 0x3f, 0xd3, 0x60, 0xa9, 0xee, 0x46, 0xd4, 0x4e, 0xa8, 0x93, 0x8e, 0xec, 0x3b, 0x30, 0x1b, 0x27, - 0x24, 0x4a, 0xa6, 0x8c, 0x4b, 0x80, 0xd0, 0x7b, 0x90, 0xa5, 0xbe, 0x33, 0x65, 0x48, 0x0c, 0xa2, - 0xff, 0x47, 0x83, 0xa5, 0x21, 0xd9, 0x0c, 0xbd, 0x02, 0x79, 0x59, 0x6a, 0x65, 0xb1, 0x98, 0x13, - 0x15, 0x74, 0x60, 0x30, 0x64, 0x1e, 0x15, 0x06, 0x03, 0x7d, 0x15, 0x0a, 0x1e, 0xe9, 0xec, 0x3b, - 0x0c, 0x92, 0xe5, 0x96, 0xbc, 0x18, 0x57, 0x52, 0x26, 0x43, 0x26, 0x42, 0x69, 0x32, 0xd0, 0x32, - 0xe4, 0xe3, 0xae, 0x6d, 0xab, 0x2a, 0x58, 0xc0, 0x6a, 0x88, 0xbe, 0x02, 0x73, 0x6d, 0xea, 0x3e, - 0x6e, 0x27, 0xbc, 0xb2, 0xe5, 0xb0, 0x1c, 0x9d, 0x69, 0x28, 0xf2, 0x17, 0x6f, 0x28, 0xf4, 0x5f, - 0x6a, 0x70, 0x55, 0x1a, 0x37, 0xbb, 0xbe, 0xcd, 0xab, 0xc1, 0x36, 0xcc, 0xdb, 0x41, 0x27, 0x0c, - 0xfc, 0x41, 0xe3, 0x34, 0xa6, 0x16, 0x44, 0xf4, 0x14, 0x07, 0x1e, 0x30, 0xa0, 0xbb, 0x90, 0xe3, - 0x61, 0x66, 0xa6, 0x0b, 0x93, 0x83, 0xf4, 0x2f, 0xb8, 0x3a, 0x67, 0xf8, 0xd1, 0xa2, 0x78, 0xb0, - 0xb0, 0xe8, 0x16, 0xc4, 0x63, 0xe4, 0x1d, 0xd0, 0xc2, 0xe9, 0x5a, 0x22, 0x2d, 0x64, 0xa0, 0x27, - 0xd3, 0x35, 0x41, 0xda, 0x13, 0xbd, 0x07, 0x05, 0x4c, 0x63, 0x1a, 0x1d, 0xd2, 0x18, 0x7d, 0x0b, - 0x32, 0x51, 0x65, 0xc4, 0x85, 0x1d, 0xc1, 0x90, 0x89, 0x2a, 0x1c, 0x66, 0x4c, 0x17, 0x6d, 0x26, - 0x32, 0x74, 0x0b, 0x0a, 0xa6, 0xaa, 0xd9, 0xef, 0x43, 0x36, 0x6c, 0xbb, 0xf2, 0xd3, 0x6f, 0x4d, - 0xb0, 0xab, 0x7d, 0x6d, 0x18, 0x8e, 0x75, 0x42, 0x7e, 0xe0, 0xdb, 0x54, 0xb6, 0x23, 0x62, 0xa0, - 0xeb, 0x00, 0xea, 0x03, 0x4d, 0x87, 0xf9, 0xb8, 0xbe, 0x2f, 0x5f, 0x96, 0x25, 0x2c, 0x06, 0xfa, - 0xd3, 0x0c, 0x2c, 0x28, 0x27, 0xde, 0x30, 0xa3, 0xef, 0xf2, 0xab, 0x9b, 0x08, 0x39, 0xae, 0x18, - 0x77, 0xcf, 0x0b, 0xe6, 0x04, 0xf2, 0xe4, 0xa8, 0xe1, 0x77, 0x3b, 0x58, 0x30, 0xe9, 0xbf, 0xd5, - 0xe0, 0xda, 0x19, 0x23, 0x7a, 0x1d, 0x5e, 0x33, 0x77, 0x76, 0x9b, 0x7b, 0xcd, 0x9d, 0x96, 0xb5, - 0xbb, 0xb7, 0xb1, 0xd7, 0xb0, 0x1a, 0xad, 0x4f, 0xb7, 0xad, 0x4f, 0x5b, 0xbb, 0x66, 0xa3, 0xd6, - 0xdc, 0x6c, 0x36, 0xea, 0x8b, 0x33, 0x68, 0x15, 0x56, 0x86, 0x39, 0xed, 0x98, 0x8d, 0x56, 0xa3, - 0xbe, 0xa8, 0x8d, 0xb2, 0xd7, 0x3e, 0xd9, 0xd9, 0x6d, 0xd4, 0x17, 0x33, 0xe8, 0x26, 0xbc, 0x3a, - 0xcc, 0xfe, 0xb0, 0xb9, 0xb7, 0x55, 0xc7, 0x1b, 0x0f, 0x5b, 0x8b, 0x59, 0xf4, 0x1a, 0x7c, 0x6d, - 0x38, 0xc5, 0x46, 0x73, 0xbb, 0x51, 0x5f, 0xcc, 0xe9, 0x7f, 0xd5, 0x60, 0x51, 0x85, 0xbf, 0x4d, - 0x13, 0xc2, 0xda, 0x2a, 0xf4, 0x61, 0xaa, 0x03, 0xd3, 0xc6, 0xff, 0x19, 0x42, 0xe1, 0x53, 0x7d, - 0xda, 0x3d, 0xb5, 0xd1, 0x13, 0xfc, 0x9d, 0xe1, 0xc4, 0xee, 0xc9, 0x6d, 0x65, 0x21, 0x44, 0xf2, - 0xe8, 0xca, 0x63, 0x7f, 0x6e, 0x08, 0xea, 0x98, 0xe3, 0x3e, 0x8a, 0x5d, 0xc8, 0xd9, 0x4f, 0xc2, - 0xd6, 0x41, 0x82, 0x3e, 0x82, 0xa2, 0x0a, 0xcc, 0x72, 0x9d, 0x11, 0x69, 0x7b, 0x68, 0x48, 0x4d, - 0x07, 0x43, 0x38, 0x38, 0x66, 0x2f, 0xbb, 0x2a, 0xfd, 0xa9, 0x06, 0x25, 0x65, 0xd8, 0x09, 0xa9, - 0x7f, 0x09, 0x3b, 0xbd, 0x03, 0x8b, 0xae, 0xef, 0x26, 0x2e, 0xf1, 0xac, 0xfe, 0x86, 0x65, 0xa6, - 0xd8, 0xb0, 0xab, 0x12, 0xad, 0x26, 0xf4, 0xcf, 0x06, 0x97, 0xa6, 0xe6, 0x05, 0x31, 0xbd, 0xb4, - 0xed, 0xd3, 0x7f, 0x97, 0x3a, 0x6b, 0x0f, 0xdd, 0xa4, 0xed, 0x44, 0xe4, 0xe8, 0xf2, 0xc4, 0x21, - 0xb0, 0xa4, 0x36, 0x20, 0xfd, 0xee, 0xcf, 0x5c, 0xf0, 0xdd, 0x8f, 0x14, 0xd9, 0x60, 0x4e, 0xff, - 0xbd, 0x06, 0x4b, 0x7d, 0x09, 0xe8, 0x11, 0x89, 0x1c, 0xd1, 0x9e, 0x5d, 0xda, 0x1a, 0x2c, 0x40, - 0x11, 0xe7, 0xbd, 0x94, 0x25, 0x5c, 0x93, 0x5c, 0xa9, 0x15, 0xfc, 0x49, 0x83, 0x9c, 0x49, 0x92, - 0x36, 0xaa, 0xc9, 0x5a, 0x37, 0x41, 0xd5, 0x1c, 0xd2, 0x03, 0x89, 0x9a, 0xc7, 0x3a, 0xa1, 0x28, - 0xe8, 0xf2, 0xfb, 0x90, 0x9d, 0xa6, 0x13, 0xe2, 0x20, 0xb4, 0x21, 0xea, 0x42, 0xf6, 0x62, 0x75, - 0x9b, 0x61, 0xf5, 0x3f, 0x6b, 0x30, 0xcb, 0x0c, 0xfc, 0x8d, 0x11, 0x92, 0xa4, 0x3d, 0xc9, 0x1b, - 0x83, 0xad, 0x1f, 0x73, 0x6f, 0xb4, 0x05, 0x25, 0xde, 0x95, 0x59, 0x84, 0x97, 0xae, 0xe9, 0xea, - 0x5c, 0x91, 0x43, 0xc5, 0x80, 0xf5, 0xc5, 0xd4, 0x77, 0x14, 0xcf, 0x54, 0x85, 0x7a, 0x9e, 0xfa, - 0x8e, 0xf8, 0xa9, 0xdf, 0x17, 0xaf, 0x9c, 0x46, 0x8f, 0xda, 0x5d, 0x7e, 0xbb, 0xbf, 0x0d, 0x73, - 0xac, 0x09, 0xa2, 0xf1, 0xb2, 0xc6, 0xb7, 0xf8, 0xe6, 0xb8, 0xf2, 0x49, 0xb1, 0x04, 0xe8, 0x9f, - 0xc1, 0xf5, 0xd3, 0x97, 0x8d, 0x3f, 0xd8, 0xd3, 0x99, 0x55, 0xbb, 0x50, 0x66, 0xfd, 0x1e, 0xbc, - 0x32, 0xe4, 0x16, 0x5c, 0x0e, 0x79, 0xf5, 0x69, 0xe6, 0x0f, 0xcf, 0x57, 0xb5, 0x67, 0xcf, 0x57, - 0xb5, 0x7f, 0x3c, 0x5f, 0xd5, 0x7e, 0xf1, 0x62, 0x75, 0xe6, 0xd9, 0x8b, 0xd5, 0x99, 0xbf, 0xbd, - 0x58, 0x9d, 0x81, 0x55, 0x3b, 0xe8, 0x9c, 0xc3, 0x56, 0x2d, 0xd4, 0x69, 0xcf, 0x8c, 0x82, 0x24, - 0x30, 0xb5, 0xcf, 0xf1, 0x63, 0x37, 0x69, 0x77, 0xf7, 0xcb, 0x76, 0xd0, 0x59, 0xb3, 0x83, 0xb8, - 0x13, 0xc4, 0x6b, 0x11, 0xf5, 0xc8, 0x31, 0x8d, 0xd6, 0x0e, 0x8d, 0xfe, 0x4f, 0xbb, 0x4d, 0x5c, - 0x3f, 0x5e, 0x1b, 0xfd, 0xaf, 0x82, 0xbb, 0x0e, 0xed, 0xa9, 0xdf, 0xbf, 0xce, 0x64, 0xcd, 0x5a, - 0xfd, 0x37, 0x99, 0x15, 0x53, 0x85, 0x50, 0x63, 0x21, 0xd4, 0x69, 0xaf, 0xfc, 0x40, 0xba, 0xfc, - 0x71, 0x60, 0x7c, 0xc4, 0x8c, 0x8f, 0xea, 0xb4, 0xf7, 0x48, 0x19, 0x9f, 0x67, 0xde, 0x1c, 0x6d, - 0x7c, 0xf4, 0x91, 0x59, 0x55, 0xf5, 0xf7, 0x9f, 0x99, 0x57, 0x95, 0xe3, 0xfa, 0x3a, 0xf3, 0x5c, - 0x5f, 0xaf, 0xd3, 0xde, 0xfa, 0xba, 0xf2, 0xdd, 0x9f, 0xe3, 0xff, 0x74, 0x78, 0xe7, 0x7f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xf2, 0x22, 0xe2, 0x77, 0xe4, 0x18, 0x00, 0x00, + 0x15, 0xcf, 0x8c, 0x9d, 0xc4, 0x39, 0x76, 0x76, 0xb3, 0x37, 0x15, 0x44, 0x41, 0x4d, 0x77, 0x87, + 0xfe, 0x59, 0x5a, 0xe4, 0xd4, 0xd3, 0x22, 0x95, 0x2c, 0xed, 0x36, 0xfe, 0x93, 0xc6, 0xdb, 0xc6, + 0x71, 0x27, 0xe9, 0x2e, 0x2a, 0x2b, 0x46, 0x37, 0x33, 0x37, 0xeb, 0x11, 0xe3, 0x99, 0xd9, 0x99, + 0xeb, 0xc4, 0x79, 0x42, 0x42, 0x20, 0x9e, 0x2a, 0xe8, 0x07, 0x40, 0x68, 0x79, 0xe4, 0x33, 0x20, + 0x78, 0x45, 0x08, 0xa4, 0xbe, 0x2d, 0x4f, 0x08, 0xed, 0x3e, 0x20, 0xf1, 0x01, 0x10, 0x0f, 0x3c, + 0xa0, 0xfb, 0xcf, 0x1e, 0x27, 0x4e, 0xec, 0xc9, 0x86, 0x17, 0xde, 0x7c, 0xe7, 0x9e, 0xdf, 0x6f, + 0x7e, 0xf7, 0x9e, 0x73, 0xcf, 0x39, 0x77, 0x0c, 0xaf, 0x46, 0x24, 0xe8, 0x75, 0x0f, 0x62, 0xbc, + 0xee, 0x84, 0x31, 0x59, 0x77, 0x49, 0x7f, 0xfd, 0xa8, 0x82, 0xfd, 0xa8, 0x83, 0x2b, 0x6c, 0x50, + 0x8e, 0xe2, 0x90, 0x86, 0x68, 0x55, 0x59, 0x95, 0x99, 0x55, 0x99, 0x4d, 0x28, 0xab, 0xd5, 0x37, + 0x47, 0x19, 0x9c, 0xf8, 0x24, 0xa2, 0xe1, 0x90, 0x44, 0x8c, 0x05, 0x8f, 0xf1, 0x13, 0x0d, 0xf2, + 0x7b, 0xc7, 0x38, 0x42, 0x1f, 0xc2, 0x6c, 0x14, 0x87, 0xe1, 0xe1, 0x8a, 0x76, 0x53, 0xbb, 0x5d, + 0x34, 0xdf, 0x2c, 0x8f, 0xbe, 0x40, 0x82, 0x14, 0x49, 0xf9, 0xf3, 0x8f, 0x19, 0xaa, 0xcd, 0x10, + 0x96, 0x00, 0xa2, 0xf7, 0x20, 0x7f, 0x10, 0xba, 0x27, 0x2b, 0x79, 0x4e, 0xf0, 0x6a, 0xf9, 0x7c, + 0x85, 0x65, 0x86, 0xad, 0x86, 0xee, 0x89, 0xc5, 0x11, 0xc6, 0xcf, 0x35, 0x58, 0x60, 0x8f, 0x6a, + 0x3e, 0xf6, 0xba, 0xe8, 0xa5, 0xb4, 0x92, 0x92, 0x62, 0x7f, 0x5f, 0xb2, 0xeb, 0x9c, 0xfd, 0x5b, + 0x93, 0xd8, 0x39, 0xd5, 0xf0, 0x15, 0xe8, 0x35, 0xb8, 0x46, 0xa2, 0xd0, 0xe9, 0xd8, 0x6e, 0x2f, + 0xc6, 0xd4, 0x0b, 0x83, 0x95, 0xf9, 0x9b, 0xda, 0xed, 0xbc, 0xb5, 0xc8, 0x9f, 0xd6, 0xe5, 0x43, + 0xe3, 0xd7, 0x39, 0x58, 0x1c, 0x81, 0xa3, 0x2d, 0x58, 0x08, 0x7a, 0xbe, 0xef, 0x1d, 0x7a, 0x24, + 0x96, 0x7b, 0x73, 0x7b, 0xc2, 0xde, 0xb4, 0x94, 0xbd, 0x35, 0x84, 0xa2, 0x77, 0x21, 0x77, 0x48, + 0x88, 0x94, 0x6f, 0x4c, 0x60, 0xd8, 0x22, 0xc4, 0x62, 0xe6, 0xe8, 0x87, 0xb0, 0x1c, 0xf6, 0x68, + 0xd4, 0xa3, 0x76, 0xc5, 0x76, 0xc2, 0x6e, 0xd7, 0xa3, 0x5d, 0x12, 0xd0, 0x95, 0x1c, 0x67, 0x29, + 0x4f, 0x60, 0xd9, 0xa3, 0x98, 0x92, 0xda, 0x00, 0x65, 0xdd, 0x10, 0x54, 0x95, 0xe1, 0xa3, 0x14, + 0xbf, 0x99, 0xe6, 0xcf, 0xbf, 0x08, 0xbf, 0x99, 0xe2, 0x6f, 0x43, 0x51, 0xf2, 0xbb, 0x98, 0xe2, + 0x95, 0x39, 0xce, 0xbb, 0x7e, 0x91, 0xf3, 0xaa, 0x98, 0x3a, 0x1d, 0xe6, 0x82, 0x5d, 0x8e, 0xab, + 0x63, 0x8a, 0x2d, 0x08, 0x07, 0xbf, 0x8d, 0x7f, 0xeb, 0x50, 0x50, 0xe1, 0x83, 0xee, 0x41, 0x89, + 0xc6, 0xd8, 0xf5, 0x82, 0x47, 0x76, 0x84, 0x3d, 0xe5, 0x9f, 0x37, 0x2e, 0xe2, 0xdf, 0x17, 0xf6, + 0x6d, 0xec, 0xc5, 0x56, 0x91, 0x0e, 0x07, 0x68, 0x13, 0x16, 0x5c, 0xe2, 0x53, 0x6c, 0x57, 0x6c, + 0x4f, 0xba, 0xe9, 0xb5, 0x09, 0x1b, 0xb0, 0xd9, 0x0d, 0x7b, 0x01, 0xb5, 0xe6, 0x39, 0xae, 0xd2, + 0x1c, 0x52, 0x98, 0xb6, 0x27, 0x7d, 0x94, 0x89, 0xc2, 0x6c, 0xa2, 0x07, 0x70, 0xed, 0x90, 0x90, + 0xb3, 0xbe, 0x78, 0x7b, 0x02, 0x4f, 0x15, 0xfb, 0x38, 0x70, 0xd2, 0xde, 0x58, 0x3c, 0x24, 0xa9, + 0x21, 0xda, 0x84, 0xf9, 0x08, 0x9f, 0xf8, 0x21, 0x76, 0x57, 0x66, 0x27, 0xef, 0x12, 0x3f, 0xdc, + 0xc2, 0xdc, 0x52, 0x38, 0xe3, 0xa7, 0x1a, 0x14, 0x53, 0x13, 0xa8, 0x05, 0x90, 0xd2, 0xa9, 0x5d, + 0x2a, 0x66, 0x52, 0x0c, 0xfc, 0x8c, 0x06, 0x1c, 0x40, 0x5c, 0x3b, 0x39, 0xc6, 0x11, 0x77, 0x43, + 0xc9, 0x5a, 0x1c, 0x3c, 0x65, 0x6f, 0x37, 0x7e, 0x26, 0xcf, 0x68, 0xdb, 0xc7, 0x5e, 0x40, 0x49, + 0x9f, 0xfe, 0x1f, 0x86, 0xc1, 0x5d, 0x58, 0x70, 0x58, 0x0a, 0xb2, 0x59, 0xce, 0xc8, 0x4f, 0x9d, + 0x33, 0x0a, 0x1c, 0xb4, 0x45, 0x08, 0xfa, 0x18, 0x16, 0x05, 0x01, 0x76, 0xdd, 0x98, 0x24, 0x89, + 0x74, 0xfa, 0xeb, 0x93, 0x74, 0x08, 0x6b, 0xab, 0xc4, 0xc1, 0x72, 0xc4, 0x32, 0x72, 0x9c, 0x10, + 0xe2, 0xf2, 0xf3, 0x5b, 0xb2, 0xc4, 0xc0, 0xf8, 0x14, 0xd0, 0x4e, 0xe8, 0xfc, 0x68, 0xcb, 0x0f, + 0x8f, 0x6b, 0x5e, 0xd4, 0x21, 0x31, 0xf7, 0xc5, 0x1d, 0x98, 0x3d, 0xc2, 0x7e, 0x8f, 0x48, 0x27, + 0x4c, 0xb9, 0x70, 0x81, 0x31, 0x7e, 0x2c, 0xce, 0x76, 0xdb, 0xc7, 0x01, 0x6a, 0xc3, 0x35, 0x16, + 0x03, 0x76, 0xa4, 0xdc, 0x2c, 0x19, 0x27, 0xa6, 0xfe, 0x41, 0x5c, 0x58, 0x8b, 0xc9, 0x48, 0x98, + 0xdc, 0x82, 0x12, 0x3b, 0x5b, 0x07, 0xbe, 0x17, 0x30, 0x77, 0xcb, 0xe8, 0x2a, 0x1e, 0x12, 0x52, + 0x95, 0x8f, 0x8c, 0x7f, 0x69, 0xa9, 0xfc, 0xff, 0x3f, 0x92, 0xb1, 0x0a, 0x85, 0x28, 0x4c, 0x3c, + 0x5e, 0x84, 0x74, 0x5e, 0x84, 0x06, 0xe3, 0xd3, 0xf9, 0x32, 0xf7, 0xc2, 0xf9, 0x72, 0x4c, 0xe1, + 0xcb, 0x8f, 0x2b, 0x7c, 0xff, 0x91, 0x69, 0xf5, 0xbe, 0x47, 0x8e, 0xd1, 0x36, 0xcc, 0x1f, 0x79, + 0x89, 0x77, 0xe0, 0x2b, 0x2f, 0x7e, 0x7b, 0xd2, 0x62, 0x19, 0xac, 0x7c, 0x5f, 0x60, 0xb6, 0x67, + 0x2c, 0x05, 0x47, 0x0d, 0x98, 0x0b, 0x23, 0xfc, 0xb8, 0xa7, 0x0a, 0xdf, 0x5b, 0x53, 0x11, 0xed, + 0x72, 0xc8, 0xf6, 0x8c, 0x25, 0xc1, 0xab, 0x5f, 0x6a, 0x30, 0x2f, 0xd9, 0xd1, 0xbb, 0x90, 0xe7, + 0xb9, 0x41, 0x28, 0xbb, 0x39, 0x89, 0xd0, 0xe2, 0xd6, 0x63, 0xdc, 0x98, 0x7b, 0x31, 0x37, 0xae, + 0x7e, 0x00, 0x73, 0x42, 0xe7, 0xe5, 0x14, 0x55, 0x8b, 0xb0, 0xc0, 0x15, 0x1d, 0x79, 0xe4, 0xd8, + 0xf8, 0x47, 0xba, 0xef, 0xe0, 0x3e, 0xd8, 0x39, 0xed, 0x83, 0xca, 0x54, 0x2d, 0xcf, 0x79, 0x8e, + 0xb8, 0x77, 0xca, 0x11, 0x6f, 0x4f, 0xcf, 0x76, 0xc6, 0x1b, 0x4f, 0x53, 0xde, 0xa8, 0x03, 0xf0, + 0x55, 0xf0, 0x7c, 0x71, 0xce, 0x99, 0x1f, 0xcf, 0x6d, 0xf1, 0xe5, 0x8b, 0x96, 0xaf, 0x0a, 0x05, + 0xd5, 0xe6, 0x48, 0x7d, 0x6f, 0x4c, 0xea, 0xb1, 0x42, 0x4a, 0x98, 0x3a, 0x6b, 0x5e, 0x36, 0x35, + 0x29, 0x0e, 0x53, 0xfa, 0x36, 0x2b, 0x87, 0xb9, 0xda, 0x1a, 0xf8, 0xf4, 0x4a, 0xd6, 0x55, 0xbd, + 0x01, 0xd7, 0x87, 0x2c, 0xc2, 0xd3, 0xbf, 0xd0, 0xa0, 0x98, 0x2a, 0x3e, 0xe8, 0x2e, 0xcc, 0xe3, + 0x24, 0x21, 0x6c, 0xe5, 0xda, 0x74, 0x29, 0x9a, 0x59, 0x37, 0x5d, 0x6b, 0x8e, 0xc3, 0x2a, 0x43, + 0x02, 0x53, 0x6e, 0x5d, 0x36, 0x02, 0xd3, 0xf8, 0x42, 0x83, 0xe5, 0xba, 0x17, 0x13, 0x87, 0x12, + 0x37, 0xad, 0xec, 0x7b, 0x30, 0x9b, 0x50, 0x1c, 0xd3, 0x8c, 0xba, 0x04, 0x08, 0xbd, 0x07, 0x39, + 0x12, 0xb8, 0x19, 0x25, 0x31, 0x88, 0xf1, 0x45, 0x1e, 0x96, 0xc7, 0x64, 0x35, 0xf4, 0x01, 0xcc, + 0xcb, 0xca, 0x9c, 0xad, 0xb6, 0xcc, 0x89, 0xba, 0x3c, 0xc4, 0x9b, 0xd9, 0xea, 0xba, 0xc0, 0x9b, + 0xa8, 0x06, 0xe0, 0xe3, 0xee, 0x81, 0xcb, 0x5a, 0x83, 0x4a, 0xb6, 0xba, 0x5e, 0x10, 0xc0, 0x4a, + 0x25, 0x45, 0x62, 0xda, 0x15, 0x59, 0xd9, 0xb3, 0x91, 0x98, 0x95, 0x11, 0x25, 0xa6, 0xac, 0xec, + 0x19, 0x95, 0x98, 0x23, 0x4a, 0x4c, 0xd9, 0x99, 0x67, 0x54, 0x62, 0xa2, 0xaf, 0xc1, 0x5c, 0x87, + 0x78, 0x8f, 0x3a, 0x54, 0x5e, 0xa7, 0xe4, 0xe8, 0x4c, 0x47, 0x56, 0xb8, 0x7c, 0x47, 0x66, 0xfc, + 0x4a, 0x83, 0xeb, 0x72, 0x72, 0xab, 0x17, 0x38, 0xbc, 0x4e, 0xee, 0xc0, 0x82, 0x13, 0x76, 0xa3, + 0x30, 0x18, 0x76, 0x9e, 0x13, 0xaa, 0x64, 0x4c, 0x4e, 0x71, 0x58, 0x43, 0x06, 0x74, 0x07, 0xf2, + 0x5c, 0xa6, 0x9e, 0x4d, 0x26, 0x07, 0x19, 0x5f, 0x6a, 0x2c, 0x5e, 0xcf, 0xf0, 0xa3, 0x25, 0x71, + 0xe3, 0x63, 0xea, 0x16, 0xc5, 0x6d, 0xee, 0x1d, 0xd0, 0xa2, 0x6c, 0xb1, 0xa7, 0x45, 0x0c, 0xf4, + 0x38, 0x5b, 0xb4, 0x69, 0x8f, 0x8d, 0x3e, 0x14, 0x2c, 0x92, 0x90, 0xf8, 0x88, 0x24, 0xe8, 0x3b, + 0xa0, 0xc7, 0x19, 0x8f, 0x8c, 0x1e, 0x57, 0x38, 0x2c, 0xe3, 0x49, 0xd1, 0x63, 0xd3, 0xb0, 0xa1, + 0xd0, 0x56, 0xdd, 0xcc, 0xfb, 0x90, 0x8b, 0x3a, 0x9e, 0x7c, 0xf5, 0x5b, 0x53, 0xec, 0xea, 0xc0, + 0x37, 0x0c, 0xc7, 0xda, 0xce, 0x20, 0x0c, 0x1c, 0x22, 0x1b, 0x35, 0x31, 0x30, 0x0c, 0x00, 0xf5, + 0x82, 0xa6, 0xcb, 0x6c, 0xbc, 0x20, 0x90, 0x57, 0xf3, 0x92, 0x25, 0x06, 0xc6, 0x13, 0x1d, 0x16, + 0x95, 0x11, 0xbf, 0x71, 0xa0, 0x4f, 0x79, 0x32, 0xa3, 0xc2, 0x1d, 0xd7, 0xcc, 0x3b, 0x17, 0x89, + 0x19, 0x41, 0x8e, 0x8e, 0x1a, 0x41, 0xaf, 0x6b, 0x09, 0x26, 0xe3, 0x77, 0x1a, 0xdc, 0x38, 0x33, + 0x89, 0xbe, 0x09, 0xaf, 0xb4, 0x77, 0xf7, 0x9a, 0xfb, 0xcd, 0xdd, 0x96, 0xbd, 0xb7, 0xbf, 0xb9, + 0xdf, 0xb0, 0x1b, 0xad, 0xcf, 0x76, 0xec, 0xcf, 0x5a, 0x7b, 0xed, 0x46, 0xad, 0xb9, 0xd5, 0x6c, + 0xd4, 0x97, 0x66, 0xd0, 0x1a, 0xac, 0x8e, 0x33, 0xda, 0x6d, 0x37, 0x5a, 0x8d, 0xfa, 0x92, 0x76, + 0xde, 0x7c, 0xed, 0x93, 0xdd, 0xbd, 0x46, 0x7d, 0x49, 0x47, 0xb7, 0xe0, 0xe5, 0x71, 0xf3, 0x0f, + 0x9a, 0xfb, 0xdb, 0x75, 0x6b, 0xf3, 0x41, 0x6b, 0x29, 0x87, 0x5e, 0x81, 0x6f, 0x8c, 0xa7, 0xd8, + 0x6c, 0xee, 0x34, 0xea, 0x4b, 0x79, 0xe3, 0xa9, 0x06, 0x4b, 0x4a, 0xfe, 0x0e, 0xa1, 0x98, 0x35, + 0x9c, 0xe8, 0xc3, 0x54, 0x6f, 0xaa, 0x4d, 0xfe, 0x8e, 0xa3, 0xf0, 0xa9, 0x0e, 0xf6, 0xae, 0xda, + 0xe8, 0x29, 0x3e, 0xd4, 0x8c, 0xec, 0x9e, 0xdc, 0x56, 0x26, 0x21, 0x96, 0xa1, 0x2b, 0xc3, 0xfe, + 0x42, 0x09, 0x2a, 0xcc, 0xad, 0x01, 0x8a, 0x1d, 0xc8, 0xd9, 0x4f, 0xa2, 0xd6, 0x21, 0x45, 0x1f, + 0x41, 0x51, 0x09, 0xb3, 0x3d, 0xf7, 0x9c, 0x42, 0x36, 0x56, 0x52, 0xd3, 0xb5, 0x20, 0x1a, 0x86, + 0xd9, 0x8b, 0xae, 0xca, 0x78, 0xa2, 0x41, 0x49, 0x4d, 0xec, 0x46, 0x24, 0xb8, 0x82, 0x9d, 0xde, + 0x85, 0x25, 0x2f, 0xf0, 0xa8, 0x87, 0x7d, 0x7b, 0xb0, 0x61, 0x7a, 0x86, 0x0d, 0xbb, 0x2e, 0xd1, + 0xea, 0x81, 0xf1, 0xfd, 0xe1, 0xa1, 0xa9, 0xf9, 0x61, 0x42, 0xae, 0x6c, 0xfb, 0x8c, 0xdf, 0xa7, + 0x62, 0xed, 0x81, 0x47, 0x3b, 0x6e, 0x8c, 0x8f, 0xaf, 0xce, 0x39, 0x18, 0x96, 0xd5, 0x06, 0xa4, + 0x3f, 0x9c, 0xe8, 0x97, 0xfc, 0x70, 0x82, 0x14, 0xd9, 0xf0, 0x99, 0xf1, 0x07, 0x0d, 0x96, 0x07, + 0x2e, 0x20, 0xc7, 0x38, 0x76, 0x45, 0xe3, 0x7a, 0x65, 0x6b, 0xb0, 0x01, 0xc5, 0x9c, 0xf7, 0x4a, + 0x96, 0x70, 0x43, 0x72, 0xa5, 0x56, 0xf0, 0x67, 0x0d, 0xf2, 0x6d, 0x4c, 0x3b, 0xa8, 0x26, 0x6b, + 0xdd, 0x14, 0x55, 0x73, 0x4c, 0x57, 0x28, 0x6a, 0x1e, 0xeb, 0x0d, 0xe3, 0xb0, 0xc7, 0xcf, 0x43, + 0x2e, 0x4b, 0x6f, 0xc8, 0x41, 0x68, 0x53, 0xd4, 0x85, 0xdc, 0xe5, 0xea, 0x36, 0xc3, 0x1a, 0x7f, + 0xd1, 0x60, 0x96, 0x4d, 0xf0, 0xdb, 0x57, 0x84, 0x69, 0x67, 0x9a, 0xdb, 0x17, 0x5b, 0xbf, 0xc5, + 0xad, 0xd1, 0x36, 0x94, 0x78, 0x9f, 0x6a, 0x63, 0x5e, 0xba, 0xb2, 0xd5, 0xb9, 0x22, 0x87, 0x8a, + 0x01, 0xbb, 0x29, 0x90, 0xc0, 0x55, 0x3c, 0x99, 0x0a, 0xf5, 0x02, 0x09, 0x5c, 0xf1, 0xd3, 0xb8, + 0x27, 0xee, 0x7f, 0x8d, 0x3e, 0x71, 0x7a, 0xfc, 0x74, 0x7f, 0x17, 0xe6, 0x58, 0x13, 0x44, 0x92, + 0x15, 0x8d, 0x6f, 0xf1, 0xad, 0x49, 0xe5, 0x93, 0x58, 0x12, 0x60, 0xfc, 0x4d, 0x83, 0x97, 0x4e, + 0x9f, 0x36, 0xfe, 0x2d, 0x23, 0x9d, 0x5a, 0xb5, 0xcb, 0xa4, 0xd6, 0xd3, 0xf1, 0xae, 0x5f, 0x3a, + 0xde, 0x55, 0xc7, 0x95, 0xbb, 0x4c, 0xc7, 0xf5, 0x03, 0xf8, 0xfa, 0x98, 0xc3, 0x78, 0x35, 0x4b, + 0xac, 0x3e, 0xd1, 0xff, 0xf8, 0x6c, 0x4d, 0xfb, 0xea, 0xd9, 0x9a, 0xf6, 0xf7, 0x67, 0x6b, 0xda, + 0x2f, 0x9f, 0xaf, 0xcd, 0x7c, 0xf5, 0x7c, 0x6d, 0xe6, 0xaf, 0xcf, 0xd7, 0x66, 0x60, 0xcd, 0x09, + 0xbb, 0x17, 0xb0, 0x55, 0x0b, 0x75, 0xd2, 0x6f, 0xc7, 0x21, 0x0d, 0xdb, 0xda, 0xe7, 0xd6, 0x23, + 0x8f, 0x76, 0x7a, 0x07, 0x65, 0x27, 0xec, 0xae, 0x3b, 0x61, 0xd2, 0x0d, 0x93, 0xf5, 0x98, 0xf8, + 0xf8, 0x84, 0xc4, 0xeb, 0x47, 0xe6, 0xe0, 0xa7, 0xd3, 0xc1, 0x5e, 0x90, 0xac, 0x9f, 0xff, 0x97, + 0xcf, 0x1d, 0x97, 0xf4, 0xd5, 0xef, 0xdf, 0xe8, 0xb9, 0x76, 0xad, 0xfe, 0x5b, 0x7d, 0xb5, 0xad, + 0x24, 0xd4, 0x98, 0x84, 0x3a, 0xe9, 0x97, 0xef, 0x4b, 0x93, 0x3f, 0x0d, 0x27, 0x1f, 0xb2, 0xc9, + 0x87, 0x75, 0xd2, 0x7f, 0xa8, 0x26, 0x9f, 0xe9, 0xaf, 0x9f, 0x3f, 0xf9, 0xf0, 0xa3, 0x76, 0x55, + 0xb5, 0x01, 0xff, 0xd4, 0x5f, 0x56, 0x86, 0x1b, 0x1b, 0xcc, 0x72, 0x63, 0xa3, 0x4e, 0xfa, 0x1b, + 0x1b, 0xca, 0xf6, 0x60, 0x8e, 0xff, 0x79, 0xf4, 0xce, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x09, + 0x70, 0x9d, 0x73, 0xac, 0x1a, 0x00, 0x00, } func (m *Swap) Marshal() (dAtA []byte, err error) { @@ -2784,10 +2811,17 @@ func (m *MockFlowCiphertext) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Value != 0 { - i = encodeVarintDex(dAtA, i, uint64(m.Value)) + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -3339,42 +3373,84 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintDex(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 } if m.Height != 0 { i = encodeVarintDex(dAtA, i, uint64(m.Height)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x38 } - if m.Success { + if m.Lambda_2_2 != nil { + { + size, err := m.Lambda_2_2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } i-- - if m.Success { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + dAtA[i] = 0x32 + } + if m.Lambda_1_2 != nil { + { + size, err := m.Lambda_1_2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x28 + dAtA[i] = 0x2a } - if m.Lambda_2 != 0 { - i = encodeVarintDex(dAtA, i, uint64(m.Lambda_2)) + if m.Lambda_2_1 != nil { + { + size, err := m.Lambda_2_1.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x20 + dAtA[i] = 0x22 } - if m.Lambda_1 != 0 { - i = encodeVarintDex(dAtA, i, uint64(m.Lambda_1)) + if m.Lambda_1_1 != nil { + { + size, err := m.Lambda_1_1.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - if m.Delta_2 != 0 { - i = encodeVarintDex(dAtA, i, uint64(m.Delta_2)) + if m.Delta_2 != nil { + { + size, err := m.Delta_2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } - if m.Delta_1 != 0 { - i = encodeVarintDex(dAtA, i, uint64(m.Delta_1)) + if m.Delta_1 != nil { + { + size, err := m.Delta_1.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -4084,6 +4160,30 @@ func (m *PositionWithdrawPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Pair != nil { + { + size, err := m.Pair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.PositionId != nil { + { + size, err := m.PositionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.Reserves != nil { { size, err := m.Reserves.MarshalToSizedBuffer(dAtA[:i]) @@ -4296,8 +4396,9 @@ func (m *MockFlowCiphertext) Size() (n int) { } var l int _ = l - if m.Value != 0 { - n += 1 + sovDex(uint64(m.Value)) + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovDex(uint64(l)) } return n } @@ -4518,20 +4619,29 @@ func (m *BatchSwapOutputData) Size() (n int) { } var l int _ = l - if m.Delta_1 != 0 { - n += 1 + sovDex(uint64(m.Delta_1)) + if m.Delta_1 != nil { + l = m.Delta_1.Size() + n += 1 + l + sovDex(uint64(l)) } - if m.Delta_2 != 0 { - n += 1 + sovDex(uint64(m.Delta_2)) + if m.Delta_2 != nil { + l = m.Delta_2.Size() + n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_1 != 0 { - n += 1 + sovDex(uint64(m.Lambda_1)) + if m.Lambda_1_1 != nil { + l = m.Lambda_1_1.Size() + n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_2 != 0 { - n += 1 + sovDex(uint64(m.Lambda_2)) + if m.Lambda_2_1 != nil { + l = m.Lambda_2_1.Size() + n += 1 + l + sovDex(uint64(l)) } - if m.Success { - n += 2 + if m.Lambda_1_2 != nil { + l = m.Lambda_1_2.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Lambda_2_2 != nil { + l = m.Lambda_2_2.Size() + n += 1 + l + sovDex(uint64(l)) } if m.Height != 0 { n += 1 + sovDex(uint64(m.Height)) @@ -4810,6 +4920,14 @@ func (m *PositionWithdrawPlan) Size() (n int) { l = m.Reserves.Size() n += 1 + l + sovDex(uint64(l)) } + if m.PositionId != nil { + l = m.PositionId.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Pair != nil { + l = m.Pair.Size() + n += 1 + l + sovDex(uint64(l)) + } return n } @@ -5967,10 +6085,10 @@ func (m *MockFlowCiphertext) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } - m.Value = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -5980,11 +6098,28 @@ func (m *MockFlowCiphertext) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Value |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &v1alpha1.Amount{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -6829,7 +6964,7 @@ func (m *SwapClaimView_Visible) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Output_1 == nil { - m.Output_1 = &v1alpha1.Note{} + m.Output_1 = &v1alpha1.NoteView{} } if err := m.Output_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6865,7 +7000,7 @@ func (m *SwapClaimView_Visible) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Output_2 == nil { - m.Output_2 = &v1alpha1.Note{} + m.Output_2 = &v1alpha1.NoteView{} } if err := m.Output_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7252,10 +7387,10 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Delta_1", wireType) } - m.Delta_1 = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -7265,16 +7400,33 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Delta_1 |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Delta_1 == nil { + m.Delta_1 = &v1alpha1.Amount{} + } + if err := m.Delta_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 2: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Delta_2", wireType) } - m.Delta_2 = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -7284,16 +7436,33 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Delta_2 |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Delta_2 == nil { + m.Delta_2 = &v1alpha1.Amount{} + } + if err := m.Delta_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1_1", wireType) } - m.Lambda_1 = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -7303,16 +7472,33 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Lambda_1 |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Lambda_1_1 == nil { + m.Lambda_1_1 = &v1alpha1.Amount{} + } + if err := m.Lambda_1_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2_1", wireType) } - m.Lambda_2 = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -7322,16 +7508,33 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Lambda_2 |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Lambda_2_1 == nil { + m.Lambda_2_1 = &v1alpha1.Amount{} + } + if err := m.Lambda_2_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1_2", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -7341,13 +7544,65 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.Success = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Lambda_1_2 == nil { + m.Lambda_1_2 = &v1alpha1.Amount{} + } + if err := m.Lambda_1_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2_2", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Lambda_2_2 == nil { + m.Lambda_2_2 = &v1alpha1.Amount{} + } + if err := m.Lambda_2_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) } @@ -7366,7 +7621,7 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { break } } - case 7: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field TradingPair", wireType) } @@ -9276,6 +9531,78 @@ func (m *PositionWithdrawPlan) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PositionId == nil { + m.PositionId = &PositionId{} + } + if err := m.PositionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pair", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pair == nil { + m.Pair = &TradingPair{} + } + if err := m.Pair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) diff --git a/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go index d25bee345..2dab3ab79 100644 --- a/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go +++ b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go @@ -974,16 +974,14 @@ type Undelegate struct { ValidatorIdentity *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=validator_identity,json=validatorIdentity,proto3" json:"validator_identity,omitempty"` // The index of the epoch in which this undelegation was performed. StartEpochIndex uint64 `protobuf:"varint,2,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` - // The index of the epoch in which unbonding should complete. - EndEpochIndex uint64 `protobuf:"varint,3,opt,name=end_epoch_index,json=endEpochIndex,proto3" json:"end_epoch_index,omitempty"` // The amount to undelegate, in units of unbonding tokens. - UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,4,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` // The amount of delegation tokens consumed by this action. // // This is implied by the validator's exchange rate in the specified epoch // (and should be checked in transaction validation!), but including it allows // stateless verification that the transaction is internally consistent. - DelegationAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` + DelegationAmount *v1alpha1.Amount `protobuf:"bytes,4,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` } func (m *Undelegate) Reset() { *m = Undelegate{} } @@ -1033,13 +1031,6 @@ func (m *Undelegate) GetStartEpochIndex() uint64 { return 0 } -func (m *Undelegate) GetEndEpochIndex() uint64 { - if m != nil { - return m.EndEpochIndex - } - return 0 -} - func (m *Undelegate) GetUnbondedAmount() *v1alpha1.Amount { if m != nil { return m.UnbondedAmount @@ -1113,13 +1104,11 @@ type UndelegateClaimBody struct { ValidatorIdentity *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=validator_identity,json=validatorIdentity,proto3" json:"validator_identity,omitempty"` // The epoch in which unbonding began, used to verify the penalty. StartEpochIndex uint64 `protobuf:"varint,2,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` - // The epoch in which unbonding finished, used to verify the penalty. - EndEpochIndex uint64 `protobuf:"varint,3,opt,name=end_epoch_index,json=endEpochIndex,proto3" json:"end_epoch_index,omitempty"` // The penalty applied to undelegation, in bps^2 (10e-8). // In the happy path (no slashing), this is 0. - Penalty *Penalty `protobuf:"bytes,4,opt,name=penalty,proto3" json:"penalty,omitempty"` + Penalty *Penalty `protobuf:"bytes,3,opt,name=penalty,proto3" json:"penalty,omitempty"` // The action's contribution to the transaction's value balance. - BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,5,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` + BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,4,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` } func (m *UndelegateClaimBody) Reset() { *m = UndelegateClaimBody{} } @@ -1169,13 +1158,6 @@ func (m *UndelegateClaimBody) GetStartEpochIndex() uint64 { return 0 } -func (m *UndelegateClaimBody) GetEndEpochIndex() uint64 { - if m != nil { - return m.EndEpochIndex - } - return 0 -} - func (m *UndelegateClaimBody) GetPenalty() *Penalty { if m != nil { return m.Penalty @@ -1195,8 +1177,6 @@ type UndelegateClaimPlan struct { ValidatorIdentity *v1alpha1.IdentityKey `protobuf:"bytes,1,opt,name=validator_identity,json=validatorIdentity,proto3" json:"validator_identity,omitempty"` // The epoch in which unbonding began, used to verify the penalty. StartEpochIndex uint64 `protobuf:"varint,2,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` - // The epoch in which unbonding finished, used to verify the penalty. - EndEpochIndex uint64 `protobuf:"varint,3,opt,name=end_epoch_index,json=endEpochIndex,proto3" json:"end_epoch_index,omitempty"` // The penalty applied to undelegation, in bps^2 (10e-8). // In the happy path (no slashing), this is 0. Penalty *Penalty `protobuf:"bytes,4,opt,name=penalty,proto3" json:"penalty,omitempty"` @@ -1254,13 +1234,6 @@ func (m *UndelegateClaimPlan) GetStartEpochIndex() uint64 { return 0 } -func (m *UndelegateClaimPlan) GetEndEpochIndex() uint64 { - if m != nil { - return m.EndEpochIndex - } - return 0 -} - func (m *UndelegateClaimPlan) GetPenalty() *Penalty { if m != nil { return m.Penalty @@ -1518,106 +1491,105 @@ func init() { } var fileDescriptor_022d012c8e7b3ca5 = []byte{ - // 1572 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xcd, 0x6f, 0x23, 0x49, - 0x15, 0x4f, 0x77, 0x3e, 0xfd, 0x1c, 0x7f, 0xa4, 0x66, 0x01, 0xcf, 0x30, 0x93, 0x78, 0x7b, 0x61, - 0xd7, 0xcc, 0x0c, 0x0e, 0x13, 0x04, 0x87, 0xec, 0x61, 0x71, 0xdb, 0xbd, 0x13, 0xef, 0xce, 0x38, - 0xde, 0xb6, 0x13, 0x09, 0x34, 0x52, 0xab, 0xec, 0xae, 0xd8, 0xcd, 0xd8, 0x55, 0xa6, 0xab, 0x9c, - 0xac, 0xaf, 0x5c, 0xe0, 0xc8, 0x71, 0xcf, 0x1c, 0x38, 0xac, 0xc4, 0x81, 0x3f, 0x00, 0xce, 0x88, - 0xd3, 0x72, 0xe3, 0x06, 0xca, 0x48, 0x8b, 0xc4, 0x5f, 0x81, 0xaa, 0xba, 0xab, 0xfd, 0x91, 0xaf, - 0xc9, 0x30, 0x42, 0x42, 0xdc, 0xfa, 0x7d, 0xfd, 0xea, 0xbd, 0xdf, 0xab, 0x57, 0x5d, 0xdd, 0x50, - 0x1a, 0x11, 0x3a, 0x1e, 0x76, 0x42, 0xbc, 0xdb, 0x65, 0x21, 0xd9, 0xe5, 0x02, 0xbf, 0x24, 0xbb, - 0xa7, 0x4f, 0xf0, 0x60, 0xd4, 0xc7, 0x4f, 0x22, 0xb1, 0x3c, 0x0a, 0x99, 0x60, 0xe8, 0xbe, 0xf6, - 0x2c, 0x4b, 0xcf, 0x72, 0x64, 0xd2, 0x9e, 0xf7, 0x1e, 0xce, 0xe3, 0x74, 0xc3, 0xc9, 0x48, 0xb0, - 0x29, 0x50, 0x24, 0x47, 0x48, 0xd6, 0x1f, 0x97, 0x21, 0x75, 0x8c, 0x07, 0x81, 0x8f, 0x05, 0x0b, - 0xd1, 0x73, 0xd8, 0x0c, 0x7c, 0x42, 0x45, 0x20, 0x26, 0xde, 0x4b, 0x32, 0x29, 0x18, 0x45, 0xa3, - 0x94, 0xde, 0x7b, 0x58, 0x9e, 0x5f, 0x2e, 0x06, 0xd0, 0x80, 0xe5, 0x7a, 0x1c, 0xf2, 0x29, 0x99, - 0xb8, 0xe9, 0x60, 0x2a, 0xa0, 0xf7, 0x20, 0xd3, 0x65, 0x94, 0x13, 0xca, 0xc7, 0x5c, 0xe1, 0x99, - 0x45, 0xa3, 0xb4, 0xe9, 0x6e, 0x26, 0x4a, 0xe9, 0x84, 0x60, 0x85, 0xe2, 0x21, 0x29, 0x2c, 0x17, - 0x8d, 0x52, 0xca, 0x55, 0xcf, 0xa8, 0x00, 0xeb, 0x67, 0xa4, 0xc3, 0x03, 0x41, 0x0a, 0x2b, 0x4a, - 0xad, 0x45, 0x54, 0x84, 0xb4, 0x4f, 0x78, 0x37, 0x0c, 0x46, 0x22, 0x60, 0xb4, 0xb0, 0xaa, 0xac, - 0xb3, 0x2a, 0x19, 0x4b, 0x28, 0xee, 0x0c, 0x88, 0x5f, 0xd8, 0x28, 0x1a, 0xa5, 0x0d, 0x57, 0x8b, - 0xa8, 0x0d, 0xb9, 0x93, 0x31, 0xf5, 0x03, 0xda, 0xf3, 0xb8, 0x08, 0x09, 0x1e, 0xf2, 0xc2, 0x5a, - 0x71, 0xb9, 0x94, 0xde, 0x7b, 0x54, 0xbe, 0x8e, 0xcf, 0xf2, 0xc7, 0x51, 0x50, 0x4b, 0xc5, 0xb8, - 0xd9, 0x93, 0x59, 0x91, 0xa3, 0x0f, 0x20, 0xc7, 0xc9, 0x2f, 0xc6, 0x84, 0x76, 0x89, 0x27, 0x41, - 0x48, 0x58, 0x58, 0x2f, 0x1a, 0xa5, 0x8c, 0x9b, 0xd5, 0xea, 0x86, 0xd2, 0xa2, 0x16, 0x64, 0x7b, - 0xec, 0x94, 0x84, 0x14, 0x4b, 0x57, 0x49, 0x47, 0x4a, 0xd1, 0xfb, 0xf8, 0x06, 0x7a, 0x9f, 0x26, - 0x41, 0x92, 0xe0, 0x4c, 0x6f, 0x56, 0xb4, 0x3a, 0x90, 0x49, 0xda, 0xf7, 0x2c, 0xe0, 0x02, 0x7d, - 0x06, 0xd9, 0x53, 0xad, 0x90, 0x8b, 0xf0, 0x82, 0xa1, 0x6a, 0xbc, 0x4d, 0x13, 0x33, 0x09, 0xc2, - 0xa7, 0x64, 0xc2, 0xad, 0xdf, 0x99, 0x90, 0x99, 0xe3, 0x00, 0x1d, 0x03, 0x08, 0xe6, 0x61, 0xdf, - 0x0f, 0x09, 0xe7, 0xf1, 0x2e, 0xf9, 0xd1, 0x2d, 0x48, 0x2c, 0xb7, 0x59, 0x25, 0x0a, 0x3e, 0x58, - 0x72, 0x53, 0x42, 0x0b, 0xe8, 0x13, 0x58, 0x13, 0xcc, 0xf3, 0x31, 0x53, 0x3b, 0x25, 0xbd, 0xf7, - 0xe4, 0x76, 0x98, 0x35, 0xcc, 0x0e, 0x96, 0xdc, 0x55, 0x21, 0x1f, 0xee, 0xfd, 0x04, 0x52, 0xc9, - 0x2a, 0x72, 0x53, 0xcc, 0x66, 0x9b, 0x72, 0xb5, 0x88, 0xee, 0xc2, 0x46, 0x88, 0x05, 0xf1, 0x3a, - 0x23, 0xae, 0x16, 0xcd, 0xb8, 0xeb, 0x52, 0xb6, 0x47, 0xfc, 0x9e, 0x05, 0xab, 0x0a, 0xf3, 0x1a, - 0x1f, 0x3b, 0x0d, 0xa9, 0x90, 0x74, 0x83, 0x51, 0x40, 0xa8, 0xb0, 0xbe, 0x36, 0x60, 0xc3, 0xc5, - 0x82, 0xd4, 0xb0, 0xc0, 0x6f, 0x7b, 0x96, 0x76, 0x20, 0x4d, 0x46, 0xac, 0xdb, 0xf7, 0x02, 0xea, - 0x93, 0xcf, 0x55, 0x1a, 0x2b, 0x2e, 0x28, 0x55, 0x5d, 0x6a, 0xd0, 0x1e, 0x7c, 0x63, 0xda, 0xf8, - 0x90, 0x9c, 0xe1, 0xd0, 0xf7, 0x64, 0x96, 0x6a, 0x82, 0x56, 0xdc, 0x3b, 0x89, 0xd1, 0x55, 0x36, - 0x99, 0x27, 0xfa, 0x31, 0x7c, 0x6b, 0x1a, 0x43, 0x3e, 0xef, 0xf6, 0x31, 0xed, 0x91, 0x28, 0x6a, - 0x55, 0x45, 0x4d, 0x21, 0x9d, 0xd8, 0x2a, 0xe3, 0xac, 0x5f, 0x19, 0xb0, 0x69, 0x63, 0x4e, 0x92, - 0x62, 0x17, 0xb2, 0x33, 0x2e, 0x64, 0x57, 0x82, 0x7c, 0x07, 0x73, 0x32, 0x97, 0x58, 0x54, 0x43, - 0x56, 0xea, 0x67, 0x72, 0x7a, 0x0c, 0x48, 0x79, 0xce, 0xa7, 0xb3, 0xac, 0x7c, 0x15, 0xc6, 0x5c, - 0x26, 0x5f, 0x98, 0x90, 0x4b, 0x06, 0xa0, 0x25, 0xb0, 0x18, 0xf3, 0xb7, 0xcd, 0xbc, 0x0d, 0xab, - 0x5c, 0xe8, 0x7c, 0x2f, 0x8e, 0xeb, 0xc2, 0x9e, 0x9c, 0x4b, 0x86, 0xb8, 0x51, 0x28, 0x7a, 0x17, - 0x36, 0x4f, 0x99, 0x90, 0x27, 0xcf, 0x88, 0x9d, 0x91, 0x30, 0x2e, 0x27, 0x1d, 0xe9, 0x9a, 0x52, - 0x85, 0x0e, 0x21, 0xd3, 0x61, 0xfa, 0x74, 0xd2, 0x7d, 0xbb, 0x98, 0xf6, 0xc2, 0x72, 0x36, 0x8b, - 0x47, 0x40, 0x2e, 0xb6, 0xd9, 0x99, 0x91, 0xac, 0x3f, 0x99, 0xb0, 0x39, 0x6b, 0x46, 0x9f, 0xe9, - 0x42, 0x24, 0x21, 0xd9, 0xbd, 0x0f, 0x5f, 0x1f, 0x79, 0x4e, 0x70, 0xe8, 0x78, 0xa8, 0xeb, 0x7a, - 0x0c, 0xb9, 0x31, 0xd5, 0x69, 0xab, 0x76, 0x47, 0x5d, 0x3d, 0x58, 0x72, 0xb3, 0x89, 0xc1, 0x91, - 0xfa, 0x5f, 0x1b, 0x86, 0xf5, 0x85, 0x01, 0xf9, 0x45, 0x24, 0x64, 0xc1, 0xb6, 0x7d, 0xd8, 0xa8, - 0xd5, 0x1b, 0x4f, 0xbd, 0x56, 0xbb, 0xd2, 0x76, 0x3c, 0xa7, 0x71, 0xf4, 0xdc, 0x3b, 0x6a, 0xb4, - 0x9a, 0x4e, 0xb5, 0xfe, 0x71, 0xdd, 0xa9, 0xe5, 0x97, 0xd0, 0x03, 0xb8, 0x7b, 0x89, 0x8f, 0x54, - 0x39, 0xb5, 0xbc, 0x81, 0x8a, 0x70, 0xff, 0x52, 0x88, 0x58, 0x99, 0x37, 0xd1, 0x0e, 0x7c, 0xfb, - 0x4a, 0x0f, 0xa7, 0x96, 0x5f, 0xb6, 0x11, 0xe4, 0xbd, 0x85, 0x4a, 0xac, 0xbf, 0x9a, 0x90, 0x9d, - 0x6f, 0x27, 0x3a, 0x9a, 0xa7, 0xf0, 0xa3, 0xdb, 0xec, 0x85, 0x05, 0x71, 0x86, 0x46, 0xeb, 0x9f, - 0x06, 0xa0, 0x8b, 0x56, 0xf4, 0x1d, 0x28, 0x1e, 0x57, 0x9e, 0xd5, 0x6b, 0x95, 0xf6, 0xa1, 0x7b, - 0x35, 0x39, 0xef, 0xc2, 0x83, 0x4b, 0xbd, 0xea, 0x8d, 0x4a, 0xb5, 0x5d, 0x3f, 0x76, 0xf2, 0x86, - 0x2c, 0xff, 0x52, 0x97, 0xd8, 0xc1, 0xbc, 0xd2, 0xe1, 0x93, 0x4a, 0xfd, 0x99, 0xe4, 0x07, 0xbd, - 0x07, 0x3b, 0x97, 0x3a, 0xb4, 0x0f, 0x9f, 0xdb, 0xad, 0xf6, 0x61, 0xc3, 0xa9, 0xe5, 0x57, 0xae, - 0xcc, 0xa4, 0x56, 0x6f, 0x55, 0x6c, 0x89, 0xb3, 0x6a, 0x9d, 0x1b, 0x33, 0x2f, 0xac, 0x3a, 0x3d, - 0x61, 0xc8, 0x81, 0x54, 0x72, 0xc8, 0xc4, 0xa3, 0xfa, 0xc1, 0x6b, 0xd2, 0xea, 0x4e, 0x23, 0x91, - 0x03, 0x6b, 0x5c, 0x8d, 0x7f, 0x3c, 0xa6, 0xdf, 0xbf, 0x45, 0x6b, 0xc6, 0xdc, 0x8d, 0x83, 0x51, - 0x15, 0x52, 0xea, 0xa8, 0xf7, 0xb1, 0xc0, 0x6a, 0x4a, 0xd3, 0x7b, 0xef, 0x5f, 0x8f, 0xa4, 0xcf, - 0x40, 0x57, 0xbd, 0x23, 0xe4, 0x93, 0x75, 0x06, 0x77, 0x12, 0xfc, 0x1a, 0x39, 0x09, 0x68, 0xa0, - 0x6e, 0x26, 0x6f, 0xa9, 0xd2, 0xbb, 0xb0, 0x81, 0xc7, 0xa2, 0xef, 0xf1, 0xa0, 0x17, 0x5f, 0xa8, - 0xd6, 0xa5, 0xdc, 0x0a, 0x7a, 0xd6, 0x97, 0x26, 0x6c, 0xd4, 0xc8, 0x80, 0xf4, 0xe4, 0x5e, 0xfd, - 0x29, 0xa0, 0xe9, 0xe1, 0xae, 0x0f, 0xb4, 0x37, 0x38, 0x0c, 0xb7, 0x12, 0x14, 0xad, 0xbd, 0xf9, - 0x65, 0xd4, 0xd0, 0xe7, 0x02, 0xf1, 0x3d, 0x3c, 0x64, 0x63, 0x2a, 0x62, 0x32, 0xbf, 0x7b, 0xc3, - 0xc2, 0x15, 0xe5, 0xac, 0x0f, 0x0f, 0xe2, 0x47, 0x32, 0x72, 0x61, 0xcb, 0x8f, 0xea, 0x0a, 0x18, - 0xd5, 0x88, 0x2b, 0xb7, 0x41, 0xcc, 0x4f, 0xe3, 0x23, 0x8d, 0xf5, 0x77, 0x13, 0xe0, 0x88, 0xfa, - 0xff, 0x05, 0xba, 0x1e, 0xc2, 0x16, 0x17, 0x38, 0x14, 0xde, 0x45, 0xd2, 0x72, 0xca, 0xe0, 0x4c, - 0x99, 0x7b, 0x1f, 0x72, 0x84, 0xfa, 0x73, 0x9e, 0xd1, 0xcb, 0x22, 0x43, 0xa8, 0xef, 0x5c, 0xcb, - 0xf0, 0xca, 0x5b, 0x67, 0x78, 0xf5, 0x3f, 0x63, 0x98, 0x42, 0x6e, 0x4a, 0x70, 0x75, 0x80, 0x83, - 0x21, 0x72, 0x60, 0xa5, 0xc3, 0x7c, 0xcd, 0xeb, 0x0d, 0xf7, 0xbb, 0x85, 0x60, 0x9b, 0xf9, 0x13, - 0x57, 0x85, 0xa3, 0x77, 0x60, 0x75, 0x14, 0x32, 0x76, 0x12, 0x0f, 0x40, 0x24, 0x58, 0x5f, 0x9b, - 0x70, 0xe7, 0x92, 0x98, 0xff, 0xb5, 0xd6, 0x7e, 0x04, 0xeb, 0x23, 0x42, 0xf1, 0x40, 0x4c, 0xae, - 0x68, 0xe9, 0x02, 0x4d, 0xcd, 0xc8, 0xd9, 0xd5, 0x51, 0xc8, 0x93, 0x57, 0xa8, 0x81, 0xfa, 0xcc, - 0xe8, 0xb2, 0xe1, 0x30, 0x10, 0x43, 0x92, 0x34, 0xf3, 0x07, 0x37, 0xd4, 0x6b, 0x47, 0x81, 0xd5, - 0x24, 0xce, 0xdd, 0xea, 0x2c, 0xaa, 0xac, 0x5f, 0x2e, 0x5f, 0x20, 0xba, 0x39, 0xc0, 0xf4, 0xff, - 0x8e, 0xe8, 0x26, 0xe4, 0xa7, 0x97, 0x86, 0x37, 0x99, 0x99, 0xe9, 0xed, 0x29, 0x1e, 0xc3, 0xef, - 0xc9, 0x7b, 0x72, 0xd4, 0xba, 0xce, 0x20, 0x50, 0x96, 0xc2, 0x9a, 0xda, 0xe3, 0xb9, 0x58, 0x6f, - 0xc7, 0x6a, 0xeb, 0xf7, 0x06, 0x6c, 0xd5, 0x92, 0x91, 0xab, 0xaa, 0x3b, 0x31, 0x47, 0x07, 0xf2, - 0x03, 0x59, 0x2b, 0xf5, 0xc7, 0xdf, 0x0d, 0xaf, 0x30, 0xfd, 0xca, 0x70, 0x67, 0x43, 0x51, 0x03, - 0x32, 0x63, 0x3a, 0x8b, 0x65, 0x2a, 0xac, 0xd2, 0xeb, 0xce, 0xac, 0x3b, 0x1f, 0x6e, 0x0d, 0x60, - 0xed, 0x68, 0x24, 0x82, 0x21, 0x41, 0x8f, 0x00, 0x61, 0xee, 0xb1, 0x13, 0xaf, 0x33, 0x60, 0xdd, - 0x97, 0x5e, 0x9f, 0x04, 0xbd, 0xbe, 0x88, 0x3f, 0x1a, 0x72, 0x98, 0x1f, 0x9e, 0xd8, 0x52, 0x7f, - 0xa0, 0xd4, 0xe8, 0x01, 0xc0, 0x59, 0x40, 0x7d, 0x76, 0xe6, 0x0d, 0x08, 0x8d, 0x3f, 0xbf, 0x52, - 0x91, 0xe6, 0x19, 0xa1, 0xe8, 0x9b, 0xb0, 0xd6, 0x09, 0xc4, 0x29, 0xe9, 0xaa, 0x16, 0x6f, 0xba, - 0xb1, 0x64, 0xfd, 0x1c, 0xde, 0xa9, 0x8e, 0xc3, 0x90, 0x50, 0x51, 0x9d, 0xf9, 0xdb, 0xc0, 0x91, - 0x0b, 0xd9, 0xb9, 0x7f, 0x12, 0x9a, 0xa2, 0x47, 0x37, 0x34, 0x6c, 0x16, 0xc5, 0xcd, 0xcc, 0xfe, - 0xc1, 0xe0, 0xd6, 0x0e, 0xac, 0xc7, 0x5b, 0x43, 0x1e, 0x4c, 0x01, 0xa5, 0x24, 0x8c, 0xab, 0x89, - 0x04, 0xfb, 0x0f, 0xe6, 0x9f, 0xcf, 0xb7, 0x8d, 0xaf, 0xce, 0xb7, 0x8d, 0x7f, 0x9c, 0x6f, 0x1b, - 0xbf, 0x79, 0xb5, 0xbd, 0xf4, 0xd5, 0xab, 0xed, 0xa5, 0xbf, 0xbd, 0xda, 0x5e, 0x82, 0x62, 0x97, - 0x0d, 0xaf, 0x65, 0xd4, 0x86, 0x96, 0x94, 0x9b, 0x21, 0x13, 0xac, 0x69, 0xfc, 0xec, 0xb8, 0x17, - 0x88, 0xfe, 0xb8, 0x53, 0xee, 0xb2, 0xe1, 0x6e, 0x97, 0xf1, 0x21, 0xe3, 0xbb, 0x21, 0x19, 0xe0, - 0x09, 0x09, 0x77, 0x4f, 0xf7, 0x92, 0xc7, 0x6e, 0x1f, 0x07, 0x94, 0xef, 0x5e, 0xf7, 0x43, 0xe9, - 0x43, 0x25, 0x6a, 0xe9, 0xb7, 0xe6, 0x72, 0xb3, 0xda, 0xfa, 0xd2, 0xbc, 0xdf, 0xd4, 0xa9, 0x54, - 0x65, 0x2a, 0x6a, 0xe9, 0xf2, 0x71, 0xec, 0xf4, 0x97, 0xa9, 0xf9, 0x85, 0x34, 0xbf, 0x50, 0xe6, - 0x17, 0xda, 0x7c, 0x6e, 0x96, 0xae, 0x33, 0xbf, 0x78, 0xda, 0xb4, 0x9f, 0x13, 0x81, 0xe5, 0xd5, - 0xea, 0x5f, 0xe6, 0x8e, 0x76, 0xdd, 0xdf, 0x97, 0xbe, 0xfb, 0xfb, 0xca, 0x79, 0x7f, 0x5f, 0x7b, - 0x77, 0xd6, 0xd4, 0x0f, 0xaa, 0x1f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x80, 0xfc, 0xaf, 0xcd, - 0x16, 0x13, 0x00, 0x00, + // 1554 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0x4f, 0x3b, 0x76, 0x12, 0x3f, 0x7f, 0xa6, 0x66, 0x01, 0xcf, 0x30, 0x93, 0x78, 0x7b, 0x81, + 0x35, 0x33, 0x83, 0xc3, 0x04, 0xc1, 0x21, 0x7b, 0x58, 0xdc, 0xb6, 0x77, 0xe2, 0xdd, 0xc4, 0xf1, + 0xb6, 0x9d, 0x48, 0xa0, 0x48, 0xad, 0xb2, 0xbb, 0x62, 0x37, 0x63, 0x57, 0x99, 0xae, 0x72, 0xb2, + 0xfe, 0x0b, 0xe0, 0xc8, 0x71, 0xcf, 0x1c, 0x38, 0xac, 0xc4, 0x81, 0x13, 0x27, 0x38, 0x23, 0x4e, + 0xcb, 0x0d, 0x71, 0x42, 0x19, 0x09, 0x24, 0xfe, 0x0a, 0x54, 0xd5, 0x5d, 0xed, 0x8f, 0x7c, 0x4d, + 0x56, 0x23, 0xb4, 0xdc, 0xfa, 0x7d, 0xfd, 0xea, 0xbd, 0xdf, 0xab, 0x57, 0x5d, 0xdd, 0x50, 0x1a, + 0x13, 0x3a, 0x19, 0x75, 0x7d, 0xbc, 0xd3, 0x63, 0x3e, 0xd9, 0xe1, 0x02, 0xbf, 0x22, 0x3b, 0xe7, + 0x2f, 0xf0, 0x70, 0x3c, 0xc0, 0x2f, 0x02, 0xb1, 0x3c, 0xf6, 0x99, 0x60, 0xe8, 0xb1, 0xf6, 0x2c, + 0x4b, 0xcf, 0x72, 0x60, 0xd2, 0x9e, 0x8f, 0x9e, 0x2e, 0xe2, 0xf4, 0xfc, 0xe9, 0x58, 0xb0, 0x19, + 0x50, 0x20, 0x07, 0x48, 0xe6, 0x9f, 0x56, 0x21, 0x79, 0x82, 0x87, 0x9e, 0x8b, 0x05, 0xf3, 0xd1, + 0x21, 0xa4, 0x3d, 0x97, 0x50, 0xe1, 0x89, 0xa9, 0xf3, 0x8a, 0x4c, 0x0b, 0x46, 0xd1, 0x28, 0xa5, + 0x76, 0x9f, 0x96, 0x17, 0x97, 0x0b, 0x01, 0x34, 0x60, 0xb9, 0x11, 0x86, 0x7c, 0x42, 0xa6, 0x76, + 0xca, 0x9b, 0x09, 0xe8, 0x3d, 0xc8, 0xf4, 0x18, 0xe5, 0x84, 0xf2, 0x09, 0x57, 0x78, 0xb1, 0xa2, + 0x51, 0x4a, 0xdb, 0xe9, 0x48, 0x29, 0x9d, 0x10, 0xc4, 0x29, 0x1e, 0x91, 0xc2, 0x6a, 0xd1, 0x28, + 0x25, 0x6d, 0xf5, 0x8c, 0x0a, 0xb0, 0x7e, 0x41, 0xba, 0xdc, 0x13, 0xa4, 0x10, 0x57, 0x6a, 0x2d, + 0xa2, 0x22, 0xa4, 0x5c, 0xc2, 0x7b, 0xbe, 0x37, 0x16, 0x1e, 0xa3, 0x85, 0x84, 0xb2, 0xce, 0xab, + 0x64, 0x2c, 0xa1, 0xb8, 0x3b, 0x24, 0x6e, 0x61, 0xa3, 0x68, 0x94, 0x36, 0x6c, 0x2d, 0xa2, 0x0e, + 0xe4, 0xce, 0x26, 0xd4, 0xf5, 0x68, 0xdf, 0xe1, 0xc2, 0x27, 0x78, 0xc4, 0x0b, 0x6b, 0xc5, 0xd5, + 0x52, 0x6a, 0xf7, 0x59, 0xf9, 0x36, 0x3e, 0xcb, 0x1f, 0x05, 0x41, 0x6d, 0x15, 0x63, 0x67, 0xcf, + 0xe6, 0x45, 0x8e, 0xde, 0x87, 0x1c, 0x27, 0xbf, 0x9c, 0x10, 0xda, 0x23, 0x8e, 0x04, 0x21, 0x7e, + 0x61, 0xbd, 0x68, 0x94, 0x32, 0x76, 0x56, 0xab, 0x9b, 0x4a, 0x8b, 0xda, 0x90, 0xed, 0xb3, 0x73, + 0xe2, 0x53, 0x2c, 0x5d, 0x25, 0x1d, 0x49, 0x45, 0xef, 0xf3, 0x3b, 0xe8, 0x7d, 0x19, 0x05, 0x49, + 0x82, 0x33, 0xfd, 0x79, 0xd1, 0xec, 0x42, 0x26, 0x6a, 0xdf, 0x81, 0xc7, 0x05, 0xfa, 0x14, 0xb2, + 0xe7, 0x5a, 0x21, 0x17, 0xe1, 0x05, 0x43, 0xd5, 0x78, 0x9f, 0x26, 0x66, 0x22, 0x84, 0x4f, 0xc8, + 0x94, 0x9b, 0xbf, 0x8b, 0x41, 0x66, 0x81, 0x03, 0x74, 0x02, 0x20, 0x98, 0x83, 0x5d, 0xd7, 0x27, + 0x9c, 0x87, 0xbb, 0xe4, 0xc7, 0xf7, 0x20, 0xb1, 0xdc, 0x61, 0x95, 0x20, 0x78, 0x7f, 0xc5, 0x4e, + 0x0a, 0x2d, 0xa0, 0x8f, 0x61, 0x4d, 0x30, 0xc7, 0xc5, 0x4c, 0xed, 0x94, 0xd4, 0xee, 0x8b, 0xfb, + 0x61, 0xd6, 0x30, 0xdb, 0x5f, 0xb1, 0x13, 0x42, 0x3e, 0x3c, 0xfa, 0x29, 0x24, 0xa3, 0x55, 0xe4, + 0xa6, 0x98, 0xcf, 0x36, 0x69, 0x6b, 0x11, 0x3d, 0x84, 0x0d, 0x1f, 0x0b, 0xe2, 0x74, 0xc7, 0x5c, + 0x2d, 0x9a, 0xb1, 0xd7, 0xa5, 0x6c, 0x8d, 0xf9, 0x23, 0x13, 0x12, 0x0a, 0xf3, 0x16, 0x1f, 0x2b, + 0x05, 0x49, 0x9f, 0xf4, 0xbc, 0xb1, 0x47, 0xa8, 0x30, 0xff, 0x65, 0xc0, 0x86, 0x8d, 0x05, 0xa9, + 0x61, 0x81, 0xdf, 0xf6, 0x2c, 0x6d, 0x43, 0x8a, 0x8c, 0x59, 0x6f, 0xe0, 0x78, 0xd4, 0x25, 0x9f, + 0xa9, 0x34, 0xe2, 0x36, 0x28, 0x55, 0x43, 0x6a, 0xd0, 0x2e, 0x7c, 0x63, 0xd6, 0x78, 0x9f, 0x5c, + 0x60, 0xdf, 0x75, 0x64, 0x96, 0x6a, 0x82, 0xe2, 0xf6, 0x83, 0xc8, 0x68, 0x2b, 0x9b, 0xcc, 0x13, + 0xfd, 0x04, 0xbe, 0x35, 0x8b, 0x21, 0x9f, 0xf5, 0x06, 0x98, 0xf6, 0x49, 0x10, 0x95, 0x50, 0x51, + 0x33, 0xc8, 0x7a, 0x68, 0x95, 0x71, 0xe6, 0xaf, 0x0c, 0x48, 0x5b, 0x98, 0x93, 0xa8, 0xd8, 0xa5, + 0xec, 0x8c, 0x2b, 0xd9, 0x95, 0x20, 0xdf, 0xc5, 0x9c, 0x2c, 0x24, 0x16, 0xd4, 0x90, 0x95, 0xfa, + 0xb9, 0x9c, 0x9e, 0x03, 0x52, 0x9e, 0x8b, 0xe9, 0xac, 0x2a, 0x5f, 0x85, 0xb1, 0x90, 0xc9, 0xe7, + 0x31, 0xc8, 0x45, 0x03, 0xd0, 0x16, 0x58, 0x4c, 0xf8, 0xdb, 0x66, 0xde, 0x82, 0x04, 0x17, 0x3a, + 0xdf, 0xab, 0xe3, 0xba, 0xb4, 0x27, 0x17, 0x92, 0x21, 0x76, 0x10, 0x8a, 0xde, 0x85, 0xf4, 0x39, + 0x13, 0xf2, 0xe4, 0x19, 0xb3, 0x0b, 0xe2, 0x87, 0xe5, 0xa4, 0x02, 0x5d, 0x4b, 0xaa, 0xd0, 0x11, + 0x64, 0xba, 0x4c, 0x9f, 0x4e, 0xba, 0x6f, 0x57, 0xd3, 0x5e, 0x5a, 0xce, 0x62, 0xe1, 0x08, 0xc8, + 0xc5, 0xd2, 0xdd, 0x39, 0xc9, 0xfc, 0x73, 0x0c, 0xd2, 0xf3, 0x66, 0xf4, 0xa9, 0x2e, 0x44, 0x12, + 0x92, 0xdd, 0xfd, 0xe0, 0xcd, 0x91, 0x17, 0x84, 0x3a, 0x9d, 0x8c, 0x74, 0x5d, 0xcf, 0x21, 0x37, + 0xa1, 0x3a, 0x6d, 0xd5, 0xee, 0xa0, 0xab, 0xfb, 0x2b, 0x76, 0x36, 0x32, 0xd4, 0xa5, 0xfe, 0xd7, + 0x86, 0x61, 0x7e, 0x6e, 0x40, 0x7e, 0x19, 0x09, 0x99, 0xb0, 0x65, 0x1d, 0x35, 0x6b, 0x8d, 0xe6, + 0x4b, 0xa7, 0xdd, 0xa9, 0x74, 0xea, 0x4e, 0xbd, 0x79, 0x7c, 0xe8, 0x1c, 0x37, 0xdb, 0xad, 0x7a, + 0xb5, 0xf1, 0x51, 0xa3, 0x5e, 0xcb, 0xaf, 0xa0, 0x27, 0xf0, 0xf0, 0x1a, 0x1f, 0xa9, 0xaa, 0xd7, + 0xf2, 0x06, 0x2a, 0xc2, 0xe3, 0x6b, 0x21, 0x42, 0x65, 0x3e, 0x86, 0xb6, 0xe1, 0xdb, 0x37, 0x7a, + 0xd4, 0x6b, 0xf9, 0x55, 0x0b, 0x41, 0xde, 0x59, 0xaa, 0xc4, 0xfc, 0x5b, 0x0c, 0xb2, 0x8b, 0xed, + 0x44, 0xc7, 0x8b, 0x14, 0x7e, 0x78, 0x9f, 0xbd, 0xb0, 0x24, 0xce, 0xd1, 0x68, 0xfe, 0xdb, 0x00, + 0x74, 0xd5, 0x8a, 0xbe, 0x03, 0xc5, 0x93, 0xca, 0x41, 0xa3, 0x56, 0xe9, 0x1c, 0xd9, 0x37, 0x93, + 0xf3, 0x2e, 0x3c, 0xb9, 0xd6, 0xab, 0xd1, 0xac, 0x54, 0x3b, 0x8d, 0x93, 0x7a, 0xde, 0x90, 0xe5, + 0x5f, 0xeb, 0x12, 0x3a, 0xc4, 0x6e, 0x74, 0xf8, 0xb8, 0xd2, 0x38, 0x90, 0xfc, 0xa0, 0xf7, 0x60, + 0xfb, 0x5a, 0x87, 0xce, 0xd1, 0xa1, 0xd5, 0xee, 0x1c, 0x35, 0xeb, 0xb5, 0x7c, 0xfc, 0xc6, 0x4c, + 0x6a, 0x8d, 0x76, 0xc5, 0x92, 0x38, 0x09, 0xf3, 0xd2, 0x98, 0x7b, 0x61, 0x35, 0xe8, 0x19, 0x43, + 0x75, 0x48, 0x46, 0x87, 0x4c, 0x38, 0xaa, 0xef, 0xbf, 0x21, 0xad, 0xf6, 0x2c, 0x12, 0xd5, 0x61, + 0x8d, 0xab, 0xf1, 0x0f, 0xc7, 0xf4, 0x07, 0xf7, 0x68, 0xcd, 0x84, 0xdb, 0x61, 0x30, 0xaa, 0x42, + 0x52, 0x1d, 0xf5, 0x2e, 0x16, 0x58, 0x4d, 0x69, 0x6a, 0xf7, 0x7b, 0xb7, 0x23, 0xe9, 0x33, 0xd0, + 0x56, 0xef, 0x08, 0xf9, 0x64, 0x5e, 0xc0, 0x83, 0x08, 0xbf, 0x46, 0xce, 0x3c, 0xea, 0xa9, 0x9b, + 0xc9, 0x5b, 0xaa, 0xf4, 0x21, 0x6c, 0xe0, 0x89, 0x18, 0x38, 0xdc, 0xeb, 0x87, 0x17, 0xaa, 0x75, + 0x29, 0xb7, 0xbd, 0xbe, 0xf9, 0x45, 0x0c, 0x36, 0x6a, 0x64, 0x48, 0xfa, 0x72, 0xaf, 0xfe, 0x0c, + 0xd0, 0xec, 0x70, 0xd7, 0x07, 0xda, 0x57, 0x38, 0x0c, 0x37, 0x23, 0x14, 0xad, 0xbd, 0xfb, 0x65, + 0xd4, 0xd4, 0xe7, 0x02, 0x71, 0x1d, 0x3c, 0x62, 0x13, 0x2a, 0x42, 0x32, 0xbf, 0x7b, 0xc7, 0xc2, + 0x15, 0xe5, 0xac, 0x0f, 0x0f, 0xe2, 0x06, 0x32, 0xb2, 0x61, 0xd3, 0x0d, 0xea, 0xf2, 0x18, 0xd5, + 0x88, 0xf1, 0xfb, 0x20, 0xe6, 0x67, 0xf1, 0x81, 0xc6, 0xfc, 0x63, 0x0c, 0xe0, 0x98, 0xba, 0xff, + 0x03, 0xba, 0x9e, 0xc2, 0x26, 0x17, 0xd8, 0x17, 0xce, 0x55, 0xd2, 0x72, 0xca, 0x50, 0xff, 0xff, + 0x62, 0x8e, 0x42, 0x6e, 0x46, 0x5c, 0x75, 0x88, 0xbd, 0x11, 0xaa, 0x43, 0xbc, 0xcb, 0x5c, 0xcd, + 0xd7, 0x1d, 0xf7, 0xb6, 0xa5, 0x60, 0x8b, 0xb9, 0x53, 0x5b, 0x85, 0xa3, 0x77, 0x20, 0x31, 0xf6, + 0x19, 0x3b, 0x0b, 0x37, 0x76, 0x20, 0xc8, 0x37, 0xd9, 0x83, 0x6b, 0x62, 0xbe, 0x2e, 0x2d, 0xfb, + 0x10, 0xd6, 0xc7, 0x84, 0xe2, 0xa1, 0x98, 0xde, 0xd0, 0xaa, 0xa5, 0xf2, 0x5b, 0x81, 0xb3, 0xad, + 0xa3, 0x90, 0x23, 0xaf, 0x3c, 0x43, 0xf5, 0x59, 0xd0, 0x63, 0xa3, 0x91, 0x27, 0x46, 0x24, 0x6a, + 0xd2, 0x0f, 0xef, 0xa8, 0xc3, 0x0a, 0x02, 0xab, 0x51, 0x9c, 0xbd, 0xd9, 0x5d, 0x56, 0x99, 0xff, + 0xb8, 0x4a, 0x60, 0x6b, 0x88, 0xe9, 0xd7, 0x90, 0xc0, 0xf8, 0x57, 0x22, 0xb0, 0x05, 0xf9, 0xd9, + 0xcb, 0x3b, 0xdc, 0xe3, 0x89, 0xfb, 0xec, 0xf1, 0xd9, 0x2d, 0x26, 0x1c, 0x9b, 0xef, 0xcb, 0xfb, + 0x6a, 0xd0, 0x92, 0xee, 0xd0, 0x53, 0x96, 0xc2, 0x9a, 0xda, 0x93, 0xb9, 0x50, 0x6f, 0x85, 0x6a, + 0xf3, 0xf7, 0x06, 0x6c, 0xd6, 0xa2, 0x11, 0xa9, 0xaa, 0xbb, 0x29, 0x47, 0xfb, 0xf2, 0x43, 0x55, + 0x2b, 0xf5, 0x47, 0xd8, 0x1d, 0xaf, 0x12, 0x7d, 0x74, 0xdb, 0xf3, 0xa1, 0xa8, 0x09, 0x99, 0x09, + 0x9d, 0xc7, 0x8a, 0x29, 0xac, 0xd2, 0x9b, 0xce, 0x98, 0xbd, 0x18, 0x6e, 0x0e, 0x61, 0xed, 0x78, + 0x2c, 0xbc, 0x11, 0x41, 0xcf, 0x00, 0x61, 0xee, 0xb0, 0x33, 0xa7, 0x3b, 0x64, 0xbd, 0x57, 0xce, + 0x80, 0x78, 0xfd, 0x81, 0x08, 0x2f, 0xef, 0x39, 0xcc, 0x8f, 0xce, 0x2c, 0xa9, 0xdf, 0x57, 0x6a, + 0xf4, 0x04, 0xe0, 0xc2, 0xa3, 0x2e, 0xbb, 0x70, 0x86, 0x84, 0x86, 0x9f, 0x41, 0xc9, 0x40, 0x73, + 0x40, 0x28, 0xfa, 0x26, 0xac, 0x75, 0x3d, 0x71, 0x4e, 0x7a, 0x6a, 0x06, 0xd2, 0x76, 0x28, 0x99, + 0xbf, 0x80, 0x77, 0xaa, 0x13, 0xdf, 0x27, 0x54, 0x54, 0xe7, 0xbe, 0xfa, 0x39, 0xb2, 0x21, 0xbb, + 0xf0, 0x6f, 0x40, 0x53, 0xf4, 0xec, 0x8e, 0x86, 0xcd, 0xa3, 0xd8, 0x99, 0xf9, 0x3f, 0x09, 0xdc, + 0xdc, 0x86, 0xf5, 0x70, 0x6b, 0xc8, 0x83, 0xc4, 0xa3, 0x94, 0xf8, 0x61, 0x35, 0x81, 0x60, 0xfd, + 0x21, 0xf6, 0x97, 0xcb, 0x2d, 0xe3, 0xcb, 0xcb, 0x2d, 0xe3, 0x9f, 0x97, 0x5b, 0xc6, 0x6f, 0x5e, + 0x6f, 0xad, 0x7c, 0xf9, 0x7a, 0x6b, 0xe5, 0xef, 0xaf, 0xb7, 0x56, 0xa0, 0xd8, 0x63, 0xa3, 0x5b, + 0x19, 0xb5, 0xa0, 0x2d, 0xe5, 0x96, 0xcf, 0x04, 0x6b, 0x19, 0x3f, 0x3f, 0xe9, 0x7b, 0x62, 0x30, + 0xe9, 0x96, 0x7b, 0x6c, 0xb4, 0xd3, 0x63, 0x7c, 0xc4, 0xf8, 0x8e, 0x4f, 0x86, 0x78, 0x4a, 0xfc, + 0x9d, 0xf3, 0xdd, 0xe8, 0xb1, 0x37, 0xc0, 0x1e, 0xe5, 0x3b, 0xb7, 0xfd, 0xd8, 0xf9, 0x40, 0x89, + 0x5a, 0xfa, 0x6d, 0x6c, 0xb5, 0x55, 0x6d, 0x7f, 0x11, 0x7b, 0xdc, 0xd2, 0xa9, 0x54, 0x65, 0x2a, + 0x6a, 0xe9, 0xf2, 0x49, 0xe8, 0xf4, 0xd7, 0x99, 0xf9, 0x54, 0x9a, 0x4f, 0x95, 0xf9, 0x54, 0x9b, + 0x2f, 0x63, 0xa5, 0xdb, 0xcc, 0xa7, 0x2f, 0x5b, 0xd6, 0x21, 0x11, 0x58, 0x5e, 0x71, 0xfe, 0x13, + 0xdb, 0xd6, 0xae, 0x7b, 0x7b, 0xd2, 0x77, 0x6f, 0x4f, 0x39, 0xef, 0xed, 0x69, 0xef, 0xee, 0x9a, + 0xfa, 0x51, 0xf4, 0xa3, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xba, 0x77, 0x8b, 0xfc, 0x9e, 0x12, + 0x00, 0x00, } func (m *Validator) Marshal() (dAtA []byte, err error) { @@ -2322,7 +2294,7 @@ func (m *Undelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintStake(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x22 } if m.UnbondedAmount != nil { { @@ -2334,12 +2306,7 @@ func (m *Undelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintStake(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x22 - } - if m.EndEpochIndex != 0 { - i = encodeVarintStake(dAtA, i, uint64(m.EndEpochIndex)) - i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } if m.StartEpochIndex != 0 { i = encodeVarintStake(dAtA, i, uint64(m.StartEpochIndex)) @@ -2433,7 +2400,7 @@ func (m *UndelegateClaimBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintStake(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x22 } if m.Penalty != nil { { @@ -2445,12 +2412,7 @@ func (m *UndelegateClaimBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintStake(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x22 - } - if m.EndEpochIndex != 0 { - i = encodeVarintStake(dAtA, i, uint64(m.EndEpochIndex)) - i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } if m.StartEpochIndex != 0 { i = encodeVarintStake(dAtA, i, uint64(m.StartEpochIndex)) @@ -2523,11 +2485,6 @@ func (m *UndelegateClaimPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if m.EndEpochIndex != 0 { - i = encodeVarintStake(dAtA, i, uint64(m.EndEpochIndex)) - i-- - dAtA[i] = 0x18 - } if m.StartEpochIndex != 0 { i = encodeVarintStake(dAtA, i, uint64(m.StartEpochIndex)) i-- @@ -3014,9 +2971,6 @@ func (m *Undelegate) Size() (n int) { if m.StartEpochIndex != 0 { n += 1 + sovStake(uint64(m.StartEpochIndex)) } - if m.EndEpochIndex != 0 { - n += 1 + sovStake(uint64(m.EndEpochIndex)) - } if m.UnbondedAmount != nil { l = m.UnbondedAmount.Size() n += 1 + l + sovStake(uint64(l)) @@ -3058,9 +3012,6 @@ func (m *UndelegateClaimBody) Size() (n int) { if m.StartEpochIndex != 0 { n += 1 + sovStake(uint64(m.StartEpochIndex)) } - if m.EndEpochIndex != 0 { - n += 1 + sovStake(uint64(m.EndEpochIndex)) - } if m.Penalty != nil { l = m.Penalty.Size() n += 1 + l + sovStake(uint64(l)) @@ -3085,9 +3036,6 @@ func (m *UndelegateClaimPlan) Size() (n int) { if m.StartEpochIndex != 0 { n += 1 + sovStake(uint64(m.StartEpochIndex)) } - if m.EndEpochIndex != 0 { - n += 1 + sovStake(uint64(m.EndEpochIndex)) - } if m.Penalty != nil { l = m.Penalty.Size() n += 1 + l + sovStake(uint64(l)) @@ -5000,25 +4948,6 @@ func (m *Undelegate) Unmarshal(dAtA []byte) error { } } case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndEpochIndex", wireType) - } - m.EndEpochIndex = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStake - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndEpochIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UnbondedAmount", wireType) } @@ -5054,7 +4983,7 @@ func (m *Undelegate) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DelegationAmount", wireType) } @@ -5316,25 +5245,6 @@ func (m *UndelegateClaimBody) Unmarshal(dAtA []byte) error { } } case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndEpochIndex", wireType) - } - m.EndEpochIndex = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStake - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndEpochIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Penalty", wireType) } @@ -5370,7 +5280,7 @@ func (m *UndelegateClaimBody) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field BalanceCommitment", wireType) } @@ -5511,25 +5421,6 @@ func (m *UndelegateClaimPlan) Unmarshal(dAtA []byte) error { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndEpochIndex", wireType) - } - m.EndEpochIndex = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStake - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndEpochIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Penalty", wireType) diff --git a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go index 4b501bab7..c7031205e 100644 --- a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go +++ b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go @@ -136,6 +136,50 @@ func (m *Id) GetHash() []byte { return nil } +type EffectHash struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *EffectHash) Reset() { *m = EffectHash{} } +func (m *EffectHash) String() string { return proto.CompactTextString(m) } +func (*EffectHash) ProtoMessage() {} +func (*EffectHash) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{2} +} +func (m *EffectHash) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EffectHash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EffectHash.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EffectHash) XXX_Merge(src proto.Message) { + xxx_messageInfo_EffectHash.Merge(m, src) +} +func (m *EffectHash) XXX_Size() int { + return m.Size() +} +func (m *EffectHash) XXX_DiscardUnknown() { + xxx_messageInfo_EffectHash.DiscardUnknown(m) +} + +var xxx_messageInfo_EffectHash proto.InternalMessageInfo + +func (m *EffectHash) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + // The body of a transaction. type TransactionBody struct { // A list of actions (state changes) performed by this transaction. @@ -160,7 +204,7 @@ func (m *TransactionBody) Reset() { *m = TransactionBody{} } func (m *TransactionBody) String() string { return proto.CompactTextString(m) } func (*TransactionBody) ProtoMessage() {} func (*TransactionBody) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{2} + return fileDescriptor_cd20ea79758052c4, []int{3} } func (m *TransactionBody) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -289,7 +333,7 @@ func (m *Action) Reset() { *m = Action{} } func (m *Action) String() string { return proto.CompactTextString(m) } func (*Action) ProtoMessage() {} func (*Action) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{3} + return fileDescriptor_cd20ea79758052c4, []int{4} } func (m *Action) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -613,13 +657,15 @@ type TransactionPerspective struct { AdviceNotes []*v1alpha1.Note `protobuf:"bytes,3,rep,name=advice_notes,json=adviceNotes,proto3" json:"advice_notes,omitempty"` // Any relevant address views. AddressViews []*v1alpha1.AddressView `protobuf:"bytes,4,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` + // Any relevant denoms for viewed assets. + Denoms []*v1alpha1.Denom `protobuf:"bytes,5,rep,name=denoms,proto3" json:"denoms,omitempty"` } func (m *TransactionPerspective) Reset() { *m = TransactionPerspective{} } func (m *TransactionPerspective) String() string { return proto.CompactTextString(m) } func (*TransactionPerspective) ProtoMessage() {} func (*TransactionPerspective) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{4} + return fileDescriptor_cd20ea79758052c4, []int{5} } func (m *TransactionPerspective) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -676,8 +722,59 @@ func (m *TransactionPerspective) GetAddressViews() []*v1alpha1.AddressView { return nil } +func (m *TransactionPerspective) GetDenoms() []*v1alpha1.Denom { + if m != nil { + return m.Denoms + } + return nil +} + +type PayloadKey struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *PayloadKey) Reset() { *m = PayloadKey{} } +func (m *PayloadKey) String() string { return proto.CompactTextString(m) } +func (*PayloadKey) ProtoMessage() {} +func (*PayloadKey) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{6} +} +func (m *PayloadKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PayloadKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PayloadKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PayloadKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_PayloadKey.Merge(m, src) +} +func (m *PayloadKey) XXX_Size() int { + return m.Size() +} +func (m *PayloadKey) XXX_DiscardUnknown() { + xxx_messageInfo_PayloadKey.DiscardUnknown(m) +} + +var xxx_messageInfo_PayloadKey proto.InternalMessageInfo + +func (m *PayloadKey) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + type PayloadKeyWithCommitment struct { - PayloadKey []byte `protobuf:"bytes,1,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` + PayloadKey *PayloadKey `protobuf:"bytes,1,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` Commitment *v1alpha1.StateCommitment `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` } @@ -685,7 +782,7 @@ func (m *PayloadKeyWithCommitment) Reset() { *m = PayloadKeyWithCommitme func (m *PayloadKeyWithCommitment) String() string { return proto.CompactTextString(m) } func (*PayloadKeyWithCommitment) ProtoMessage() {} func (*PayloadKeyWithCommitment) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{5} + return fileDescriptor_cd20ea79758052c4, []int{7} } func (m *PayloadKeyWithCommitment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -714,7 +811,7 @@ func (m *PayloadKeyWithCommitment) XXX_DiscardUnknown() { var xxx_messageInfo_PayloadKeyWithCommitment proto.InternalMessageInfo -func (m *PayloadKeyWithCommitment) GetPayloadKey() []byte { +func (m *PayloadKeyWithCommitment) GetPayloadKey() *PayloadKey { if m != nil { return m.PayloadKey } @@ -737,7 +834,7 @@ func (m *NullifierWithNote) Reset() { *m = NullifierWithNote{} } func (m *NullifierWithNote) String() string { return proto.CompactTextString(m) } func (*NullifierWithNote) ProtoMessage() {} func (*NullifierWithNote) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{6} + return fileDescriptor_cd20ea79758052c4, []int{8} } func (m *NullifierWithNote) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -780,7 +877,72 @@ func (m *NullifierWithNote) GetNote() *v1alpha1.Note { return nil } +// View of a Penumbra transaction. type TransactionView struct { + // View of the transaction body + BodyView *TransactionBodyView `protobuf:"bytes,1,opt,name=body_view,json=bodyView,proto3" json:"body_view,omitempty"` + // The binding signature is stored separately from the transaction body that it signs. + BindingSig []byte `protobuf:"bytes,2,opt,name=binding_sig,json=bindingSig,proto3" json:"binding_sig,omitempty"` + // The root of some previous state of the state commitment tree, used as an anchor for all + // ZK state transition proofs. + Anchor *v1alpha1.MerkleRoot `protobuf:"bytes,3,opt,name=anchor,proto3" json:"anchor,omitempty"` +} + +func (m *TransactionView) Reset() { *m = TransactionView{} } +func (m *TransactionView) String() string { return proto.CompactTextString(m) } +func (*TransactionView) ProtoMessage() {} +func (*TransactionView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{9} +} +func (m *TransactionView) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionView.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionView) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionView.Merge(m, src) +} +func (m *TransactionView) XXX_Size() int { + return m.Size() +} +func (m *TransactionView) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionView.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionView proto.InternalMessageInfo + +func (m *TransactionView) GetBodyView() *TransactionBodyView { + if m != nil { + return m.BodyView + } + return nil +} + +func (m *TransactionView) GetBindingSig() []byte { + if m != nil { + return m.BindingSig + } + return nil +} + +func (m *TransactionView) GetAnchor() *v1alpha1.MerkleRoot { + if m != nil { + return m.Anchor + } + return nil +} + +type TransactionBodyView struct { // A list views into of actions (state changes) performed by this transaction. ActionViews []*ActionView `protobuf:"bytes,1,rep,name=action_views,json=actionViews,proto3" json:"action_views,omitempty"` // The maximum height that this transaction can be included in the chain. @@ -794,26 +956,24 @@ type TransactionView struct { Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` // A list of clues for use with Fuzzy Message Detection. FmdClues []*v1alpha1.Clue `protobuf:"bytes,5,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` - // Types that are valid to be assigned to XMemo: + // Types that are valid to be assigned to XMemoView: // - // *TransactionView_Memo - XMemo isTransactionView_XMemo `protobuf_oneof:"_memo"` - // Any relevant address views. - AddressViews []*v1alpha1.AddressView `protobuf:"bytes,400,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` + // *TransactionBodyView_MemoView + XMemoView isTransactionBodyView_XMemoView `protobuf_oneof:"_memo_view"` } -func (m *TransactionView) Reset() { *m = TransactionView{} } -func (m *TransactionView) String() string { return proto.CompactTextString(m) } -func (*TransactionView) ProtoMessage() {} -func (*TransactionView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{7} +func (m *TransactionBodyView) Reset() { *m = TransactionBodyView{} } +func (m *TransactionBodyView) String() string { return proto.CompactTextString(m) } +func (*TransactionBodyView) ProtoMessage() {} +func (*TransactionBodyView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{10} } -func (m *TransactionView) XXX_Unmarshal(b []byte) error { +func (m *TransactionBodyView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionBodyView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionView.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionBodyView.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -823,90 +983,83 @@ func (m *TransactionView) XXX_Marshal(b []byte, deterministic bool) ([]byte, err return b[:n], nil } } -func (m *TransactionView) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionView.Merge(m, src) +func (m *TransactionBodyView) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionBodyView.Merge(m, src) } -func (m *TransactionView) XXX_Size() int { +func (m *TransactionBodyView) XXX_Size() int { return m.Size() } -func (m *TransactionView) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionView.DiscardUnknown(m) +func (m *TransactionBodyView) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionBodyView.DiscardUnknown(m) } -var xxx_messageInfo_TransactionView proto.InternalMessageInfo +var xxx_messageInfo_TransactionBodyView proto.InternalMessageInfo -type isTransactionView_XMemo interface { - isTransactionView_XMemo() +type isTransactionBodyView_XMemoView interface { + isTransactionBodyView_XMemoView() MarshalTo([]byte) (int, error) Size() int } -type TransactionView_Memo struct { - Memo []byte `protobuf:"bytes,6,opt,name=memo,proto3,oneof" json:"memo,omitempty"` +type TransactionBodyView_MemoView struct { + MemoView *MemoView `protobuf:"bytes,6,opt,name=memo_view,json=memoView,proto3,oneof" json:"memo_view,omitempty"` } -func (*TransactionView_Memo) isTransactionView_XMemo() {} +func (*TransactionBodyView_MemoView) isTransactionBodyView_XMemoView() {} -func (m *TransactionView) GetXMemo() isTransactionView_XMemo { +func (m *TransactionBodyView) GetXMemoView() isTransactionBodyView_XMemoView { if m != nil { - return m.XMemo + return m.XMemoView } return nil } -func (m *TransactionView) GetActionViews() []*ActionView { +func (m *TransactionBodyView) GetActionViews() []*ActionView { if m != nil { return m.ActionViews } return nil } -func (m *TransactionView) GetExpiryHeight() uint64 { +func (m *TransactionBodyView) GetExpiryHeight() uint64 { if m != nil { return m.ExpiryHeight } return 0 } -func (m *TransactionView) GetChainId() string { +func (m *TransactionBodyView) GetChainId() string { if m != nil { return m.ChainId } return "" } -func (m *TransactionView) GetFee() *v1alpha1.Fee { +func (m *TransactionBodyView) GetFee() *v1alpha1.Fee { if m != nil { return m.Fee } return nil } -func (m *TransactionView) GetFmdClues() []*v1alpha1.Clue { +func (m *TransactionBodyView) GetFmdClues() []*v1alpha1.Clue { if m != nil { return m.FmdClues } return nil } -func (m *TransactionView) GetMemo() []byte { - if x, ok := m.GetXMemo().(*TransactionView_Memo); ok { - return x.Memo - } - return nil -} - -func (m *TransactionView) GetAddressViews() []*v1alpha1.AddressView { - if m != nil { - return m.AddressViews +func (m *TransactionBodyView) GetMemoView() *MemoView { + if x, ok := m.GetXMemoView().(*TransactionBodyView_MemoView); ok { + return x.MemoView } return nil } // XXX_OneofWrappers is for the internal use of the proto package. -func (*TransactionView) XXX_OneofWrappers() []interface{} { +func (*TransactionBodyView) XXX_OneofWrappers() []interface{} { return []interface{}{ - (*TransactionView_Memo)(nil), + (*TransactionBodyView_MemoView)(nil), } } @@ -943,7 +1096,7 @@ func (m *ActionView) Reset() { *m = ActionView{} } func (m *ActionView) String() string { return proto.CompactTextString(m) } func (*ActionView) ProtoMessage() {} func (*ActionView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{8} + return fileDescriptor_cd20ea79758052c4, []int{11} } func (m *ActionView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1269,7 +1422,7 @@ func (m *SpendView) Reset() { *m = SpendView{} } func (m *SpendView) String() string { return proto.CompactTextString(m) } func (*SpendView) ProtoMessage() {} func (*SpendView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{9} + return fileDescriptor_cd20ea79758052c4, []int{12} } func (m *SpendView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1344,15 +1497,15 @@ func (*SpendView) XXX_OneofWrappers() []interface{} { } type SpendView_Visible struct { - Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` - Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` + Note *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` } func (m *SpendView_Visible) Reset() { *m = SpendView_Visible{} } func (m *SpendView_Visible) String() string { return proto.CompactTextString(m) } func (*SpendView_Visible) ProtoMessage() {} func (*SpendView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{9, 0} + return fileDescriptor_cd20ea79758052c4, []int{12, 0} } func (m *SpendView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1388,7 +1541,7 @@ func (m *SpendView_Visible) GetSpend() *Spend { return nil } -func (m *SpendView_Visible) GetNote() *v1alpha1.Note { +func (m *SpendView_Visible) GetNote() *v1alpha1.NoteView { if m != nil { return m.Note } @@ -1403,7 +1556,7 @@ func (m *SpendView_Opaque) Reset() { *m = SpendView_Opaque{} } func (m *SpendView_Opaque) String() string { return proto.CompactTextString(m) } func (*SpendView_Opaque) ProtoMessage() {} func (*SpendView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{9, 1} + return fileDescriptor_cd20ea79758052c4, []int{12, 1} } func (m *SpendView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1451,7 +1604,7 @@ func (m *DelegatorVoteView) Reset() { *m = DelegatorVoteView{} } func (m *DelegatorVoteView) String() string { return proto.CompactTextString(m) } func (*DelegatorVoteView) ProtoMessage() {} func (*DelegatorVoteView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{10} + return fileDescriptor_cd20ea79758052c4, []int{13} } func (m *DelegatorVoteView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1527,14 +1680,14 @@ func (*DelegatorVoteView) XXX_OneofWrappers() []interface{} { type DelegatorVoteView_Visible struct { DelegatorVote *v1alpha14.DelegatorVote `protobuf:"bytes,1,opt,name=delegator_vote,json=delegatorVote,proto3" json:"delegator_vote,omitempty"` - Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + Note *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` } func (m *DelegatorVoteView_Visible) Reset() { *m = DelegatorVoteView_Visible{} } func (m *DelegatorVoteView_Visible) String() string { return proto.CompactTextString(m) } func (*DelegatorVoteView_Visible) ProtoMessage() {} func (*DelegatorVoteView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{10, 0} + return fileDescriptor_cd20ea79758052c4, []int{13, 0} } func (m *DelegatorVoteView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1570,7 +1723,7 @@ func (m *DelegatorVoteView_Visible) GetDelegatorVote() *v1alpha14.DelegatorVote return nil } -func (m *DelegatorVoteView_Visible) GetNote() *v1alpha1.Note { +func (m *DelegatorVoteView_Visible) GetNote() *v1alpha1.NoteView { if m != nil { return m.Note } @@ -1585,7 +1738,7 @@ func (m *DelegatorVoteView_Opaque) Reset() { *m = DelegatorVoteView_Opaq func (m *DelegatorVoteView_Opaque) String() string { return proto.CompactTextString(m) } func (*DelegatorVoteView_Opaque) ProtoMessage() {} func (*DelegatorVoteView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{10, 1} + return fileDescriptor_cd20ea79758052c4, []int{13, 1} } func (m *DelegatorVoteView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1633,7 +1786,7 @@ func (m *OutputView) Reset() { *m = OutputView{} } func (m *OutputView) String() string { return proto.CompactTextString(m) } func (*OutputView) ProtoMessage() {} func (*OutputView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{11} + return fileDescriptor_cd20ea79758052c4, []int{14} } func (m *OutputView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1708,16 +1861,16 @@ func (*OutputView) XXX_OneofWrappers() []interface{} { } type OutputView_Visible struct { - Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` - PayloadKey []byte `protobuf:"bytes,3,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` + Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Note *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + PayloadKey *PayloadKey `protobuf:"bytes,3,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` } func (m *OutputView_Visible) Reset() { *m = OutputView_Visible{} } func (m *OutputView_Visible) String() string { return proto.CompactTextString(m) } func (*OutputView_Visible) ProtoMessage() {} func (*OutputView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{11, 0} + return fileDescriptor_cd20ea79758052c4, []int{14, 0} } func (m *OutputView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1753,14 +1906,14 @@ func (m *OutputView_Visible) GetOutput() *Output { return nil } -func (m *OutputView_Visible) GetNote() *v1alpha1.Note { +func (m *OutputView_Visible) GetNote() *v1alpha1.NoteView { if m != nil { return m.Note } return nil } -func (m *OutputView_Visible) GetPayloadKey() []byte { +func (m *OutputView_Visible) GetPayloadKey() *PayloadKey { if m != nil { return m.PayloadKey } @@ -1775,7 +1928,7 @@ func (m *OutputView_Opaque) Reset() { *m = OutputView_Opaque{} } func (m *OutputView_Opaque) String() string { return proto.CompactTextString(m) } func (*OutputView_Opaque) ProtoMessage() {} func (*OutputView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{11, 1} + return fileDescriptor_cd20ea79758052c4, []int{14, 1} } func (m *OutputView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1825,7 +1978,7 @@ func (m *Spend) Reset() { *m = Spend{} } func (m *Spend) String() string { return proto.CompactTextString(m) } func (*Spend) ProtoMessage() {} func (*Spend) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{12} + return fileDescriptor_cd20ea79758052c4, []int{15} } func (m *Spend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1891,7 +2044,7 @@ func (m *SpendBody) Reset() { *m = SpendBody{} } func (m *SpendBody) String() string { return proto.CompactTextString(m) } func (*SpendBody) ProtoMessage() {} func (*SpendBody) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{13} + return fileDescriptor_cd20ea79758052c4, []int{16} } func (m *SpendBody) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1953,7 +2106,7 @@ func (m *Output) Reset() { *m = Output{} } func (m *Output) String() string { return proto.CompactTextString(m) } func (*Output) ProtoMessage() {} func (*Output) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{14} + return fileDescriptor_cd20ea79758052c4, []int{17} } func (m *Output) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2015,7 +2168,7 @@ func (m *OutputBody) Reset() { *m = OutputBody{} } func (m *OutputBody) String() string { return proto.CompactTextString(m) } func (*OutputBody) ProtoMessage() {} func (*OutputBody) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{15} + return fileDescriptor_cd20ea79758052c4, []int{18} } func (m *OutputBody) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2088,7 +2241,7 @@ func (m *AuthorizationData) Reset() { *m = AuthorizationData{} } func (m *AuthorizationData) String() string { return proto.CompactTextString(m) } func (*AuthorizationData) ProtoMessage() {} func (*AuthorizationData) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{16} + return fileDescriptor_cd20ea79758052c4, []int{19} } func (m *AuthorizationData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2151,7 +2304,7 @@ func (m *WitnessData) Reset() { *m = WitnessData{} } func (m *WitnessData) String() string { return proto.CompactTextString(m) } func (*WitnessData) ProtoMessage() {} func (*WitnessData) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{17} + return fileDescriptor_cd20ea79758052c4, []int{20} } func (m *WitnessData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2208,7 +2361,7 @@ func (m *TransactionPlan) Reset() { *m = TransactionPlan{} } func (m *TransactionPlan) String() string { return proto.CompactTextString(m) } func (*TransactionPlan) ProtoMessage() {} func (*TransactionPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{18} + return fileDescriptor_cd20ea79758052c4, []int{21} } func (m *TransactionPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2314,7 +2467,7 @@ func (m *ActionPlan) Reset() { *m = ActionPlan{} } func (m *ActionPlan) String() string { return proto.CompactTextString(m) } func (*ActionPlan) ProtoMessage() {} func (*ActionPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{19} + return fileDescriptor_cd20ea79758052c4, []int{22} } func (m *ActionPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2630,7 +2783,7 @@ func (m *CluePlan) Reset() { *m = CluePlan{} } func (m *CluePlan) String() string { return proto.CompactTextString(m) } func (*CluePlan) ProtoMessage() {} func (*CluePlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{20} + return fileDescriptor_cd20ea79758052c4, []int{23} } func (m *CluePlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2683,7 +2836,7 @@ func (m *CluePlan) GetPrecisionBits() uint64 { // Describes a plan for forming a `Memo`. type MemoPlan struct { // The plaintext. - Plaintext []byte `protobuf:"bytes,1,opt,name=plaintext,proto3" json:"plaintext,omitempty"` + Plaintext *MemoPlaintext `protobuf:"bytes,1,opt,name=plaintext,proto3" json:"plaintext,omitempty"` // The key to use to encrypt the memo. Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` } @@ -2692,7 +2845,7 @@ func (m *MemoPlan) Reset() { *m = MemoPlan{} } func (m *MemoPlan) String() string { return proto.CompactTextString(m) } func (*MemoPlan) ProtoMessage() {} func (*MemoPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{21} + return fileDescriptor_cd20ea79758052c4, []int{24} } func (m *MemoPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2721,7 +2874,7 @@ func (m *MemoPlan) XXX_DiscardUnknown() { var xxx_messageInfo_MemoPlan proto.InternalMessageInfo -func (m *MemoPlan) GetPlaintext() []byte { +func (m *MemoPlan) GetPlaintext() *MemoPlaintext { if m != nil { return m.Plaintext } @@ -2735,29 +2888,22 @@ func (m *MemoPlan) GetKey() []byte { return nil } -type SpendPlan struct { - // The plaintext note we plan to spend. - Note *v1alpha1.Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` - // The position of the note we plan to spend. - Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` - // The randomizer to use for the spend. - Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` - // The blinding factor to use for the value commitment. - ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` +type MemoCiphertext struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` } -func (m *SpendPlan) Reset() { *m = SpendPlan{} } -func (m *SpendPlan) String() string { return proto.CompactTextString(m) } -func (*SpendPlan) ProtoMessage() {} -func (*SpendPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{22} +func (m *MemoCiphertext) Reset() { *m = MemoCiphertext{} } +func (m *MemoCiphertext) String() string { return proto.CompactTextString(m) } +func (*MemoCiphertext) ProtoMessage() {} +func (*MemoCiphertext) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{25} } -func (m *SpendPlan) XXX_Unmarshal(b []byte) error { +func (m *MemoCiphertext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *SpendPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MemoCiphertext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_SpendPlan.Marshal(b, m, deterministic) + return xxx_messageInfo_MemoCiphertext.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2767,69 +2913,97 @@ func (m *SpendPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *SpendPlan) XXX_Merge(src proto.Message) { - xxx_messageInfo_SpendPlan.Merge(m, src) +func (m *MemoCiphertext) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemoCiphertext.Merge(m, src) } -func (m *SpendPlan) XXX_Size() int { +func (m *MemoCiphertext) XXX_Size() int { return m.Size() } -func (m *SpendPlan) XXX_DiscardUnknown() { - xxx_messageInfo_SpendPlan.DiscardUnknown(m) +func (m *MemoCiphertext) XXX_DiscardUnknown() { + xxx_messageInfo_MemoCiphertext.DiscardUnknown(m) } -var xxx_messageInfo_SpendPlan proto.InternalMessageInfo +var xxx_messageInfo_MemoCiphertext proto.InternalMessageInfo -func (m *SpendPlan) GetNote() *v1alpha1.Note { +func (m *MemoCiphertext) GetInner() []byte { if m != nil { - return m.Note + return m.Inner } return nil } -func (m *SpendPlan) GetPosition() uint64 { - if m != nil { - return m.Position +type MemoPlaintext struct { + Sender *v1alpha1.Address `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` +} + +func (m *MemoPlaintext) Reset() { *m = MemoPlaintext{} } +func (m *MemoPlaintext) String() string { return proto.CompactTextString(m) } +func (*MemoPlaintext) ProtoMessage() {} +func (*MemoPlaintext) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{26} +} +func (m *MemoPlaintext) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MemoPlaintext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MemoPlaintext.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return 0 +} +func (m *MemoPlaintext) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemoPlaintext.Merge(m, src) +} +func (m *MemoPlaintext) XXX_Size() int { + return m.Size() +} +func (m *MemoPlaintext) XXX_DiscardUnknown() { + xxx_messageInfo_MemoPlaintext.DiscardUnknown(m) } -func (m *SpendPlan) GetRandomizer() []byte { +var xxx_messageInfo_MemoPlaintext proto.InternalMessageInfo + +func (m *MemoPlaintext) GetSender() *v1alpha1.Address { if m != nil { - return m.Randomizer + return m.Sender } return nil } -func (m *SpendPlan) GetValueBlinding() []byte { +func (m *MemoPlaintext) GetText() string { if m != nil { - return m.ValueBlinding + return m.Text } - return nil + return "" } -type OutputPlan struct { - // The value to send to this output. - Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - // The destination address to send it to. - DestAddress *v1alpha1.Address `protobuf:"bytes,2,opt,name=dest_address,json=destAddress,proto3" json:"dest_address,omitempty"` - // The rseed to use for the new note. - Rseed []byte `protobuf:"bytes,3,opt,name=rseed,proto3" json:"rseed,omitempty"` - // The blinding factor to use for the value commitment. - ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` +type MemoView struct { + // Types that are valid to be assigned to MemoView: + // + // *MemoView_Visible_ + // *MemoView_Opaque_ + MemoView isMemoView_MemoView `protobuf_oneof:"memo_view"` } -func (m *OutputPlan) Reset() { *m = OutputPlan{} } -func (m *OutputPlan) String() string { return proto.CompactTextString(m) } -func (*OutputPlan) ProtoMessage() {} -func (*OutputPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{23} +func (m *MemoView) Reset() { *m = MemoView{} } +func (m *MemoView) String() string { return proto.CompactTextString(m) } +func (*MemoView) ProtoMessage() {} +func (*MemoView) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{27} } -func (m *OutputPlan) XXX_Unmarshal(b []byte) error { +func (m *MemoView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *OutputPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MemoView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_OutputPlan.Marshal(b, m, deterministic) + return xxx_messageInfo_MemoView.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2839,22 +3013,279 @@ func (m *OutputPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *OutputPlan) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutputPlan.Merge(m, src) +func (m *MemoView) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemoView.Merge(m, src) } -func (m *OutputPlan) XXX_Size() int { +func (m *MemoView) XXX_Size() int { return m.Size() } -func (m *OutputPlan) XXX_DiscardUnknown() { - xxx_messageInfo_OutputPlan.DiscardUnknown(m) +func (m *MemoView) XXX_DiscardUnknown() { + xxx_messageInfo_MemoView.DiscardUnknown(m) } -var xxx_messageInfo_OutputPlan proto.InternalMessageInfo +var xxx_messageInfo_MemoView proto.InternalMessageInfo -func (m *OutputPlan) GetValue() *v1alpha1.Value { - if m != nil { - return m.Value - } +type isMemoView_MemoView interface { + isMemoView_MemoView() + MarshalTo([]byte) (int, error) + Size() int +} + +type MemoView_Visible_ struct { + Visible *MemoView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof" json:"visible,omitempty"` +} +type MemoView_Opaque_ struct { + Opaque *MemoView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof" json:"opaque,omitempty"` +} + +func (*MemoView_Visible_) isMemoView_MemoView() {} +func (*MemoView_Opaque_) isMemoView_MemoView() {} + +func (m *MemoView) GetMemoView() isMemoView_MemoView { + if m != nil { + return m.MemoView + } + return nil +} + +func (m *MemoView) GetVisible() *MemoView_Visible { + if x, ok := m.GetMemoView().(*MemoView_Visible_); ok { + return x.Visible + } + return nil +} + +func (m *MemoView) GetOpaque() *MemoView_Opaque { + if x, ok := m.GetMemoView().(*MemoView_Opaque_); ok { + return x.Opaque + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*MemoView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*MemoView_Visible_)(nil), + (*MemoView_Opaque_)(nil), + } +} + +type MemoView_Visible struct { + Ciphertext *MemoCiphertext `protobuf:"bytes,1,opt,name=ciphertext,proto3" json:"ciphertext,omitempty"` + Plaintext *MemoPlaintext `protobuf:"bytes,2,opt,name=plaintext,proto3" json:"plaintext,omitempty"` +} + +func (m *MemoView_Visible) Reset() { *m = MemoView_Visible{} } +func (m *MemoView_Visible) String() string { return proto.CompactTextString(m) } +func (*MemoView_Visible) ProtoMessage() {} +func (*MemoView_Visible) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{27, 0} +} +func (m *MemoView_Visible) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MemoView_Visible) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MemoView_Visible.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MemoView_Visible) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemoView_Visible.Merge(m, src) +} +func (m *MemoView_Visible) XXX_Size() int { + return m.Size() +} +func (m *MemoView_Visible) XXX_DiscardUnknown() { + xxx_messageInfo_MemoView_Visible.DiscardUnknown(m) +} + +var xxx_messageInfo_MemoView_Visible proto.InternalMessageInfo + +func (m *MemoView_Visible) GetCiphertext() *MemoCiphertext { + if m != nil { + return m.Ciphertext + } + return nil +} + +func (m *MemoView_Visible) GetPlaintext() *MemoPlaintext { + if m != nil { + return m.Plaintext + } + return nil +} + +type MemoView_Opaque struct { + Ciphertext *MemoCiphertext `protobuf:"bytes,1,opt,name=ciphertext,proto3" json:"ciphertext,omitempty"` +} + +func (m *MemoView_Opaque) Reset() { *m = MemoView_Opaque{} } +func (m *MemoView_Opaque) String() string { return proto.CompactTextString(m) } +func (*MemoView_Opaque) ProtoMessage() {} +func (*MemoView_Opaque) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{27, 1} +} +func (m *MemoView_Opaque) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MemoView_Opaque) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MemoView_Opaque.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MemoView_Opaque) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemoView_Opaque.Merge(m, src) +} +func (m *MemoView_Opaque) XXX_Size() int { + return m.Size() +} +func (m *MemoView_Opaque) XXX_DiscardUnknown() { + xxx_messageInfo_MemoView_Opaque.DiscardUnknown(m) +} + +var xxx_messageInfo_MemoView_Opaque proto.InternalMessageInfo + +func (m *MemoView_Opaque) GetCiphertext() *MemoCiphertext { + if m != nil { + return m.Ciphertext + } + return nil +} + +type SpendPlan struct { + // The plaintext note we plan to spend. + Note *v1alpha1.Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` + // The position of the note we plan to spend. + Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` + // The randomizer to use for the spend. + Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` + // The blinding factor to use for the value commitment. + ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` +} + +func (m *SpendPlan) Reset() { *m = SpendPlan{} } +func (m *SpendPlan) String() string { return proto.CompactTextString(m) } +func (*SpendPlan) ProtoMessage() {} +func (*SpendPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{28} +} +func (m *SpendPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpendPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpendPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpendPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendPlan.Merge(m, src) +} +func (m *SpendPlan) XXX_Size() int { + return m.Size() +} +func (m *SpendPlan) XXX_DiscardUnknown() { + xxx_messageInfo_SpendPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendPlan proto.InternalMessageInfo + +func (m *SpendPlan) GetNote() *v1alpha1.Note { + if m != nil { + return m.Note + } + return nil +} + +func (m *SpendPlan) GetPosition() uint64 { + if m != nil { + return m.Position + } + return 0 +} + +func (m *SpendPlan) GetRandomizer() []byte { + if m != nil { + return m.Randomizer + } + return nil +} + +func (m *SpendPlan) GetValueBlinding() []byte { + if m != nil { + return m.ValueBlinding + } + return nil +} + +type OutputPlan struct { + // The value to send to this output. + Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The destination address to send it to. + DestAddress *v1alpha1.Address `protobuf:"bytes,2,opt,name=dest_address,json=destAddress,proto3" json:"dest_address,omitempty"` + // The rseed to use for the new note. + Rseed []byte `protobuf:"bytes,3,opt,name=rseed,proto3" json:"rseed,omitempty"` + // The blinding factor to use for the value commitment. + ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` +} + +func (m *OutputPlan) Reset() { *m = OutputPlan{} } +func (m *OutputPlan) String() string { return proto.CompactTextString(m) } +func (*OutputPlan) ProtoMessage() {} +func (*OutputPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{29} +} +func (m *OutputPlan) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutputPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutputPlan.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutputPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutputPlan.Merge(m, src) +} +func (m *OutputPlan) XXX_Size() int { + return m.Size() +} +func (m *OutputPlan) XXX_DiscardUnknown() { + xxx_messageInfo_OutputPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_OutputPlan proto.InternalMessageInfo + +func (m *OutputPlan) GetValue() *v1alpha1.Value { + if m != nil { + return m.Value + } return nil } @@ -2882,12 +3313,15 @@ func (m *OutputPlan) GetValueBlinding() []byte { func init() { proto.RegisterType((*Transaction)(nil), "penumbra.core.transaction.v1alpha1.Transaction") proto.RegisterType((*Id)(nil), "penumbra.core.transaction.v1alpha1.Id") + proto.RegisterType((*EffectHash)(nil), "penumbra.core.transaction.v1alpha1.EffectHash") proto.RegisterType((*TransactionBody)(nil), "penumbra.core.transaction.v1alpha1.TransactionBody") proto.RegisterType((*Action)(nil), "penumbra.core.transaction.v1alpha1.Action") proto.RegisterType((*TransactionPerspective)(nil), "penumbra.core.transaction.v1alpha1.TransactionPerspective") + proto.RegisterType((*PayloadKey)(nil), "penumbra.core.transaction.v1alpha1.PayloadKey") proto.RegisterType((*PayloadKeyWithCommitment)(nil), "penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment") proto.RegisterType((*NullifierWithNote)(nil), "penumbra.core.transaction.v1alpha1.NullifierWithNote") proto.RegisterType((*TransactionView)(nil), "penumbra.core.transaction.v1alpha1.TransactionView") + proto.RegisterType((*TransactionBodyView)(nil), "penumbra.core.transaction.v1alpha1.TransactionBodyView") proto.RegisterType((*ActionView)(nil), "penumbra.core.transaction.v1alpha1.ActionView") proto.RegisterType((*SpendView)(nil), "penumbra.core.transaction.v1alpha1.SpendView") proto.RegisterType((*SpendView_Visible)(nil), "penumbra.core.transaction.v1alpha1.SpendView.Visible") @@ -2908,6 +3342,11 @@ func init() { proto.RegisterType((*ActionPlan)(nil), "penumbra.core.transaction.v1alpha1.ActionPlan") proto.RegisterType((*CluePlan)(nil), "penumbra.core.transaction.v1alpha1.CluePlan") proto.RegisterType((*MemoPlan)(nil), "penumbra.core.transaction.v1alpha1.MemoPlan") + proto.RegisterType((*MemoCiphertext)(nil), "penumbra.core.transaction.v1alpha1.MemoCiphertext") + proto.RegisterType((*MemoPlaintext)(nil), "penumbra.core.transaction.v1alpha1.MemoPlaintext") + proto.RegisterType((*MemoView)(nil), "penumbra.core.transaction.v1alpha1.MemoView") + proto.RegisterType((*MemoView_Visible)(nil), "penumbra.core.transaction.v1alpha1.MemoView.Visible") + proto.RegisterType((*MemoView_Opaque)(nil), "penumbra.core.transaction.v1alpha1.MemoView.Opaque") proto.RegisterType((*SpendPlan)(nil), "penumbra.core.transaction.v1alpha1.SpendPlan") proto.RegisterType((*OutputPlan)(nil), "penumbra.core.transaction.v1alpha1.OutputPlan") } @@ -2917,158 +3356,171 @@ func init() { } var fileDescriptor_cd20ea79758052c4 = []byte{ - // 2406 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7, - 0x15, 0xe7, 0x92, 0xfa, 0x7c, 0xa4, 0xbe, 0xc6, 0x1f, 0xd9, 0x0a, 0x85, 0x62, 0x6c, 0x6c, 0x43, - 0xb6, 0x13, 0xca, 0x96, 0xed, 0x04, 0x50, 0x53, 0x34, 0xa2, 0x14, 0x87, 0xb2, 0x23, 0x9b, 0x59, - 0xa7, 0x32, 0xec, 0xba, 0xd9, 0x0e, 0x77, 0x47, 0xe2, 0x42, 0xcb, 0x9d, 0xed, 0xee, 0x92, 0xb2, - 0x72, 0xed, 0x25, 0x45, 0xd1, 0xc2, 0x87, 0x1e, 0x8a, 0xb6, 0xa7, 0x5e, 0x02, 0xf4, 0x2f, 0x28, - 0x0a, 0xf4, 0x1e, 0xf4, 0x50, 0x18, 0xe8, 0xa5, 0x45, 0x2f, 0xad, 0x7d, 0x6a, 0x6f, 0x05, 0xfa, - 0x07, 0x14, 0x33, 0x3b, 0xfb, 0x49, 0xca, 0x5c, 0xd2, 0x0a, 0x82, 0xc4, 0x3e, 0x69, 0xe7, 0xe9, - 0xbd, 0xdf, 0xcc, 0xbc, 0xf7, 0x66, 0xe6, 0x37, 0x6f, 0x08, 0xd7, 0x1c, 0x62, 0x77, 0xda, 0x4d, - 0x17, 0xaf, 0xe8, 0xd4, 0x25, 0x2b, 0xbe, 0x8b, 0x6d, 0x0f, 0xeb, 0xbe, 0x49, 0xed, 0x95, 0xee, - 0x15, 0x6c, 0x39, 0x2d, 0x7c, 0x25, 0x29, 0xac, 0x3a, 0x2e, 0xf5, 0x29, 0x52, 0x42, 0xab, 0x2a, - 0xb3, 0xaa, 0x26, 0x15, 0x42, 0xab, 0xc5, 0x8b, 0x69, 0x64, 0xdd, 0x3d, 0x74, 0x7c, 0x1a, 0x83, - 0x06, 0xed, 0x00, 0x6f, 0x71, 0x39, 0xad, 0xeb, 0xf9, 0x78, 0x9f, 0xc4, 0xaa, 0xbc, 0x29, 0x34, - 0xcf, 0xa6, 0x35, 0xcd, 0xa6, 0x1e, 0xeb, 0x99, 0x4d, 0xbd, 0xbf, 0x96, 0x41, 0x1e, 0xc5, 0x5a, - 0x06, 0x79, 0x24, 0xb4, 0x56, 0xd3, 0x5a, 0x7b, 0xb4, 0x4b, 0x5c, 0x1b, 0xdb, 0x7a, 0xa2, 0xeb, - 0x58, 0x16, 0xd8, 0x28, 0x7f, 0x94, 0xa0, 0xfc, 0x71, 0x3c, 0x5d, 0xf4, 0x01, 0x8c, 0x35, 0xa9, - 0x71, 0x28, 0x4b, 0x67, 0xa4, 0xe5, 0xf2, 0xea, 0xd5, 0xea, 0x60, 0xc7, 0x54, 0x13, 0xe6, 0x35, - 0x6a, 0x1c, 0xaa, 0x1c, 0x00, 0xbd, 0x0e, 0xe5, 0xa6, 0x69, 0x1b, 0xa6, 0xbd, 0xa7, 0x79, 0xe6, - 0x9e, 0x5c, 0x3c, 0x23, 0x2d, 0x57, 0x54, 0x10, 0xa2, 0xbb, 0xe6, 0x1e, 0x5a, 0x87, 0x09, 0x6c, - 0xeb, 0x2d, 0xea, 0xca, 0x25, 0xde, 0xd7, 0x85, 0x4c, 0x5f, 0xc2, 0xa1, 0x51, 0x37, 0xdb, 0xc4, - 0xdd, 0xb7, 0x88, 0x4a, 0xa9, 0xaf, 0x0a, 0x43, 0x45, 0x86, 0xe2, 0x96, 0x81, 0x10, 0x8c, 0xb5, - 0xb0, 0xd7, 0xe2, 0x43, 0xae, 0xa8, 0xfc, 0x5b, 0xf9, 0x4b, 0x11, 0xe6, 0x32, 0xe3, 0x42, 0x9b, - 0x30, 0x19, 0xb4, 0x3c, 0x59, 0x3a, 0x53, 0x5a, 0x2e, 0xaf, 0x5e, 0xcc, 0x33, 0xbb, 0x75, 0xde, - 0x56, 0x43, 0x53, 0xf4, 0x06, 0xcc, 0x90, 0x47, 0x8e, 0xe9, 0x1e, 0x6a, 0x2d, 0x62, 0xee, 0xb5, - 0x7c, 0x3e, 0xb3, 0x31, 0xb5, 0x12, 0x08, 0xeb, 0x5c, 0x86, 0xbe, 0x05, 0x53, 0x7a, 0x0b, 0x9b, - 0xb6, 0x66, 0x1a, 0x7c, 0x76, 0xd3, 0xea, 0x24, 0x6f, 0x6f, 0x19, 0xe8, 0x1a, 0x94, 0x76, 0x09, - 0x91, 0xc7, 0xf8, 0x9c, 0x95, 0x01, 0x73, 0xbe, 0x41, 0x88, 0xca, 0xd4, 0xd1, 0x7b, 0x30, 0xbd, - 0xdb, 0x36, 0x34, 0xdd, 0xea, 0x10, 0x4f, 0x1e, 0xe7, 0xa3, 0x7f, 0x63, 0x80, 0xed, 0x86, 0xd5, - 0x21, 0xea, 0xd4, 0x6e, 0xdb, 0x60, 0x1f, 0x1e, 0xba, 0x08, 0xb3, 0xc4, 0xe6, 0x3a, 0xc4, 0xd0, - 0xda, 0xa4, 0x4d, 0xe5, 0x09, 0xe6, 0xaf, 0x7a, 0x41, 0x9d, 0x89, 0xe4, 0xdb, 0xa4, 0x4d, 0x3f, - 0x93, 0xa4, 0xda, 0x02, 0xcc, 0x69, 0x69, 0x65, 0xe5, 0xaf, 0xb3, 0x30, 0x11, 0xb8, 0x02, 0xad, - 0xc3, 0xb8, 0xe7, 0x10, 0xdb, 0x10, 0x39, 0x72, 0x21, 0x8f, 0x17, 0xef, 0x32, 0x83, 0x7a, 0x41, - 0x0d, 0x2c, 0xd1, 0x26, 0x4c, 0xd0, 0x8e, 0xef, 0x74, 0x02, 0xef, 0xe5, 0x8c, 0xc4, 0x1d, 0x6e, - 0x51, 0x2f, 0xa8, 0xc2, 0x16, 0xbd, 0x0d, 0x63, 0xde, 0x01, 0x76, 0x44, 0xfe, 0x9c, 0xc9, 0x60, - 0xb0, 0x75, 0x11, 0xf7, 0x7f, 0x80, 0x9d, 0x7a, 0x41, 0xe5, 0xfa, 0xe8, 0x06, 0x00, 0xfb, 0xab, - 0xe9, 0x16, 0x36, 0xdb, 0x22, 0x12, 0xe7, 0x06, 0x59, 0x6f, 0x30, 0xe5, 0x7a, 0x41, 0x9d, 0xf6, - 0xc2, 0x06, 0xda, 0x85, 0x93, 0x5d, 0x6c, 0x99, 0x06, 0xf6, 0xa9, 0xab, 0x19, 0x64, 0xd7, 0xb4, - 0x4d, 0x36, 0x62, 0x79, 0x9e, 0x23, 0x5e, 0xc9, 0x20, 0x06, 0xab, 0x3e, 0xc2, 0xdc, 0x09, 0x2d, - 0x37, 0x23, 0xc3, 0x7a, 0x41, 0x3d, 0xd1, 0xed, 0x15, 0xb3, 0xf1, 0x9a, 0x4d, 0x5d, 0x0b, 0xfc, - 0x21, 0x2f, 0xf4, 0x1d, 0x2f, 0xdb, 0x2b, 0x22, 0xec, 0xad, 0xa6, 0x1e, 0xc4, 0x8a, 0x8d, 0xd7, - 0x0c, 0x1b, 0xe8, 0x21, 0xcc, 0x39, 0x2e, 0x75, 0xa8, 0x87, 0x2d, 0xcd, 0xeb, 0x34, 0xdb, 0xa6, - 0x2f, 0xa3, 0xbe, 0x43, 0x4d, 0xec, 0x12, 0x11, 0x66, 0x43, 0x58, 0xde, 0xe5, 0x86, 0xf5, 0x82, - 0x3a, 0xeb, 0xa4, 0x24, 0xa8, 0x09, 0x0b, 0x11, 0xfa, 0x81, 0xe9, 0xb7, 0x0c, 0x17, 0x1f, 0xc8, - 0x27, 0xfa, 0x6e, 0x23, 0xcf, 0xc3, 0xbf, 0x27, 0x4c, 0xeb, 0x05, 0x75, 0xde, 0xc9, 0xc8, 0xd0, - 0x7d, 0x98, 0x8d, 0x3d, 0xde, 0xa5, 0x3e, 0x91, 0x4f, 0xf2, 0x0e, 0x2e, 0xe7, 0xe8, 0x20, 0x72, - 0xf8, 0x0e, 0xf5, 0x09, 0x4b, 0xfb, 0x6e, 0x52, 0xc0, 0xa0, 0x0d, 0x62, 0x91, 0xbd, 0x18, 0xfa, - 0x54, 0x6e, 0xe8, 0xcd, 0xd0, 0x30, 0x84, 0x36, 0x92, 0x02, 0x44, 0xe1, 0x74, 0xe4, 0x19, 0x83, - 0x38, 0xd4, 0x33, 0x7d, 0x91, 0x7b, 0xa7, 0x79, 0x17, 0xef, 0x0c, 0xe1, 0x9e, 0xcd, 0xc0, 0x3e, - 0xcc, 0xc6, 0x93, 0x4e, 0x1f, 0x39, 0xba, 0x03, 0x33, 0xbc, 0x65, 0x52, 0x5b, 0xa3, 0x0e, 0xb1, - 0xe5, 0x25, 0xde, 0xcf, 0xf2, 0xf3, 0x72, 0xbc, 0x21, 0x0c, 0xee, 0x38, 0x84, 0xa5, 0x4d, 0xc5, - 0x49, 0xb4, 0x91, 0x0a, 0xb3, 0x11, 0xa0, 0x6e, 0x51, 0x8f, 0xc8, 0xaf, 0xf7, 0x5d, 0xfb, 0x7d, - 0x11, 0x37, 0x98, 0x01, 0xf3, 0x8a, 0x93, 0x14, 0xa0, 0x1f, 0xc0, 0x42, 0x84, 0x19, 0xe5, 0xcb, - 0x19, 0x0e, 0xfb, 0x66, 0x1e, 0xd8, 0x54, 0xa2, 0x64, 0x64, 0x88, 0xc0, 0xa9, 0x08, 0xdc, 0x25, - 0x07, 0xd8, 0x35, 0x84, 0xc7, 0x15, 0xde, 0xc1, 0x4a, 0x9e, 0x0e, 0x54, 0x6e, 0x17, 0x7a, 0xfa, - 0x84, 0xd3, 0x2b, 0x46, 0x9b, 0x30, 0x25, 0x42, 0x4d, 0xe4, 0x65, 0x8e, 0x7c, 0xfe, 0xf9, 0xab, - 0x5e, 0x64, 0x0a, 0x73, 0x47, 0x64, 0x89, 0x6e, 0x02, 0x74, 0xec, 0x08, 0xe7, 0x42, 0xdf, 0x58, - 0x65, 0x70, 0xbe, 0x1f, 0xe9, 0xd7, 0x0b, 0x6a, 0xc2, 0x1a, 0x3d, 0x80, 0xf9, 0xb8, 0x25, 0xe6, - 0x7c, 0x91, 0x23, 0xbe, 0x95, 0x17, 0x31, 0x9c, 0xf1, 0x5c, 0x27, 0x2d, 0x42, 0x37, 0x61, 0xda, - 0xc0, 0x54, 0x0b, 0x36, 0xff, 0x55, 0x0e, 0x7a, 0x29, 0xcf, 0xea, 0xc0, 0x34, 0xdc, 0xfe, 0xa7, - 0x0c, 0xf1, 0x8d, 0xb6, 0x01, 0x18, 0x96, 0x38, 0x05, 0xae, 0xf6, 0x0d, 0xfb, 0x11, 0x60, 0xd1, - 0x39, 0xc0, 0x46, 0x13, 0x34, 0x50, 0x03, 0xca, 0x0c, 0x4e, 0xac, 0x2e, 0xf9, 0x5a, 0xdf, 0x19, - 0x1f, 0x81, 0x27, 0x96, 0x0e, 0x73, 0xa4, 0x11, 0xb5, 0xd0, 0x7d, 0x98, 0x37, 0x75, 0x6f, 0xf5, - 0x72, 0x94, 0x9b, 0xd8, 0x92, 0xbf, 0x90, 0xfa, 0x4e, 0x3a, 0xbd, 0xf7, 0x32, 0xa3, 0x7b, 0x91, - 0x0d, 0xf3, 0xa3, 0x99, 0x16, 0xd5, 0xa6, 0x60, 0x22, 0xd8, 0xcb, 0x95, 0xff, 0x15, 0xe1, 0x74, - 0x82, 0xa6, 0x34, 0x88, 0xeb, 0x39, 0x44, 0xf7, 0xcd, 0x2e, 0x41, 0x1a, 0x54, 0x1c, 0x7c, 0x68, - 0x51, 0x6c, 0x68, 0xfb, 0xe4, 0x30, 0xa4, 0x2c, 0xef, 0xe6, 0x39, 0x28, 0x1b, 0x81, 0xdd, 0x2d, - 0x72, 0xc8, 0x3a, 0xdd, 0xa0, 0xed, 0xb6, 0xe9, 0xb7, 0x89, 0xed, 0xab, 0x65, 0x27, 0xfa, 0x8f, - 0x87, 0x7e, 0x04, 0xf3, 0x3c, 0x92, 0x9a, 0xdd, 0xb1, 0x2c, 0x73, 0xd7, 0x24, 0xae, 0x27, 0x17, - 0x79, 0x27, 0xd7, 0xf3, 0x74, 0x72, 0x3b, 0xb4, 0x62, 0x7d, 0xdc, 0xa6, 0x3e, 0x51, 0xe7, 0x38, - 0x5c, 0x24, 0xf7, 0xd0, 0x0d, 0xa8, 0x60, 0xa3, 0x6b, 0xea, 0x44, 0xb3, 0xa9, 0x4f, 0x3c, 0xb9, - 0x94, 0x8b, 0xb7, 0x70, 0xac, 0x72, 0x60, 0xc8, 0xbe, 0x3d, 0xb6, 0x9d, 0x61, 0xc3, 0x70, 0x89, - 0xe7, 0x69, 0x5d, 0x93, 0x1c, 0x78, 0xf2, 0x58, 0x5f, 0xfa, 0x96, 0x05, 0x5a, 0x0f, 0x6c, 0x76, - 0x4c, 0x72, 0xa0, 0x56, 0x70, 0xdc, 0xf0, 0x94, 0x9f, 0x49, 0x20, 0x1f, 0xe5, 0x24, 0x46, 0x5c, - 0x13, 0x8e, 0x17, 0xac, 0x12, 0x62, 0xcf, 0xa1, 0xdb, 0x00, 0x7a, 0xa4, 0x2e, 0x08, 0x4c, 0x75, - 0xc0, 0x58, 0xee, 0xfa, 0x6c, 0x15, 0xc5, 0x91, 0x48, 0x20, 0x28, 0xbf, 0x94, 0x60, 0xa1, 0xc7, - 0x9b, 0xe8, 0x06, 0x4c, 0x47, 0x81, 0x11, 0x4c, 0x6b, 0x79, 0x90, 0xe7, 0x42, 0x7d, 0x35, 0x36, - 0x45, 0xef, 0xc0, 0x18, 0xf3, 0xbe, 0x18, 0x67, 0x2e, 0xe7, 0x73, 0x03, 0xe5, 0x71, 0x29, 0x45, - 0xa1, 0x99, 0xe7, 0xd0, 0x47, 0x50, 0x09, 0x5a, 0x22, 0x10, 0x41, 0x52, 0x56, 0xf3, 0xf3, 0x68, - 0x1e, 0x8c, 0x72, 0x8c, 0xf8, 0xf5, 0xe5, 0xd3, 0xaf, 0xc1, 0x58, 0x8a, 0x45, 0xf3, 0xd6, 0x67, - 0x92, 0x84, 0x1a, 0xd9, 0x6c, 0x7d, 0x5c, 0x7a, 0xb1, 0x74, 0xad, 0x4d, 0xc2, 0x78, 0x40, 0xc2, - 0xff, 0x3b, 0x0b, 0x10, 0xfb, 0x11, 0xbd, 0x9f, 0x26, 0xe2, 0x6f, 0xe5, 0x26, 0xe2, 0xcc, 0x3a, - 0x26, 0xe3, 0xf5, 0x0c, 0x19, 0xaf, 0xe6, 0x27, 0xe3, 0x02, 0x28, 0x24, 0xe4, 0x6b, 0x29, 0x42, - 0x7e, 0x76, 0x10, 0xa5, 0x16, 0xd6, 0x01, 0x29, 0xbf, 0xd9, 0x87, 0x94, 0x5f, 0xc8, 0x45, 0xca, - 0x05, 0xcc, 0x2b, 0x62, 0xfe, 0xcd, 0x24, 0xe6, 0x9f, 0x1c, 0x41, 0xcc, 0x73, 0x9d, 0x52, 0x29, - 0x66, 0x2e, 0x12, 0xe5, 0x15, 0x3b, 0x7f, 0x09, 0xd9, 0xf9, 0x85, 0x63, 0x62, 0xe7, 0x17, 0x5f, - 0x88, 0x9d, 0xbf, 0x54, 0x0c, 0xba, 0xdf, 0x55, 0xe4, 0xd2, 0x31, 0x5d, 0x45, 0xbe, 0x44, 0x76, - 0x3e, 0x03, 0xe5, 0x04, 0xc7, 0x51, 0x7e, 0x5e, 0x82, 0xe9, 0xe8, 0xd0, 0x44, 0x1f, 0xc1, 0x64, - 0xd7, 0xf4, 0xcc, 0xa6, 0x45, 0xc4, 0xa1, 0x7b, 0x7d, 0xa8, 0x43, 0xb7, 0xba, 0x13, 0x18, 0xd7, - 0x0b, 0x6a, 0x88, 0x83, 0x6e, 0xc3, 0x04, 0x75, 0xf0, 0x8f, 0x3b, 0x21, 0x45, 0xbb, 0x36, 0x1c, - 0xe2, 0x1d, 0x6e, 0xcb, 0x0f, 0x61, 0xfe, 0xb5, 0xf8, 0x13, 0x09, 0x26, 0x45, 0x37, 0xe8, 0x7b, - 0xa3, 0x96, 0xea, 0x42, 0x6e, 0x30, 0x2a, 0x7b, 0x5c, 0xdc, 0x82, 0x89, 0x60, 0x64, 0x2f, 0x3c, - 0x86, 0x5a, 0x05, 0x20, 0xb8, 0xa8, 0xf0, 0x78, 0xfc, 0xbd, 0x04, 0x0b, 0x3d, 0xbb, 0x3a, 0xba, - 0x9f, 0x8d, 0xcb, 0x77, 0x47, 0x3a, 0x1d, 0xfa, 0xc5, 0x67, 0x27, 0x13, 0x9f, 0x77, 0x47, 0x43, - 0xee, 0x89, 0xd3, 0x6f, 0x12, 0x71, 0xba, 0xd7, 0x73, 0xc6, 0x49, 0xa3, 0x15, 0x9f, 0xb2, 0x87, - 0xdb, 0xc8, 0xf1, 0xc3, 0x51, 0xfc, 0xbe, 0xac, 0xb1, 0xd5, 0xe6, 0xb3, 0xc0, 0xca, 0x1f, 0x4a, - 0x00, 0x31, 0xb1, 0x44, 0x6a, 0x36, 0xa8, 0x6f, 0x0f, 0xc7, 0x4c, 0xfb, 0x45, 0xf3, 0x4e, 0x26, - 0x9a, 0xd7, 0x87, 0x84, 0xec, 0x09, 0xe3, 0xe7, 0x89, 0x30, 0xd6, 0x22, 0x26, 0x2d, 0x0d, 0x5b, - 0xd6, 0x8e, 0x38, 0xf4, 0xa8, 0x11, 0xcb, 0xde, 0x5b, 0x4b, 0xd9, 0x7b, 0xeb, 0xe2, 0x87, 0x51, - 0x48, 0x8f, 0x61, 0x9c, 0x6c, 0x9b, 0x0c, 0xbe, 0x82, 0x65, 0xf9, 0x0f, 0x09, 0xc6, 0x83, 0x73, - 0x69, 0x3d, 0xf5, 0x82, 0x94, 0xff, 0x52, 0x92, 0x78, 0x3b, 0xfa, 0x10, 0xa6, 0x70, 0xc7, 0x6f, - 0x45, 0x0f, 0x47, 0xbd, 0x44, 0xb8, 0xe7, 0x7e, 0xcd, 0x10, 0xd6, 0x3b, 0x7e, 0xeb, 0xae, 0xb9, - 0x67, 0x63, 0xbf, 0xe3, 0x12, 0x75, 0x12, 0x07, 0x4d, 0xb4, 0x0e, 0xe3, 0x8e, 0x4b, 0xe9, 0xae, - 0xb8, 0x96, 0x5c, 0x1a, 0x00, 0xf5, 0xe0, 0x16, 0x07, 0x6b, 0x30, 0x13, 0x35, 0xb0, 0x54, 0x7e, - 0x2d, 0x89, 0x43, 0x80, 0x3f, 0x24, 0x69, 0x80, 0x9a, 0xd8, 0x62, 0x99, 0xae, 0x25, 0x0a, 0x01, - 0xfd, 0x57, 0x45, 0x16, 0xbd, 0x16, 0x18, 0x26, 0x4a, 0x01, 0x0b, 0xcd, 0xac, 0x08, 0x7d, 0x3b, - 0x79, 0xf7, 0x0f, 0x02, 0x99, 0xb8, 0xd1, 0xcf, 0x42, 0xd1, 0xdd, 0xe7, 0x37, 0xa4, 0x8a, 0x5a, - 0x74, 0xf7, 0x95, 0xc7, 0x12, 0x4c, 0x88, 0x43, 0xbc, 0x96, 0xf2, 0xfd, 0x10, 0x17, 0xb9, 0x84, - 0xf3, 0x6b, 0xa1, 0xbb, 0x8a, 0x7d, 0x29, 0x45, 0xaf, 0xbb, 0x02, 0x84, 0x94, 0xbf, 0x7e, 0x51, - 0x0c, 0x17, 0x32, 0x77, 0xd8, 0x36, 0x54, 0x58, 0x8a, 0x6a, 0x22, 0x19, 0x8f, 0xc8, 0xba, 0x7e, - 0xb9, 0x2d, 0xaa, 0x34, 0x6a, 0xd9, 0x8e, 0x1b, 0x47, 0xf8, 0xbf, 0x78, 0x7c, 0xfe, 0x5f, 0x86, - 0xf9, 0x03, 0x17, 0x3b, 0x8e, 0x78, 0xfc, 0x4a, 0xac, 0xa7, 0x59, 0x21, 0xdf, 0x26, 0x6d, 0x7a, - 0x8b, 0x1c, 0xa2, 0xf3, 0x30, 0x47, 0xbb, 0xfb, 0x5a, 0xa8, 0xcd, 0x14, 0x83, 0xc0, 0xcc, 0xd0, - 0xee, 0xfe, 0xbd, 0x40, 0x7a, 0x8b, 0x1c, 0x2a, 0xbf, 0x2a, 0xc2, 0x02, 0x4b, 0x4f, 0xea, 0x9a, - 0x9f, 0x62, 0x16, 0x80, 0x4d, 0xec, 0x63, 0x74, 0x13, 0xca, 0x64, 0x77, 0x97, 0xe8, 0xbe, 0x16, - 0x3d, 0x60, 0x0e, 0x7e, 0x07, 0x7d, 0x9f, 0x5b, 0xd4, 0xb1, 0xd7, 0x52, 0x81, 0x44, 0xdf, 0x48, - 0x85, 0x72, 0x70, 0x4a, 0xb2, 0xb4, 0x0f, 0x2b, 0x79, 0x23, 0x2c, 0x9b, 0xe0, 0xac, 0x65, 0x32, - 0x0f, 0xe9, 0x70, 0x32, 0xbd, 0x43, 0x0b, 0xf0, 0xd2, 0xa8, 0xe0, 0x28, 0x75, 0x02, 0xf0, 0x4e, - 0x94, 0x3f, 0x49, 0x50, 0xbe, 0x67, 0xfa, 0x36, 0xf1, 0x3c, 0xee, 0x94, 0xf8, 0x5d, 0x58, 0x1a, - 0xf1, 0x5d, 0x18, 0xed, 0xc3, 0x6b, 0x9e, 0xcf, 0x49, 0x67, 0x14, 0x53, 0x8d, 0x27, 0x66, 0xe8, - 0x97, 0xab, 0xc3, 0x95, 0xeb, 0x82, 0xdc, 0x3e, 0xe5, 0xf5, 0x91, 0x7a, 0xca, 0xbf, 0xd3, 0x4f, - 0xcd, 0x0d, 0x0b, 0xdb, 0xa8, 0x9e, 0x7d, 0x6a, 0x1e, 0xa2, 0x44, 0xc6, 0x00, 0xbe, 0xea, 0xe7, - 0xe6, 0x5b, 0x00, 0xba, 0xd5, 0x21, 0x9a, 0x63, 0x61, 0x3b, 0xac, 0x8f, 0xbd, 0x99, 0x67, 0x0a, - 0x1b, 0x56, 0x87, 0xf0, 0x09, 0x4c, 0xeb, 0xe2, 0xcb, 0x43, 0x5b, 0x30, 0xcd, 0x57, 0x11, 0x03, - 0xe3, 0xe5, 0xb2, 0x9c, 0x58, 0x6c, 0x8d, 0x71, 0xac, 0xa9, 0xb6, 0xf8, 0x52, 0x7e, 0x1b, 0x15, - 0xc0, 0xb8, 0x9b, 0x47, 0x2e, 0x80, 0x31, 0xeb, 0x63, 0x29, 0x80, 0x09, 0xa0, 0x11, 0x0b, 0x60, - 0xc2, 0xfa, 0x45, 0x0b, 0x60, 0x02, 0xe6, 0x55, 0x01, 0xec, 0x9b, 0x59, 0x00, 0xfb, 0xe1, 0x11, - 0x05, 0xb0, 0x6b, 0xc3, 0x12, 0x70, 0x91, 0x27, 0xaf, 0xea, 0x5f, 0x39, 0xea, 0x5f, 0xda, 0xd1, - 0xf5, 0xaf, 0xcb, 0xc3, 0xd4, 0xbf, 0x84, 0xcf, 0x7b, 0x6b, 0x60, 0xe6, 0xf3, 0x6b, 0x60, 0x57, - 0x87, 0xac, 0x81, 0x89, 0x7e, 0xbe, 0x26, 0xaf, 0xd4, 0x9f, 0x1c, 0xf9, 0x4a, 0x7d, 0x65, 0xa8, - 0xd2, 0x90, 0x98, 0xf5, 0x4b, 0xfd, 0x52, 0x9d, 0x78, 0x4e, 0xfe, 0xa9, 0x04, 0x53, 0xe1, 0x09, - 0x8c, 0xde, 0x83, 0x49, 0xf1, 0x8a, 0x24, 0x8e, 0xc7, 0xf3, 0xf9, 0x1e, 0xa0, 0xd4, 0xd0, 0x0c, - 0x9d, 0x84, 0x71, 0xd7, 0x23, 0xc4, 0x10, 0x3f, 0xde, 0x0b, 0x1a, 0xe8, 0x1c, 0xcc, 0x3a, 0x2e, - 0xd1, 0x4d, 0x8f, 0x65, 0x6e, 0xd3, 0xf4, 0x3d, 0x7e, 0xda, 0x8d, 0xa9, 0x33, 0x91, 0xb4, 0x66, - 0xfa, 0x9e, 0xb2, 0x06, 0x53, 0xe1, 0x01, 0xce, 0xee, 0x33, 0x8e, 0x85, 0x4d, 0xdb, 0x27, 0x8f, - 0x7c, 0xf1, 0xa0, 0x1a, 0x0b, 0xd0, 0x3c, 0x94, 0x18, 0x6f, 0x0e, 0x3a, 0x61, 0x9f, 0xca, 0xe7, - 0xe1, 0x75, 0x8b, 0x5b, 0x87, 0x37, 0x62, 0x69, 0xd8, 0x1b, 0xf1, 0x22, 0x4c, 0x85, 0xcb, 0x41, - 0xd0, 0xa6, 0xa8, 0x8d, 0x96, 0x00, 0x5c, 0x6c, 0x1b, 0xb4, 0x6d, 0x7e, 0x1a, 0xdd, 0xb1, 0x12, - 0x12, 0x36, 0xcb, 0x2e, 0x66, 0x14, 0xa8, 0x69, 0x05, 0x3f, 0x59, 0x0c, 0x79, 0x3d, 0x97, 0xd6, - 0x84, 0x50, 0x79, 0x22, 0x85, 0x17, 0x1d, 0x3e, 0xd4, 0x35, 0x18, 0xe7, 0xff, 0x17, 0x63, 0x3d, - 0x3b, 0x60, 0xac, 0x3b, 0x4c, 0x57, 0x0d, 0x4c, 0xd0, 0x16, 0x54, 0x0c, 0xe2, 0xf9, 0x5a, 0x18, - 0xb4, 0xe2, 0x50, 0x41, 0x2b, 0x33, 0xdb, 0xf5, 0x6c, 0xe0, 0x4a, 0x99, 0xc0, 0xe5, 0x98, 0x52, - 0xed, 0x5f, 0xc5, 0x2f, 0x9e, 0x2e, 0x49, 0x4f, 0x9e, 0x2e, 0x49, 0xff, 0x7c, 0xba, 0x24, 0x3d, - 0x7e, 0xb6, 0x54, 0x78, 0xf2, 0x6c, 0xa9, 0xf0, 0xb7, 0x67, 0x4b, 0x05, 0x38, 0xaf, 0xd3, 0x76, - 0x0e, 0x6e, 0x54, 0x9b, 0x4f, 0xf2, 0x61, 0x97, 0xfa, 0xb4, 0x21, 0x3d, 0x68, 0xee, 0x99, 0x7e, - 0xab, 0xd3, 0xac, 0xea, 0xb4, 0xbd, 0xa2, 0x53, 0xaf, 0x4d, 0xbd, 0x15, 0x97, 0x58, 0xf8, 0x90, - 0xb8, 0x2b, 0xdd, 0xd5, 0xe8, 0x93, 0xd3, 0x56, 0x6f, 0x65, 0xf0, 0x8f, 0x78, 0xbf, 0x93, 0x10, - 0x86, 0xb2, 0xdf, 0x15, 0x4b, 0x8d, 0x8d, 0x8f, 0x7f, 0x5f, 0x54, 0x1a, 0xe1, 0x10, 0x37, 0xd8, - 0x10, 0x13, 0x83, 0xa9, 0xee, 0x08, 0xd5, 0x3f, 0xc7, 0x4a, 0x0f, 0x99, 0xd2, 0xc3, 0x84, 0xd2, - 0xc3, 0x50, 0xe9, 0x69, 0xb1, 0x3a, 0x58, 0xe9, 0xe1, 0x07, 0x8d, 0xda, 0x36, 0xf1, 0xb1, 0x81, - 0x7d, 0xfc, 0x9f, 0xe2, 0xb9, 0xd0, 0x60, 0x6d, 0x8d, 0x59, 0xac, 0xad, 0x25, 0x4c, 0xd6, 0xd6, - 0x42, 0x9b, 0xe6, 0x04, 0xff, 0xf1, 0xed, 0xd5, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x15, - 0x12, 0x01, 0xae, 0x2c, 0x00, 0x00, + // 2618 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x4f, 0x6f, 0x1c, 0x49, + 0x15, 0x9f, 0x9e, 0xb1, 0xc7, 0xf6, 0x9b, 0xf1, 0xbf, 0x8a, 0x37, 0x0c, 0x16, 0xf2, 0x46, 0xbd, + 0x49, 0x70, 0x12, 0x76, 0x9c, 0xd8, 0xce, 0x46, 0xf2, 0x06, 0x58, 0x8f, 0xbd, 0xd9, 0x71, 0xb2, + 0x8e, 0x67, 0x3b, 0xc1, 0x51, 0x82, 0xd9, 0xa6, 0xa6, 0xbb, 0xec, 0x69, 0xb9, 0xa7, 0xbb, 0xe9, + 0xee, 0x19, 0xc7, 0xfb, 0x05, 0x80, 0x0b, 0x5a, 0x24, 0x0e, 0x08, 0x21, 0x21, 0x71, 0x41, 0xe2, + 0xc0, 0x81, 0x23, 0x88, 0x33, 0x2b, 0x90, 0x50, 0x24, 0x2e, 0x48, 0x2b, 0x24, 0x48, 0x4e, 0x20, + 0x2e, 0x7c, 0x01, 0x84, 0xaa, 0xba, 0xfa, 0xef, 0xb4, 0x33, 0x3d, 0xb6, 0x03, 0xda, 0x4d, 0x4e, + 0x53, 0xf5, 0xe6, 0xbd, 0x5f, 0x55, 0xbd, 0xf7, 0xaa, 0xea, 0xbd, 0x57, 0x0d, 0xcb, 0x16, 0x31, + 0x3a, 0xed, 0xa6, 0x8d, 0x17, 0x14, 0xd3, 0x26, 0x0b, 0xae, 0x8d, 0x0d, 0x07, 0x2b, 0xae, 0x66, + 0x1a, 0x0b, 0xdd, 0x6b, 0x58, 0xb7, 0x5a, 0xf8, 0x5a, 0x94, 0x58, 0xb5, 0x6c, 0xd3, 0x35, 0x91, + 0xe8, 0x4b, 0x55, 0xa9, 0x54, 0x35, 0xca, 0xe0, 0x4b, 0xcd, 0x5e, 0x8e, 0x23, 0x2b, 0xf6, 0xa1, + 0xe5, 0x9a, 0x21, 0xa8, 0xd7, 0xf7, 0xf0, 0x66, 0xe7, 0xe3, 0xbc, 0x8e, 0x8b, 0xf7, 0x49, 0xc8, + 0xca, 0xba, 0x9c, 0xf3, 0x7c, 0x9c, 0x53, 0x6b, 0x2a, 0x21, 0x9f, 0xd6, 0x54, 0xd2, 0xb9, 0x54, + 0xf2, 0x38, 0xe4, 0x52, 0xc9, 0x63, 0xce, 0xb5, 0x18, 0xe7, 0xda, 0x33, 0xbb, 0xc4, 0x36, 0xb0, + 0xa1, 0x44, 0x86, 0x0e, 0x69, 0x9e, 0x8c, 0xf8, 0x1b, 0x01, 0x4a, 0xf7, 0xc3, 0xe5, 0xa2, 0xf7, + 0x60, 0xa8, 0x69, 0xaa, 0x87, 0x15, 0xe1, 0x9c, 0x30, 0x5f, 0x5a, 0x5c, 0xaa, 0xf6, 0x57, 0x4c, + 0x35, 0x22, 0x5e, 0x33, 0xd5, 0x43, 0x89, 0x01, 0xa0, 0xd7, 0xa1, 0xd4, 0xd4, 0x0c, 0x55, 0x33, + 0xf6, 0x64, 0x47, 0xdb, 0xab, 0xe4, 0xcf, 0x09, 0xf3, 0x65, 0x09, 0x38, 0xe9, 0x9e, 0xb6, 0x87, + 0x56, 0xa1, 0x88, 0x0d, 0xa5, 0x65, 0xda, 0x95, 0x02, 0x1b, 0xeb, 0x52, 0x62, 0x2c, 0xae, 0xd0, + 0x60, 0x98, 0x4d, 0x62, 0xef, 0xeb, 0x44, 0x32, 0x4d, 0x57, 0xe2, 0x82, 0x62, 0x05, 0xf2, 0x1b, + 0x2a, 0x42, 0x30, 0xd4, 0xc2, 0x4e, 0x8b, 0x4d, 0xb9, 0x2c, 0xb1, 0xb6, 0x28, 0x02, 0xbc, 0xbb, + 0xbb, 0x4b, 0x14, 0xb7, 0x8e, 0x9d, 0x16, 0x9a, 0x81, 0x61, 0xcd, 0x30, 0x88, 0xcd, 0x59, 0xbc, + 0x8e, 0xf8, 0xa7, 0x3c, 0x4c, 0x26, 0xe6, 0x8e, 0xd6, 0x61, 0xc4, 0xeb, 0x39, 0x15, 0xe1, 0x5c, + 0x61, 0xbe, 0xb4, 0x78, 0x39, 0x8b, 0x06, 0x56, 0x59, 0x5f, 0xf2, 0x45, 0xd1, 0x1b, 0x30, 0x4e, + 0x1e, 0x5b, 0x9a, 0x7d, 0x28, 0xb7, 0x88, 0xb6, 0xd7, 0x72, 0xd9, 0xea, 0x87, 0xa4, 0xb2, 0x47, + 0xac, 0x33, 0x1a, 0xfa, 0x22, 0x8c, 0x2a, 0x2d, 0xac, 0x19, 0xb2, 0xa6, 0x32, 0x0d, 0x8c, 0x49, + 0x23, 0xac, 0xbf, 0xa1, 0xa2, 0x65, 0x28, 0xec, 0x12, 0x52, 0x19, 0x62, 0x7a, 0x11, 0xfb, 0xe8, + 0xe5, 0x16, 0x21, 0x12, 0x65, 0x47, 0xef, 0xc0, 0xd8, 0x6e, 0x5b, 0x95, 0x15, 0xbd, 0x43, 0x9c, + 0xca, 0x30, 0x9b, 0xfd, 0x1b, 0x7d, 0x64, 0xd7, 0xf4, 0x0e, 0x91, 0x46, 0x77, 0xdb, 0x2a, 0x6d, + 0x38, 0xe8, 0x32, 0x4c, 0x10, 0x83, 0xf1, 0x10, 0x55, 0x6e, 0x93, 0xb6, 0x59, 0x29, 0x52, 0x85, + 0xd5, 0x73, 0xd2, 0x78, 0x40, 0xdf, 0x24, 0x6d, 0xf3, 0x7b, 0x82, 0x50, 0x9b, 0x86, 0x49, 0x39, + 0xce, 0x2c, 0xfe, 0x79, 0x02, 0x8a, 0x9e, 0x2a, 0xd0, 0x2a, 0x0c, 0x3b, 0x16, 0x31, 0x54, 0xee, + 0x47, 0x97, 0xb2, 0x68, 0xf1, 0x1e, 0x15, 0xa8, 0xe7, 0x24, 0x4f, 0x12, 0xad, 0x43, 0xd1, 0xec, + 0xb8, 0x56, 0xc7, 0xd3, 0x5e, 0x46, 0x4b, 0x6c, 0x31, 0x89, 0x7a, 0x4e, 0xe2, 0xb2, 0xe8, 0x2d, + 0x18, 0x72, 0x0e, 0xb0, 0xc5, 0x7d, 0xec, 0x5c, 0x02, 0x83, 0xee, 0x9d, 0x70, 0xfc, 0x03, 0x6c, + 0xd5, 0x73, 0x12, 0xe3, 0x47, 0xb7, 0x00, 0xe8, 0xaf, 0xac, 0xe8, 0x58, 0x6b, 0x73, 0x4b, 0x5c, + 0xe8, 0x27, 0xbd, 0x46, 0x99, 0xeb, 0x39, 0x69, 0xcc, 0xf1, 0x3b, 0x68, 0x17, 0x66, 0xba, 0x58, + 0xd7, 0x54, 0xec, 0x9a, 0xb6, 0xac, 0x92, 0x5d, 0xcd, 0xd0, 0xe8, 0x8c, 0x2b, 0x53, 0x0c, 0xf1, + 0x5a, 0x02, 0xd1, 0x3b, 0x19, 0x02, 0xcc, 0x6d, 0x5f, 0x72, 0x3d, 0x10, 0xac, 0xe7, 0xa4, 0x33, + 0xdd, 0x5e, 0x32, 0x9d, 0xaf, 0xd6, 0x54, 0x64, 0x4f, 0x1f, 0x95, 0xe9, 0xd4, 0xf9, 0xd2, 0xf3, + 0x24, 0xc0, 0xde, 0x68, 0x2a, 0x9e, 0xad, 0xe8, 0x7c, 0x35, 0xbf, 0x83, 0x76, 0x60, 0xd2, 0xb2, + 0x4d, 0xcb, 0x74, 0xb0, 0x2e, 0x3b, 0x9d, 0x66, 0x5b, 0x73, 0x2b, 0x28, 0x75, 0xaa, 0x91, 0x93, + 0x24, 0xc0, 0x6c, 0x70, 0xc9, 0x7b, 0x4c, 0xb0, 0x9e, 0x93, 0x26, 0xac, 0x18, 0x05, 0x35, 0x61, + 0x3a, 0x40, 0x3f, 0xd0, 0xdc, 0x96, 0x6a, 0xe3, 0x83, 0xca, 0x99, 0xd4, 0xa3, 0xe6, 0x79, 0xf8, + 0x0f, 0xb8, 0x68, 0x3d, 0x27, 0x4d, 0x59, 0x09, 0x1a, 0x7a, 0x08, 0x13, 0xa1, 0xc6, 0xbb, 0xa6, + 0x4b, 0x2a, 0x33, 0x6c, 0x80, 0xab, 0x19, 0x06, 0x08, 0x14, 0xbe, 0x6d, 0xba, 0x84, 0xba, 0x7d, + 0x37, 0x4a, 0xa0, 0xd0, 0x2a, 0xd1, 0xc9, 0x5e, 0x08, 0xfd, 0x5a, 0x66, 0xe8, 0x75, 0x5f, 0xd0, + 0x87, 0x56, 0xa3, 0x04, 0x64, 0xc2, 0xd9, 0x40, 0x33, 0x2a, 0xb1, 0x4c, 0x47, 0x73, 0xb9, 0xef, + 0x9d, 0x65, 0x43, 0xdc, 0x18, 0x40, 0x3d, 0xeb, 0x9e, 0xbc, 0xef, 0x8d, 0x33, 0x56, 0x0a, 0x1d, + 0x6d, 0xc1, 0x38, 0xeb, 0x69, 0xa6, 0x21, 0x9b, 0x16, 0x31, 0x2a, 0x73, 0x6c, 0x9c, 0xf9, 0xe7, + 0xf9, 0x78, 0x83, 0x0b, 0x6c, 0x59, 0x84, 0xba, 0x4d, 0xd9, 0x8a, 0xf4, 0x91, 0x04, 0x13, 0x01, + 0xa0, 0xa2, 0x9b, 0x0e, 0xa9, 0xbc, 0x9e, 0xba, 0xf7, 0x53, 0x11, 0xd7, 0xa8, 0x00, 0xd5, 0x8a, + 0x15, 0x25, 0xa0, 0x6f, 0xc2, 0x74, 0x80, 0x19, 0xf8, 0xcb, 0x39, 0x06, 0xfb, 0x95, 0x2c, 0xb0, + 0x31, 0x47, 0x49, 0xd0, 0x10, 0x81, 0xd7, 0x02, 0x70, 0x9b, 0x1c, 0x60, 0x5b, 0xe5, 0x1a, 0x17, + 0xd9, 0x00, 0x0b, 0x59, 0x06, 0x90, 0x98, 0x9c, 0xaf, 0xe9, 0x33, 0x56, 0x2f, 0x19, 0xad, 0xc3, + 0x28, 0x37, 0x35, 0xa9, 0xcc, 0x33, 0xe4, 0x8b, 0xcf, 0xdf, 0xf5, 0xdc, 0x53, 0xa8, 0x3a, 0x02, + 0x49, 0x74, 0x1b, 0xa0, 0x63, 0x04, 0x38, 0x97, 0x52, 0x6d, 0x95, 0xc0, 0xf9, 0x46, 0xc0, 0x5f, + 0xcf, 0x49, 0x11, 0x69, 0xf4, 0x08, 0xa6, 0xc2, 0x1e, 0x5f, 0xf3, 0x65, 0x86, 0xf8, 0x66, 0x56, + 0x44, 0x7f, 0xc5, 0x93, 0x9d, 0x38, 0x09, 0xdd, 0x86, 0x31, 0x15, 0x9b, 0xb2, 0x77, 0xf8, 0x2f, + 0x32, 0xd0, 0x2b, 0x59, 0x76, 0x07, 0x36, 0xfd, 0xe3, 0x7f, 0x54, 0xe5, 0x6d, 0xb4, 0x09, 0x40, + 0xb1, 0xf8, 0x2d, 0xb0, 0x94, 0x6a, 0xf6, 0x23, 0xc0, 0x82, 0x7b, 0x80, 0xce, 0xc6, 0xeb, 0xa0, + 0x06, 0x94, 0x28, 0x1c, 0xdf, 0x5d, 0x95, 0xe5, 0xd4, 0x15, 0x1f, 0x81, 0xc7, 0xb7, 0x0e, 0x55, + 0xa4, 0x1a, 0xf4, 0xd0, 0x43, 0x98, 0xd2, 0x14, 0x67, 0xf1, 0x6a, 0xe0, 0x9b, 0x58, 0xaf, 0x7c, + 0x22, 0xa4, 0x2e, 0x3a, 0x7e, 0xf6, 0x52, 0xa1, 0x07, 0x81, 0x0c, 0xd5, 0xa3, 0x16, 0x27, 0xd5, + 0x46, 0xa1, 0xe8, 0x9d, 0xe5, 0xe2, 0xaf, 0x0b, 0x70, 0x36, 0x12, 0xa6, 0x34, 0x88, 0xed, 0x58, + 0x44, 0x71, 0xb5, 0x2e, 0x41, 0x32, 0x94, 0x2d, 0x7c, 0xa8, 0x9b, 0x58, 0x95, 0xf7, 0xc9, 0xa1, + 0x1f, 0xb2, 0xdc, 0xcc, 0x72, 0x51, 0x36, 0x3c, 0xb9, 0x3b, 0xe4, 0x90, 0x0e, 0xba, 0x66, 0xb6, + 0xdb, 0x9a, 0xdb, 0x26, 0x86, 0x2b, 0x95, 0xac, 0xe0, 0x1f, 0x07, 0x7d, 0x1b, 0xa6, 0x98, 0x25, + 0x65, 0xa3, 0xa3, 0xeb, 0xda, 0xae, 0x46, 0x6c, 0xa7, 0x92, 0x67, 0x83, 0x5c, 0xcf, 0x32, 0xc8, + 0x5d, 0x5f, 0x8a, 0x8e, 0x71, 0xd7, 0x74, 0x89, 0x34, 0xc9, 0xe0, 0x02, 0xba, 0x83, 0x6e, 0x41, + 0x19, 0xab, 0x5d, 0x4d, 0x21, 0xb2, 0x61, 0xba, 0xc4, 0xa9, 0x14, 0x32, 0xc5, 0x2d, 0x0c, 0xab, + 0xe4, 0x09, 0xd2, 0xb6, 0x43, 0x8f, 0x33, 0xac, 0xaa, 0x36, 0x71, 0x1c, 0xb9, 0xab, 0x91, 0x03, + 0xa7, 0x32, 0x94, 0x1a, 0xbe, 0x25, 0x81, 0x56, 0x3d, 0x99, 0x6d, 0x8d, 0x1c, 0x48, 0x65, 0x1c, + 0x76, 0x1c, 0x74, 0x13, 0x8a, 0x2a, 0x31, 0xcc, 0xb6, 0x1f, 0x4a, 0x9d, 0xef, 0x83, 0xb4, 0x4e, + 0x99, 0x25, 0x2e, 0x43, 0xe3, 0xcf, 0x50, 0xc3, 0x47, 0xc4, 0x9f, 0xbf, 0x15, 0xa0, 0x72, 0x94, + 0x19, 0xd0, 0x16, 0x94, 0x22, 0xa6, 0xe5, 0x61, 0x54, 0x75, 0x30, 0xcb, 0x4a, 0x10, 0xda, 0x12, + 0xdd, 0x05, 0x50, 0x02, 0x78, 0x1e, 0x52, 0x55, 0xfb, 0xac, 0xe9, 0x9e, 0x4b, 0xf7, 0x75, 0xe8, + 0x1b, 0x11, 0x04, 0xf1, 0x47, 0x02, 0x4c, 0xf7, 0xd8, 0x17, 0xdd, 0x82, 0xb1, 0xc0, 0x55, 0xf8, + 0xa4, 0xe7, 0xfb, 0xd9, 0xd2, 0xe7, 0x97, 0x42, 0x51, 0x74, 0x03, 0x86, 0xa8, 0x3f, 0xf0, 0x79, + 0x66, 0x72, 0x07, 0x26, 0x20, 0xfe, 0x51, 0x88, 0x05, 0xf5, 0xd4, 0x96, 0xe8, 0x3e, 0x8c, 0xd1, + 0x94, 0x84, 0x39, 0x06, 0x9f, 0xd4, 0x8d, 0x63, 0x24, 0x36, 0xcc, 0x49, 0x46, 0x9b, 0xbc, 0xf5, + 0x3f, 0x49, 0x70, 0xfe, 0x93, 0x87, 0x33, 0x29, 0xb3, 0x40, 0x1f, 0x40, 0xd9, 0xa3, 0x70, 0x67, + 0xf7, 0x36, 0x7e, 0x35, 0x7b, 0xae, 0xc2, 0xd6, 0x52, 0x0a, 0x75, 0xf4, 0xd9, 0xcd, 0x59, 0xee, + 0xc2, 0x18, 0x4d, 0x3e, 0x3c, 0xe3, 0x16, 0x53, 0xef, 0x88, 0x54, 0x3d, 0xd0, 0x3c, 0x86, 0xae, + 0x9c, 0xde, 0x38, 0x6d, 0xde, 0xa6, 0x79, 0x4d, 0x19, 0x40, 0x0e, 0x00, 0xc5, 0x7f, 0x4f, 0x00, + 0x84, 0x1a, 0x43, 0xef, 0xc6, 0xd3, 0x9a, 0x37, 0x33, 0xa7, 0x35, 0x7c, 0x24, 0x9e, 0xda, 0xd4, + 0x13, 0xa9, 0x4d, 0x35, 0x7b, 0x6a, 0xc3, 0x81, 0xfc, 0xf4, 0x66, 0x25, 0x96, 0xde, 0x9c, 0xef, + 0x97, 0xa0, 0x70, 0x69, 0x2f, 0xc5, 0xb9, 0x9d, 0x92, 0xe2, 0x5c, 0xca, 0x94, 0xe2, 0x70, 0x98, + 0x57, 0x69, 0xce, 0xe7, 0x33, 0xcd, 0xf9, 0xf0, 0x88, 0x34, 0x27, 0xd3, 0x9d, 0x1f, 0xcb, 0x73, + 0xb8, 0xa3, 0xbc, 0xca, 0x75, 0x5e, 0xc2, 0x5c, 0xe7, 0xd2, 0x29, 0xe5, 0x3a, 0x97, 0x4f, 0x94, + 0xeb, 0xbc, 0x54, 0xf9, 0x48, 0x5a, 0x62, 0x77, 0xe5, 0x94, 0x12, 0xbb, 0x17, 0x98, 0xeb, 0x8c, + 0x43, 0x29, 0x12, 0xcd, 0x88, 0x3f, 0x2c, 0xc0, 0x58, 0x70, 0x69, 0xa2, 0x0f, 0x60, 0xa4, 0xab, + 0x39, 0x5a, 0x53, 0x27, 0xfc, 0xd2, 0xbd, 0x3e, 0xd0, 0xa5, 0x5b, 0xdd, 0xf6, 0x84, 0xeb, 0x39, + 0xc9, 0xc7, 0x41, 0x77, 0xa1, 0x68, 0x5a, 0xf8, 0x3b, 0x1d, 0x3f, 0xbc, 0x5c, 0x1e, 0x0c, 0x71, + 0x8b, 0xc9, 0xb2, 0x4b, 0x98, 0xb5, 0x66, 0xbf, 0x2b, 0xc0, 0x08, 0x1f, 0x06, 0x7d, 0xfd, 0xb8, + 0x85, 0x4f, 0x3f, 0x36, 0x78, 0x3b, 0x16, 0xf9, 0x7e, 0x39, 0x43, 0xe4, 0xcb, 0x62, 0x39, 0x26, + 0x34, 0xbb, 0x01, 0x45, 0x6f, 0x76, 0x27, 0x9e, 0x07, 0x8d, 0x83, 0xbc, 0xd4, 0x8f, 0xd9, 0xe4, + 0xaf, 0x05, 0x98, 0xee, 0x39, 0xd9, 0xd1, 0xc3, 0xa4, 0x6d, 0xbe, 0x7a, 0xac, 0x1b, 0x22, 0xcd, + 0x46, 0xdb, 0x09, 0x1b, 0xdd, 0x3c, 0x1e, 0x72, 0x8f, 0xad, 0x7e, 0x16, 0xb1, 0xd5, 0x83, 0x9e, + 0x7b, 0x4e, 0x38, 0x5e, 0x39, 0x2f, 0x79, 0xc1, 0x9d, 0xc8, 0x86, 0x38, 0xb0, 0xe1, 0x8b, 0x9a, + 0x5f, 0x6d, 0x2a, 0x09, 0x2c, 0xfe, 0xab, 0x00, 0x10, 0x06, 0x98, 0x48, 0x4a, 0x1a, 0xf6, 0xad, + 0xc1, 0x22, 0xd4, 0x34, 0x8b, 0x6e, 0x25, 0x2c, 0x7a, 0x7d, 0x40, 0xc8, 0x1e, 0x53, 0x7e, 0x1a, + 0x31, 0x65, 0x2d, 0x88, 0xa8, 0x85, 0x41, 0x1f, 0x0b, 0x82, 0x58, 0xfa, 0x24, 0x56, 0x4b, 0xe6, + 0xeb, 0x85, 0x93, 0xe6, 0xeb, 0xb3, 0xef, 0x07, 0x6e, 0x70, 0x0a, 0x6b, 0xa3, 0x47, 0xac, 0xd7, + 0xf2, 0xb6, 0xf3, 0xa7, 0x02, 0x0c, 0x7b, 0x77, 0xda, 0x6a, 0xec, 0xbd, 0x2f, 0x7b, 0x42, 0x13, + 0x79, 0xe9, 0x7b, 0x1f, 0x46, 0x71, 0xc7, 0x6d, 0x05, 0x59, 0x70, 0x6f, 0x10, 0xdd, 0x53, 0x57, + 0xa0, 0x08, 0xab, 0x1d, 0xb7, 0x75, 0x4f, 0xdb, 0x33, 0xb0, 0xdb, 0xb1, 0x89, 0x34, 0x82, 0xbd, + 0x2e, 0x5a, 0x85, 0x61, 0xcb, 0x36, 0xcd, 0x5d, 0xae, 0xc2, 0x2b, 0x7d, 0xa0, 0x1e, 0xdd, 0x61, + 0x60, 0x0d, 0x2a, 0x22, 0x79, 0x92, 0xe2, 0x4f, 0x04, 0x7e, 0x81, 0xb0, 0x27, 0x3d, 0x19, 0x50, + 0x13, 0xeb, 0x74, 0x77, 0xc8, 0x91, 0x02, 0x48, 0xfa, 0x4e, 0x4a, 0xa2, 0xd7, 0x3c, 0xc1, 0x48, + 0x09, 0x64, 0xba, 0x99, 0x24, 0xa1, 0x2f, 0x45, 0x6b, 0x1e, 0x05, 0x56, 0x06, 0x88, 0x54, 0x32, + 0x26, 0x20, 0x6f, 0xef, 0xb3, 0xec, 0xaa, 0x2c, 0xe5, 0xed, 0x7d, 0xf1, 0x63, 0x01, 0x8a, 0x3c, + 0x00, 0xa8, 0xc5, 0x74, 0x3f, 0x40, 0x12, 0x18, 0x51, 0x7e, 0xcd, 0x57, 0x57, 0x3e, 0x35, 0x1c, + 0xe9, 0x55, 0x97, 0x87, 0x10, 0xd3, 0xd7, 0x0f, 0xf2, 0xfe, 0xe6, 0x67, 0x0a, 0xdb, 0x84, 0x32, + 0x75, 0x69, 0x99, 0x3b, 0xe3, 0x11, 0x5e, 0x97, 0xb6, 0x1f, 0xb8, 0x2b, 0x4b, 0x25, 0x23, 0xec, + 0x1c, 0xa1, 0xff, 0xfc, 0xe9, 0xe9, 0x7f, 0x1e, 0xa6, 0x0e, 0x6c, 0x6c, 0x59, 0xfc, 0x19, 0x32, + 0xd8, 0x7f, 0x65, 0x69, 0x82, 0xd3, 0x69, 0xae, 0x7f, 0x87, 0x1c, 0xa2, 0x8b, 0x30, 0x69, 0x76, + 0xf7, 0x65, 0x9f, 0x9b, 0x32, 0x7a, 0x86, 0x19, 0x37, 0xbb, 0xfb, 0x0f, 0x3c, 0xea, 0x1d, 0x72, + 0x28, 0xfe, 0x38, 0x0f, 0xd3, 0xd4, 0x3d, 0x4d, 0x5b, 0xfb, 0x08, 0x53, 0x03, 0xac, 0x63, 0x17, + 0xa3, 0xdb, 0x50, 0x22, 0xec, 0x4d, 0x59, 0x0e, 0x9e, 0x9b, 0xfb, 0x17, 0x75, 0xc2, 0x57, 0x68, + 0x09, 0x48, 0xf8, 0x22, 0x2d, 0x41, 0xc9, 0xbb, 0x5d, 0xa9, 0xdb, 0xfb, 0x35, 0xd5, 0x63, 0x6c, + 0x1b, 0xef, 0x8e, 0xa6, 0x34, 0x07, 0x29, 0x30, 0x13, 0x3f, 0xd5, 0x39, 0x78, 0xe1, 0xb8, 0xe0, + 0x28, 0x76, 0x6b, 0xb0, 0x41, 0xc4, 0xdf, 0x09, 0x50, 0x7a, 0xa0, 0xb9, 0x06, 0x71, 0x1c, 0xa6, + 0x94, 0xb0, 0xc8, 0x25, 0x1c, 0xb3, 0xc8, 0x85, 0xf6, 0xe1, 0x0b, 0x8e, 0xcb, 0x02, 0xd6, 0xc0, + 0xa6, 0x32, 0x73, 0x4c, 0x5f, 0x2f, 0x4b, 0x83, 0x95, 0x29, 0x3d, 0xdf, 0x7e, 0xcd, 0x49, 0xa1, + 0x3a, 0xe2, 0x3f, 0xe2, 0x8f, 0xfe, 0x0d, 0x1d, 0x1b, 0xa8, 0x9e, 0x7c, 0xf4, 0x1f, 0xa0, 0x90, + 0x46, 0x01, 0xfe, 0xdf, 0x0f, 0xff, 0x77, 0x00, 0x14, 0xbd, 0x43, 0x64, 0x4b, 0xc7, 0x86, 0x5f, + 0x45, 0xcb, 0x54, 0x03, 0x5b, 0xd3, 0x3b, 0x84, 0x2d, 0x60, 0x4c, 0xe1, 0x2d, 0x07, 0x6d, 0xf0, + 0x7a, 0x1a, 0x05, 0x1b, 0xb4, 0x9e, 0xc6, 0xb0, 0x58, 0x35, 0x8d, 0xb6, 0xc4, 0x9f, 0x06, 0xc5, + 0x33, 0xa6, 0xe6, 0x63, 0x17, 0xcf, 0xa8, 0xf4, 0xa9, 0x14, 0xcf, 0x38, 0xd0, 0x31, 0x8b, 0x67, + 0x5c, 0xfa, 0xa4, 0xc5, 0x33, 0x0e, 0xf3, 0xaa, 0x78, 0xf6, 0xf9, 0x2c, 0x9e, 0x7d, 0xeb, 0x88, + 0xe2, 0xd9, 0xf2, 0xa0, 0x41, 0x3b, 0xf7, 0x93, 0x57, 0xb5, 0xb3, 0x0c, 0xb5, 0x33, 0xf9, 0xe8, + 0xda, 0xd9, 0xd5, 0x41, 0x6a, 0x67, 0x5c, 0xe7, 0xbd, 0xf5, 0x33, 0xed, 0xf9, 0xf5, 0xb3, 0xa5, + 0x01, 0xeb, 0x67, 0x7c, 0x9c, 0xcf, 0xc8, 0xf7, 0x02, 0x1f, 0x1e, 0xf9, 0xbd, 0xc0, 0xb5, 0x81, + 0xca, 0x4a, 0x7c, 0xd5, 0x2f, 0xf5, 0x37, 0x03, 0x91, 0x87, 0xfd, 0xef, 0x0b, 0x30, 0xea, 0xdf, + 0xc0, 0xe8, 0x1d, 0x18, 0xe1, 0xcf, 0xcf, 0xfc, 0x7a, 0xbc, 0x98, 0xed, 0xe5, 0x5a, 0xf2, 0xc5, + 0xd0, 0x0c, 0x0c, 0xdb, 0x0e, 0x21, 0x2a, 0x7f, 0x89, 0xf4, 0x3a, 0xe8, 0x02, 0x4c, 0x58, 0x36, + 0x51, 0x34, 0x87, 0x7a, 0x6e, 0x53, 0x73, 0x1d, 0x76, 0xdb, 0x0d, 0x49, 0xe3, 0x01, 0xb5, 0xa6, + 0xb9, 0x8e, 0xd8, 0x86, 0x51, 0xff, 0x02, 0x47, 0x5b, 0x30, 0x66, 0xe9, 0x58, 0x33, 0x5c, 0xf2, + 0xd8, 0xcf, 0x93, 0xae, 0x0d, 0x10, 0x01, 0x78, 0x82, 0x52, 0x88, 0x81, 0xa6, 0xa0, 0x40, 0x43, + 0x6d, 0x6f, 0x5e, 0xb4, 0x29, 0x5e, 0x84, 0x09, 0xca, 0xbd, 0xa6, 0x59, 0x2d, 0x62, 0x33, 0x9e, + 0xf4, 0x27, 0x72, 0x05, 0xc6, 0x63, 0xa8, 0xe8, 0x6b, 0x50, 0x74, 0x88, 0xa1, 0x06, 0x8f, 0xcb, + 0x59, 0xb5, 0xc4, 0xa5, 0x10, 0x82, 0x21, 0xb6, 0xac, 0x3c, 0x8b, 0xbb, 0x58, 0x5b, 0xfc, 0x7d, + 0xc1, 0x5b, 0x3c, 0xab, 0x7c, 0x34, 0x92, 0x95, 0x8f, 0xe5, 0x41, 0x1e, 0x13, 0xd3, 0xea, 0x1e, + 0x9b, 0x89, 0xba, 0xc7, 0xd2, 0x40, 0x80, 0x3d, 0x55, 0x8f, 0x5f, 0x45, 0xaa, 0x1e, 0x12, 0x80, + 0x12, 0xa8, 0x90, 0xcf, 0x77, 0x31, 0x2b, 0x7c, 0xa8, 0x7c, 0x29, 0x82, 0x12, 0xb7, 0x7e, 0xfe, + 0xe4, 0xd6, 0x9f, 0xdd, 0x09, 0x0a, 0x19, 0x2f, 0x60, 0xba, 0xb5, 0x52, 0xe4, 0xf9, 0x57, 0xfc, + 0x85, 0x9f, 0xf8, 0x33, 0x3f, 0xf6, 0xbf, 0x21, 0x10, 0x06, 0xfc, 0x86, 0x00, 0xcd, 0xc2, 0xa8, + 0x7f, 0x30, 0xf3, 0x00, 0x3e, 0xe8, 0xa3, 0x39, 0x00, 0x1b, 0x1b, 0xaa, 0xd9, 0xd6, 0x3e, 0x0a, + 0xb2, 0xfd, 0x08, 0x85, 0xee, 0xb7, 0x2e, 0xa6, 0xc1, 0x78, 0x53, 0xf7, 0xbe, 0x04, 0xf0, 0x33, + 0x4c, 0x46, 0xad, 0x71, 0xa2, 0xf8, 0x44, 0xf0, 0x53, 0x6e, 0x36, 0xd5, 0x15, 0x18, 0x66, 0xff, + 0xf3, 0xb9, 0xf6, 0xfb, 0xd6, 0x64, 0x9b, 0xf2, 0x4a, 0x9e, 0x08, 0xda, 0x80, 0xb2, 0x4a, 0x1c, + 0x57, 0xf6, 0x8f, 0x8f, 0xfc, 0x40, 0x1b, 0xa3, 0x44, 0x65, 0x57, 0x93, 0x47, 0x48, 0x21, 0x71, + 0x84, 0x64, 0x58, 0x52, 0xed, 0xef, 0xf9, 0x4f, 0x9e, 0xce, 0x09, 0x4f, 0x9e, 0xce, 0x09, 0x7f, + 0x7b, 0x3a, 0x27, 0x7c, 0xfc, 0x6c, 0x2e, 0xf7, 0xe4, 0xd9, 0x5c, 0xee, 0x2f, 0xcf, 0xe6, 0x72, + 0x70, 0x51, 0x31, 0xdb, 0x19, 0xec, 0x5c, 0x9b, 0x8a, 0x66, 0x66, 0xb6, 0xe9, 0x9a, 0x0d, 0xe1, + 0x51, 0x73, 0x4f, 0x73, 0x5b, 0x9d, 0x66, 0x55, 0x31, 0xdb, 0x0b, 0x8a, 0xe9, 0xb4, 0x4d, 0x67, + 0xc1, 0x26, 0x3a, 0x3e, 0x24, 0xf6, 0x42, 0x77, 0x31, 0x68, 0xb2, 0x04, 0xca, 0x59, 0xe8, 0xff, + 0xf1, 0xff, 0xdb, 0x11, 0xa2, 0x4f, 0xfb, 0x79, 0xbe, 0xd0, 0x58, 0xbb, 0xff, 0xcb, 0xbc, 0xd8, + 0xf0, 0xa7, 0xb8, 0x46, 0xa7, 0x18, 0x99, 0x4c, 0x75, 0x9b, 0xb3, 0xfe, 0x21, 0x64, 0xda, 0xa1, + 0x4c, 0x3b, 0x11, 0xa6, 0x1d, 0x9f, 0xe9, 0x69, 0xbe, 0xda, 0x9f, 0x69, 0xe7, 0xbd, 0x46, 0x6d, + 0x93, 0xb8, 0x58, 0xc5, 0x2e, 0xfe, 0x67, 0xfe, 0x82, 0x2f, 0xb0, 0xb2, 0x42, 0x25, 0x56, 0x56, + 0x22, 0x22, 0x2b, 0x2b, 0xbe, 0x4c, 0xb3, 0xc8, 0x3e, 0xda, 0x5f, 0xfa, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xbd, 0x8d, 0x72, 0x3a, 0xe6, 0x30, 0x00, 0x00, } func (m *Transaction) Marshal() (dAtA []byte, err error) { @@ -3155,6 +3607,36 @@ func (m *Id) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EffectHash) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EffectHash) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EffectHash) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *TransactionBody) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3805,6 +4287,20 @@ func (m *TransactionPerspective) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if len(m.Denoms) > 0 { + for iNdEx := len(m.Denoms) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Denoms[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } if len(m.AddressViews) > 0 { for iNdEx := len(m.AddressViews) - 1; iNdEx >= 0; iNdEx-- { { @@ -3864,7 +4360,7 @@ func (m *TransactionPerspective) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *PayloadKeyWithCommitment) Marshal() (dAtA []byte, err error) { +func (m *PayloadKey) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3874,39 +4370,27 @@ func (m *PayloadKeyWithCommitment) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *PayloadKeyWithCommitment) MarshalTo(dAtA []byte) (int, error) { +func (m *PayloadKey) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *PayloadKeyWithCommitment) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *PayloadKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Commitment != nil { - { - size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTransaction(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if len(m.PayloadKey) > 0 { - i -= len(m.PayloadKey) - copy(dAtA[i:], m.PayloadKey) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.PayloadKey))) + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Inner))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *NullifierWithNote) Marshal() (dAtA []byte, err error) { +func (m *PayloadKeyWithCommitment) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3916,7 +4400,54 @@ func (m *NullifierWithNote) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *NullifierWithNote) MarshalTo(dAtA []byte) (int, error) { +func (m *PayloadKeyWithCommitment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PayloadKeyWithCommitment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Commitment != nil { + { + size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.PayloadKey != nil { + { + size, err := m.PayloadKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NullifierWithNote) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NullifierWithNote) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } @@ -3973,27 +4504,65 @@ func (m *TransactionView) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.AddressViews) > 0 { - for iNdEx := len(m.AddressViews) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.AddressViews[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTransaction(dAtA, i, uint64(size)) + if m.Anchor != nil { + { + size, err := m.Anchor.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x19 - i-- - dAtA[i] = 0x82 + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x1a + } + if len(m.BindingSig) > 0 { + i -= len(m.BindingSig) + copy(dAtA[i:], m.BindingSig) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.BindingSig))) + i-- + dAtA[i] = 0x12 + } + if m.BodyView != nil { + { + size, err := m.BodyView.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionBodyView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if m.XMemo != nil { + return dAtA[:n], nil +} + +func (m *TransactionBodyView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionBodyView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XMemoView != nil { { - size := m.XMemo.Size() + size := m.XMemoView.Size() i -= size - if _, err := m.XMemo.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.XMemoView.MarshalTo(dAtA[i:]); err != nil { return 0, err } } @@ -4053,17 +4622,22 @@ func (m *TransactionView) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *TransactionView_Memo) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionBodyView_MemoView) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionView_Memo) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionBodyView_MemoView) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) - if m.Memo != nil { - i -= len(m.Memo) - copy(dAtA[i:], m.Memo) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.Memo))) + if m.MemoView != nil { + { + size, err := m.MemoView.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x32 } @@ -5005,10 +5579,15 @@ func (m *OutputView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.PayloadKey) > 0 { - i -= len(m.PayloadKey) - copy(dAtA[i:], m.PayloadKey) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.PayloadKey))) + if m.PayloadKey != nil { + { + size, err := m.PayloadKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1a } @@ -6070,17 +6649,22 @@ func (m *MemoPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if len(m.Plaintext) > 0 { - i -= len(m.Plaintext) - copy(dAtA[i:], m.Plaintext) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.Plaintext))) + if m.Plaintext != nil { + { + size, err := m.Plaintext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *SpendPlan) Marshal() (dAtA []byte, err error) { +func (m *MemoCiphertext) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -6090,38 +6674,56 @@ func (m *SpendPlan) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *SpendPlan) MarshalTo(dAtA []byte) (int, error) { +func (m *MemoCiphertext) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *SpendPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MemoCiphertext) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.ValueBlinding) > 0 { - i -= len(m.ValueBlinding) - copy(dAtA[i:], m.ValueBlinding) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.ValueBlinding))) + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Inner))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0xa } - if len(m.Randomizer) > 0 { - i -= len(m.Randomizer) - copy(dAtA[i:], m.Randomizer) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.Randomizer))) - i-- - dAtA[i] = 0x1a + return len(dAtA) - i, nil +} + +func (m *MemoPlaintext) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if m.Position != 0 { - i = encodeVarintTransaction(dAtA, i, uint64(m.Position)) + return dAtA[:n], nil +} + +func (m *MemoPlaintext) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MemoPlaintext) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Text) > 0 { + i -= len(m.Text) + copy(dAtA[i:], m.Text) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Text))) i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } - if m.Note != nil { + if m.Sender != nil { { - size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Sender.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -6134,7 +6736,7 @@ func (m *SpendPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *OutputPlan) Marshal() (dAtA []byte, err error) { +func (m *MemoView) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -6144,33 +6746,93 @@ func (m *OutputPlan) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *OutputPlan) MarshalTo(dAtA []byte) (int, error) { +func (m *MemoView) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *OutputPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MemoView) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.ValueBlinding) > 0 { - i -= len(m.ValueBlinding) - copy(dAtA[i:], m.ValueBlinding) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.ValueBlinding))) + if m.MemoView != nil { + { + size := m.MemoView.Size() + i -= size + if _, err := m.MemoView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *MemoView_Visible_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MemoView_Visible_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Visible != nil { + { + size, err := m.Visible.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x22 + dAtA[i] = 0xa } - if len(m.Rseed) > 0 { - i -= len(m.Rseed) - copy(dAtA[i:], m.Rseed) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.Rseed))) + return len(dAtA) - i, nil +} +func (m *MemoView_Opaque_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MemoView_Opaque_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opaque != nil { + { + size, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x12 } - if m.DestAddress != nil { + return len(dAtA) - i, nil +} +func (m *MemoView_Visible) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MemoView_Visible) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MemoView_Visible) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Plaintext != nil { { - size, err := m.DestAddress.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Plaintext.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -6180,9 +6842,9 @@ func (m *OutputPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.Value != nil { + if m.Ciphertext != nil { { - size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Ciphertext.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -6195,16 +6857,166 @@ func (m *OutputPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func encodeVarintTransaction(dAtA []byte, offset int, v uint64) int { - offset -= sovTransaction(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *MemoView_Opaque) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil +} + +func (m *MemoView_Opaque) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MemoView_Opaque) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Ciphertext != nil { + { + size, err := m.Ciphertext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SpendPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpendPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpendPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ValueBlinding) > 0 { + i -= len(m.ValueBlinding) + copy(dAtA[i:], m.ValueBlinding) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ValueBlinding))) + i-- + dAtA[i] = 0x22 + } + if len(m.Randomizer) > 0 { + i -= len(m.Randomizer) + copy(dAtA[i:], m.Randomizer) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Randomizer))) + i-- + dAtA[i] = 0x1a + } + if m.Position != 0 { + i = encodeVarintTransaction(dAtA, i, uint64(m.Position)) + i-- + dAtA[i] = 0x10 + } + if m.Note != nil { + { + size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OutputPlan) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OutputPlan) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutputPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ValueBlinding) > 0 { + i -= len(m.ValueBlinding) + copy(dAtA[i:], m.ValueBlinding) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ValueBlinding))) + i-- + dAtA[i] = 0x22 + } + if len(m.Rseed) > 0 { + i -= len(m.Rseed) + copy(dAtA[i:], m.Rseed) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.Rseed))) + i-- + dAtA[i] = 0x1a + } + if m.DestAddress != nil { + { + size, err := m.DestAddress.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Value != nil { + { + size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintTransaction(dAtA []byte, offset int, v uint64) int { + offset -= sovTransaction(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base } func (m *Transaction) Size() (n int) { if m == nil { @@ -6240,6 +7052,19 @@ func (m *Id) Size() (n int) { return n } +func (m *EffectHash) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + func (m *TransactionBody) Size() (n int) { if m == nil { return 0 @@ -6593,19 +7418,38 @@ func (m *TransactionPerspective) Size() (n int) { n += 1 + l + sovTransaction(uint64(l)) } } + if len(m.Denoms) > 0 { + for _, e := range m.Denoms { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } return n } -func (m *PayloadKeyWithCommitment) Size() (n int) { +func (m *PayloadKey) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.PayloadKey) + l = len(m.Inner) if l > 0 { n += 1 + l + sovTransaction(uint64(l)) } + return n +} + +func (m *PayloadKeyWithCommitment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PayloadKey != nil { + l = m.PayloadKey.Size() + n += 1 + l + sovTransaction(uint64(l)) + } if m.Commitment != nil { l = m.Commitment.Size() n += 1 + l + sovTransaction(uint64(l)) @@ -6631,6 +7475,27 @@ func (m *NullifierWithNote) Size() (n int) { } func (m *TransactionView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BodyView != nil { + l = m.BodyView.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.BindingSig) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Anchor != nil { + l = m.Anchor.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *TransactionBodyView) Size() (n int) { if m == nil { return 0 } @@ -6659,26 +7524,20 @@ func (m *TransactionView) Size() (n int) { n += 1 + l + sovTransaction(uint64(l)) } } - if m.XMemo != nil { - n += m.XMemo.Size() - } - if len(m.AddressViews) > 0 { - for _, e := range m.AddressViews { - l = e.Size() - n += 2 + l + sovTransaction(uint64(l)) - } + if m.XMemoView != nil { + n += m.XMemoView.Size() } return n } -func (m *TransactionView_Memo) Size() (n int) { +func (m *TransactionBodyView_MemoView) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Memo != nil { - l = len(m.Memo) + if m.MemoView != nil { + l = m.MemoView.Size() n += 1 + l + sovTransaction(uint64(l)) } return n @@ -7141,8 +8000,8 @@ func (m *OutputView_Visible) Size() (n int) { l = m.Note.Size() n += 1 + l + sovTransaction(uint64(l)) } - l = len(m.PayloadKey) - if l > 0 { + if m.PayloadKey != nil { + l = m.PayloadKey.Size() n += 1 + l + sovTransaction(uint64(l)) } return n @@ -7615,8 +8474,8 @@ func (m *MemoPlan) Size() (n int) { } var l int _ = l - l = len(m.Plaintext) - if l > 0 { + if m.Plaintext != nil { + l = m.Plaintext.Size() n += 1 + l + sovTransaction(uint64(l)) } l = len(m.Key) @@ -7626,59 +8485,155 @@ func (m *MemoPlan) Size() (n int) { return n } -func (m *SpendPlan) Size() (n int) { +func (m *MemoCiphertext) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Note != nil { - l = m.Note.Size() + l = len(m.Inner) + if l > 0 { n += 1 + l + sovTransaction(uint64(l)) } - if m.Position != 0 { - n += 1 + sovTransaction(uint64(m.Position)) + return n +} + +func (m *MemoPlaintext) Size() (n int) { + if m == nil { + return 0 } - l = len(m.Randomizer) - if l > 0 { + var l int + _ = l + if m.Sender != nil { + l = m.Sender.Size() n += 1 + l + sovTransaction(uint64(l)) } - l = len(m.ValueBlinding) + l = len(m.Text) if l > 0 { n += 1 + l + sovTransaction(uint64(l)) } return n } -func (m *OutputPlan) Size() (n int) { +func (m *MemoView) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Value != nil { - l = m.Value.Size() + if m.MemoView != nil { + n += m.MemoView.Size() + } + return n +} + +func (m *MemoView_Visible_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Visible != nil { + l = m.Visible.Size() n += 1 + l + sovTransaction(uint64(l)) } - if m.DestAddress != nil { - l = m.DestAddress.Size() + return n +} +func (m *MemoView_Opaque_) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opaque != nil { + l = m.Opaque.Size() n += 1 + l + sovTransaction(uint64(l)) } - l = len(m.Rseed) - if l > 0 { + return n +} +func (m *MemoView_Visible) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Ciphertext != nil { + l = m.Ciphertext.Size() n += 1 + l + sovTransaction(uint64(l)) } - l = len(m.ValueBlinding) - if l > 0 { + if m.Plaintext != nil { + l = m.Plaintext.Size() n += 1 + l + sovTransaction(uint64(l)) } return n } -func sovTransaction(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozTransaction(x uint64) (n int) { +func (m *MemoView_Opaque) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Ciphertext != nil { + l = m.Ciphertext.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *SpendPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.Position != 0 { + n += 1 + sovTransaction(uint64(m.Position)) + } + l = len(m.Randomizer) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.ValueBlinding) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *OutputPlan) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.DestAddress != nil { + l = m.DestAddress.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.Rseed) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.ValueBlinding) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func sovTransaction(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTransaction(x uint64) (n int) { return sovTransaction(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } func (m *Transaction) Unmarshal(dAtA []byte) error { @@ -7921,6 +8876,90 @@ func (m *Id) Unmarshal(dAtA []byte) error { } return nil } +func (m *EffectHash) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EffectHash: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EffectHash: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *TransactionBody) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -9144,6 +10183,40 @@ func (m *TransactionPerspective) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denoms", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denoms = append(m.Denoms, &v1alpha1.Denom{}) + if err := m.Denoms[len(m.Denoms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTransaction(dAtA[iNdEx:]) @@ -9165,7 +10238,7 @@ func (m *TransactionPerspective) Unmarshal(dAtA []byte) error { } return nil } -func (m *PayloadKeyWithCommitment) Unmarshal(dAtA []byte) error { +func (m *PayloadKey) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9188,15 +10261,15 @@ func (m *PayloadKeyWithCommitment) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PayloadKeyWithCommitment: wiretype end group for non-group") + return fmt.Errorf("proto: PayloadKey: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PayloadKeyWithCommitment: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PayloadKey: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PayloadKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -9223,45 +10296,9 @@ func (m *PayloadKeyWithCommitment) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PayloadKey = append(m.PayloadKey[:0], dAtA[iNdEx:postIndex]...) - if m.PayloadKey == nil { - m.PayloadKey = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransaction - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTransaction - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTransaction - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Commitment == nil { - m.Commitment = &v1alpha1.StateCommitment{} - } - if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} } iNdEx = postIndex default: @@ -9285,7 +10322,7 @@ func (m *PayloadKeyWithCommitment) Unmarshal(dAtA []byte) error { } return nil } -func (m *NullifierWithNote) Unmarshal(dAtA []byte) error { +func (m *PayloadKeyWithCommitment) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9308,15 +10345,15 @@ func (m *NullifierWithNote) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NullifierWithNote: wiretype end group for non-group") + return fmt.Errorf("proto: PayloadKeyWithCommitment: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NullifierWithNote: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PayloadKeyWithCommitment: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PayloadKey", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9343,16 +10380,16 @@ func (m *NullifierWithNote) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Nullifier == nil { - m.Nullifier = &v1alpha1.Nullifier{} + if m.PayloadKey == nil { + m.PayloadKey = &PayloadKey{} } - if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.PayloadKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9379,10 +10416,10 @@ func (m *NullifierWithNote) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Note == nil { - m.Note = &v1alpha1.Note{} + if m.Commitment == nil { + m.Commitment = &v1alpha1.StateCommitment{} } - if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9407,7 +10444,7 @@ func (m *NullifierWithNote) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionView) Unmarshal(dAtA []byte) error { +func (m *NullifierWithNote) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9430,15 +10467,15 @@ func (m *TransactionView) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionView: wiretype end group for non-group") + return fmt.Errorf("proto: NullifierWithNote: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionView: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NullifierWithNote: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ActionViews", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9465,16 +10502,18 @@ func (m *TransactionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ActionViews = append(m.ActionViews, &ActionView{}) - if err := m.ActionViews[len(m.ActionViews)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Nullifier == nil { + m.Nullifier = &v1alpha1.Nullifier{} + } + if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) } - m.ExpiryHeight = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransaction @@ -9484,82 +10523,81 @@ func (m *TransactionView) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ExpiryHeight |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransaction - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTransaction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTransaction } if postIndex > l { return io.ErrUnexpectedEOF } - m.ChainId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + if m.Note == nil { + m.Note = &v1alpha1.Note{} } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransaction - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - if msglen < 0 { - return ErrInvalidLengthTransaction + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTransaction } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.Fee == nil { - m.Fee = &v1alpha1.Fee{} + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction } - if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 5: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TransactionView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FmdClues", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BodyView", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9586,14 +10624,16 @@ func (m *TransactionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FmdClues = append(m.FmdClues, &v1alpha1.Clue{}) - if err := m.FmdClues[len(m.FmdClues)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.BodyView == nil { + m.BodyView = &TransactionBodyView{} + } + if err := m.BodyView.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Memo", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BindingSig", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -9620,13 +10660,14 @@ func (m *TransactionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.XMemo = &TransactionView_Memo{v} + m.BindingSig = append(m.BindingSig[:0], dAtA[iNdEx:postIndex]...) + if m.BindingSig == nil { + m.BindingSig = []byte{} + } iNdEx = postIndex - case 400: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressViews", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Anchor", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9653,8 +10694,10 @@ func (m *TransactionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AddressViews = append(m.AddressViews, &v1alpha1.AddressView{}) - if err := m.AddressViews[len(m.AddressViews)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Anchor == nil { + m.Anchor = &v1alpha1.MerkleRoot{} + } + if err := m.Anchor.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9679,7 +10722,7 @@ func (m *TransactionView) Unmarshal(dAtA []byte) error { } return nil } -func (m *ActionView) Unmarshal(dAtA []byte) error { +func (m *TransactionBodyView) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9702,15 +10745,15 @@ func (m *ActionView) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ActionView: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionBodyView: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ActionView: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionBodyView: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spend", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ActionViews", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9737,17 +10780,35 @@ func (m *ActionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &SpendView{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.ActionViews = append(m.ActionViews, &ActionView{}) + if err := m.ActionViews[len(m.ActionViews)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.ActionView = &ActionView_Spend{v} iNdEx = postIndex case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + } + m.ExpiryHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpiryHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransaction @@ -9757,30 +10818,27 @@ func (m *ActionView) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTransaction } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTransaction } if postIndex > l { return io.ErrUnexpectedEOF } - v := &OutputView{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.ActionView = &ActionView_Output{v} + m.ChainId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9807,15 +10865,16 @@ func (m *ActionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &v1alpha11.SwapView{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Fee == nil { + m.Fee = &v1alpha1.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.ActionView = &ActionView_Swap{v} iNdEx = postIndex - case 4: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SwapClaim", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FmdClues", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9842,15 +10901,14 @@ func (m *ActionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &v1alpha11.SwapClaimView{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.FmdClues = append(m.FmdClues, &v1alpha1.Clue{}) + if err := m.FmdClues[len(m.FmdClues)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.ActionView = &ActionView_SwapClaim{v} iNdEx = postIndex - case 16: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidatorDefinition", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MemoView", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9877,15 +10935,65 @@ func (m *ActionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &v1alpha12.ValidatorDefinition{} + v := &MemoView{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.ActionView = &ActionView_ValidatorDefinition{v} + m.XMemoView = &TransactionBodyView_MemoView{v} iNdEx = postIndex - case 17: + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ActionView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ActionView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ActionView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IbcAction", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Spend", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9912,15 +11020,190 @@ func (m *ActionView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &v1alpha13.IbcAction{} + v := &SpendView{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.ActionView = &ActionView_IbcAction{v} + m.ActionView = &ActionView_Spend{v} iNdEx = postIndex - case 18: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ProposalSubmit", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OutputView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Output{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.SwapView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_Swap{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapClaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha11.SwapClaimView{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_SwapClaim{v} + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorDefinition", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha12.ValidatorDefinition{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_ValidatorDefinition{v} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IbcAction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha13.IbcAction{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ActionView = &ActionView_IbcAction{v} + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalSubmit", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10714,7 +11997,7 @@ func (m *SpendView_Visible) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Note == nil { - m.Note = &v1alpha1.Note{} + m.Note = &v1alpha1.NoteView{} } if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11042,7 +12325,7 @@ func (m *DelegatorVoteView_Visible) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Note == nil { - m.Note = &v1alpha1.Note{} + m.Note = &v1alpha1.NoteView{} } if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11370,7 +12653,7 @@ func (m *OutputView_Visible) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Note == nil { - m.Note = &v1alpha1.Note{} + m.Note = &v1alpha1.NoteView{} } if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11380,7 +12663,7 @@ func (m *OutputView_Visible) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PayloadKey", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransaction @@ -11390,24 +12673,26 @@ func (m *OutputView_Visible) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthTransaction } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTransaction } if postIndex > l { return io.ErrUnexpectedEOF } - m.PayloadKey = append(m.PayloadKey[:0], dAtA[iNdEx:postIndex]...) if m.PayloadKey == nil { - m.PayloadKey = []byte{} + m.PayloadKey = &PayloadKey{} + } + if err := m.PayloadKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -13613,7 +14898,7 @@ func (m *MemoPlan) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Plaintext", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransaction @@ -13623,24 +14908,26 @@ func (m *MemoPlan) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthTransaction } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTransaction } if postIndex > l { return io.ErrUnexpectedEOF } - m.Plaintext = append(m.Plaintext[:0], dAtA[iNdEx:postIndex]...) if m.Plaintext == nil { - m.Plaintext = []byte{} + m.Plaintext = &MemoPlaintext{} + } + if err := m.Plaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex case 2: @@ -13698,6 +14985,536 @@ func (m *MemoPlan) Unmarshal(dAtA []byte) error { } return nil } +func (m *MemoCiphertext) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MemoCiphertext: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MemoCiphertext: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MemoPlaintext) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MemoPlaintext: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MemoPlaintext: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Sender == nil { + m.Sender = &v1alpha1.Address{} + } + if err := m.Sender.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Text = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MemoView) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MemoView: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MemoView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MemoView_Visible{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.MemoView = &MemoView_Visible_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opaque", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MemoView_Opaque{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.MemoView = &MemoView_Opaque_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MemoView_Visible) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Visible: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Visible: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ciphertext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Ciphertext == nil { + m.Ciphertext = &MemoCiphertext{} + } + if err := m.Ciphertext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Plaintext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Plaintext == nil { + m.Plaintext = &MemoPlaintext{} + } + if err := m.Plaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MemoView_Opaque) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Opaque: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Opaque: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ciphertext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Ciphertext == nil { + m.Ciphertext = &MemoCiphertext{} + } + if err := m.Ciphertext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *SpendPlan) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go b/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go index 95f0f4bf6..da8ab16f7 100644 --- a/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go +++ b/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go @@ -124,8 +124,8 @@ type SwapClaimProof struct { // // @exclude // Describes output amounts - Lambda_1I uint64 `protobuf:"varint,20,opt,name=lambda_1_i,json=lambda1I,proto3" json:"lambda_1_i,omitempty"` - Lambda_2I uint64 `protobuf:"varint,21,opt,name=lambda_2_i,json=lambda2I,proto3" json:"lambda_2_i,omitempty"` + Lambda_1I *v1alpha1.Amount `protobuf:"bytes,20,opt,name=lambda_1_i,json=lambda1I,proto3" json:"lambda_1_i,omitempty"` + Lambda_2I *v1alpha1.Amount `protobuf:"bytes,21,opt,name=lambda_2_i,json=lambda2I,proto3" json:"lambda_2_i,omitempty"` } func (m *SwapClaimProof) Reset() { *m = SwapClaimProof{} } @@ -182,18 +182,18 @@ func (m *SwapClaimProof) GetNk() []byte { return nil } -func (m *SwapClaimProof) GetLambda_1I() uint64 { +func (m *SwapClaimProof) GetLambda_1I() *v1alpha1.Amount { if m != nil { return m.Lambda_1I } - return 0 + return nil } -func (m *SwapClaimProof) GetLambda_2I() uint64 { +func (m *SwapClaimProof) GetLambda_2I() *v1alpha1.Amount { if m != nil { return m.Lambda_2I } - return 0 + return nil } type UndelegateClaimProof struct { @@ -259,45 +259,46 @@ func init() { } var fileDescriptor_1536b20e10cd99e5 = []byte{ - // 606 bytes of a gzipped FileDescriptorProto + // 609 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x4f, 0x6b, 0xd4, 0x40, - 0x14, 0x6f, 0xd2, 0x52, 0xec, 0x54, 0xdb, 0x92, 0xfe, 0x21, 0x14, 0x0d, 0xa5, 0x2a, 0x6c, 0x15, - 0x13, 0x76, 0x2b, 0x08, 0xf1, 0xd4, 0xdd, 0x83, 0xf4, 0xa0, 0x84, 0xb4, 0x7a, 0x90, 0x85, 0xf0, - 0x92, 0x8c, 0xbb, 0x61, 0x93, 0x99, 0x21, 0x99, 0x6c, 0x5b, 0x3f, 0x85, 0xa0, 0xe0, 0x5d, 0x6f, - 0x7e, 0x12, 0xf1, 0xd4, 0xa3, 0x47, 0xd9, 0xde, 0xfc, 0x14, 0x32, 0x93, 0x9d, 0xcd, 0xb6, 0x5b, - 0x68, 0xf1, 0xb6, 0xef, 0xfd, 0xfe, 0xbc, 0xf7, 0x7e, 0xd9, 0x04, 0xb5, 0x19, 0x26, 0x65, 0x16, - 0xe6, 0xe0, 0x44, 0x34, 0xc7, 0x0e, 0xcf, 0x81, 0x14, 0x0c, 0x72, 0x4c, 0x78, 0xc0, 0x72, 0x4a, - 0x3f, 0x14, 0xce, 0xb0, 0x09, 0x29, 0xeb, 0x43, 0xf3, 0x1a, 0xcc, 0x66, 0x39, 0xe5, 0xd4, 0xd8, - 0x53, 0x1e, 0xb6, 0xf0, 0xb0, 0xaf, 0xe1, 0x29, 0x8f, 0xed, 0x27, 0x97, 0xc7, 0x45, 0xf9, 0x19, - 0xe3, 0xb4, 0x1e, 0x51, 0xd5, 0x95, 0xed, 0xf6, 0xa3, 0xcb, 0xdc, 0x18, 0x9f, 0xd6, 0xc4, 0x18, - 0x9f, 0x56, 0xac, 0xdd, 0xef, 0x3a, 0x42, 0x47, 0x0c, 0x93, 0xd8, 0x13, 0xa3, 0x8c, 0x04, 0x6d, - 0x15, 0x1c, 0x38, 0x0e, 0x22, 0x9a, 0x65, 0x09, 0xcf, 0x26, 0x4b, 0x98, 0xda, 0x8e, 0xd6, 0x58, - 0x6e, 0xed, 0xdb, 0x97, 0x97, 0x1d, 0x4f, 0x54, 0xc6, 0xf6, 0x91, 0x10, 0x77, 0x26, 0x5a, 0x69, - 0xea, 0x6f, 0x14, 0xd7, 0x74, 0x8d, 0x17, 0x68, 0x81, 0x50, 0x8e, 0x4d, 0x5d, 0x1a, 0x3f, 0xbc, - 0xc1, 0xf8, 0x0d, 0xe5, 0xd8, 0x97, 0x02, 0xe3, 0x01, 0x42, 0xc3, 0x20, 0x4c, 0x13, 0x12, 0x27, - 0xa4, 0x67, 0x2e, 0xee, 0x68, 0x8d, 0xbb, 0xfe, 0xd2, 0xb0, 0x3d, 0x6e, 0x18, 0x2d, 0xb4, 0x59, - 0x88, 0x83, 0x02, 0x28, 0x79, 0x3f, 0xc8, 0x81, 0xc4, 0x34, 0x4b, 0x3e, 0xe2, 0xdc, 0x5c, 0x92, - 0xcc, 0x75, 0x09, 0x1e, 0x94, 0xbc, 0xef, 0x4f, 0x20, 0x63, 0x05, 0xe9, 0x30, 0x30, 0x91, 0x24, - 0xe8, 0x30, 0x10, 0x35, 0x19, 0x98, 0xcb, 0x55, 0x4d, 0x06, 0xbb, 0x5f, 0x75, 0xb4, 0x72, 0x74, - 0x02, 0xac, 0x93, 0x42, 0x92, 0x55, 0xeb, 0x7b, 0x68, 0xa5, 0x38, 0x01, 0x16, 0xb0, 0x14, 0x12, - 0xc2, 0xf1, 0x29, 0x1f, 0x27, 0xb4, 0x77, 0xe5, 0x10, 0x11, 0x75, 0x1d, 0xcf, 0x09, 0x30, 0x4f, - 0x09, 0xfc, 0x7b, 0xc5, 0x74, 0x69, 0xf4, 0xd0, 0xa6, 0x74, 0x9c, 0x89, 0x7e, 0xe1, 0xff, 0xa3, - 0x5f, 0x17, 0x8e, 0x57, 0x93, 0xaf, 0xae, 0x5b, 0x54, 0xd7, 0x19, 0xf7, 0x11, 0x4a, 0x21, 0x0b, - 0x63, 0x08, 0x9a, 0x41, 0x62, 0x6e, 0xec, 0x68, 0x8d, 0x05, 0xff, 0x4e, 0xd5, 0x69, 0x1e, 0x4e, - 0xa1, 0xad, 0x20, 0x31, 0x37, 0xa7, 0xd1, 0xd6, 0xe1, 0xee, 0x67, 0x0d, 0x6d, 0xbc, 0x25, 0x31, - 0x4e, 0x71, 0x4f, 0x8c, 0x9f, 0xce, 0x67, 0xad, 0x24, 0x21, 0x95, 0xcf, 0x24, 0x80, 0x8c, 0x96, - 0x44, 0x25, 0xf4, 0xf8, 0x86, 0x43, 0x0e, 0x24, 0xd9, 0x5f, 0x9d, 0xc8, 0xab, 0x86, 0xb1, 0x87, - 0xd6, 0x42, 0x48, 0x81, 0x44, 0xb8, 0x7e, 0xfa, 0xba, 0x3c, 0x62, 0x75, 0xdc, 0x57, 0xff, 0x81, - 0xf6, 0x97, 0xf9, 0x9f, 0x23, 0x4b, 0x3b, 0x1f, 0x59, 0xda, 0x9f, 0x91, 0xa5, 0x7d, 0xba, 0xb0, - 0xe6, 0xce, 0x2f, 0xac, 0xb9, 0xdf, 0x17, 0xd6, 0x1c, 0x7a, 0x16, 0xd1, 0xcc, 0xbe, 0xf5, 0x1b, - 0xd7, 0xde, 0x3a, 0xae, 0x41, 0x79, 0x58, 0xe1, 0x89, 0xf7, 0xc6, 0xd3, 0xde, 0xb3, 0x5e, 0xc2, - 0xfb, 0x65, 0x68, 0x47, 0x34, 0x73, 0x22, 0x5a, 0x64, 0xb4, 0x70, 0x72, 0x9c, 0xc2, 0x19, 0xce, - 0x9d, 0x61, 0x6b, 0xf2, 0x33, 0xea, 0x43, 0x42, 0x0a, 0xe7, 0xd6, 0x9f, 0x89, 0x97, 0xb3, 0x98, - 0x82, 0xbe, 0xe9, 0xf3, 0x5e, 0xe7, 0xf8, 0x87, 0xde, 0xf0, 0xd4, 0xf6, 0x1d, 0xb1, 0xfd, 0xcc, - 0x82, 0xf6, 0xbb, 0xb1, 0xe0, 0x57, 0x4d, 0xed, 0x0a, 0x6a, 0x77, 0x86, 0xda, 0x55, 0xd4, 0x91, - 0xfe, 0xfc, 0xb6, 0xd4, 0xee, 0x2b, 0xaf, 0xfd, 0x1a, 0x73, 0x88, 0x81, 0xc3, 0x5f, 0xfd, 0xa9, - 0x92, 0xb9, 0xae, 0xd0, 0xb9, 0xee, 0x8c, 0xd0, 0x75, 0x95, 0x32, 0x5c, 0x94, 0xdf, 0x9c, 0xfd, - 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1c, 0x1e, 0x6a, 0x61, 0x36, 0x05, 0x00, 0x00, + 0x14, 0x6f, 0xd2, 0x52, 0xec, 0x54, 0xdb, 0x92, 0xfe, 0x21, 0x14, 0x0c, 0xa5, 0x2a, 0xb4, 0x8a, + 0x09, 0xbb, 0x15, 0x84, 0x78, 0xea, 0xee, 0x41, 0x7a, 0x50, 0x42, 0x5a, 0x3d, 0xc8, 0x42, 0x78, + 0x49, 0xc6, 0xdd, 0xb0, 0xc9, 0xcc, 0x90, 0x4c, 0xb6, 0xad, 0x9f, 0x42, 0xd0, 0x4f, 0xa0, 0x37, + 0x3f, 0x89, 0x78, 0xea, 0xd1, 0xa3, 0x6c, 0xf1, 0xe2, 0xa7, 0x90, 0x99, 0x24, 0x9b, 0xdd, 0xee, + 0x42, 0x97, 0xde, 0xf2, 0xde, 0xfb, 0xfd, 0x7e, 0xef, 0xbd, 0x5f, 0x66, 0x06, 0xb5, 0x18, 0x26, + 0x79, 0xe2, 0xa7, 0x60, 0x05, 0x34, 0xc5, 0x16, 0x4f, 0x81, 0x64, 0x0c, 0x52, 0x4c, 0xb8, 0xc7, + 0x52, 0x4a, 0x3f, 0x66, 0xd6, 0xa0, 0x01, 0x31, 0xeb, 0x41, 0x63, 0x46, 0xcd, 0x64, 0x29, 0xe5, + 0x54, 0x3b, 0xac, 0x34, 0x4c, 0xa1, 0x61, 0xce, 0xc0, 0x55, 0x1a, 0xbb, 0x4f, 0x27, 0xdb, 0x05, + 0xe9, 0x25, 0xe3, 0xb4, 0x6e, 0x51, 0xc4, 0x85, 0xec, 0xee, 0xe3, 0x49, 0x6c, 0x88, 0x2f, 0x6a, + 0x60, 0x88, 0x2f, 0x0a, 0xd4, 0xfe, 0x77, 0x15, 0xa1, 0x53, 0x86, 0x49, 0xe8, 0x88, 0x56, 0x5a, + 0x84, 0x76, 0x32, 0x0e, 0x1c, 0x7b, 0x01, 0x4d, 0x92, 0x88, 0x27, 0xa3, 0x21, 0x74, 0x65, 0x4f, + 0x39, 0x58, 0x6d, 0x1e, 0x99, 0x93, 0xc3, 0x96, 0x1d, 0x2b, 0x61, 0xf3, 0x54, 0x90, 0xdb, 0x23, + 0xae, 0x14, 0x75, 0xb7, 0xb2, 0x19, 0x59, 0xed, 0x25, 0x5a, 0x22, 0x94, 0x63, 0x5d, 0x95, 0xc2, + 0x8f, 0x6e, 0x11, 0x7e, 0x4b, 0x39, 0x76, 0x25, 0x41, 0x7b, 0x88, 0xd0, 0xc0, 0xf3, 0xe3, 0x88, + 0x84, 0x11, 0xe9, 0xea, 0xcb, 0x7b, 0xca, 0xc1, 0x7d, 0x77, 0x65, 0xd0, 0x2a, 0x13, 0x5a, 0x13, + 0x6d, 0x67, 0x62, 0x21, 0x0f, 0x72, 0xde, 0xf3, 0x52, 0x20, 0x21, 0x4d, 0xa2, 0x4f, 0x38, 0xd5, + 0x57, 0x24, 0x72, 0x53, 0x16, 0x8f, 0x73, 0xde, 0x73, 0x47, 0x25, 0x6d, 0x0d, 0xa9, 0xd0, 0xd7, + 0x91, 0x04, 0xa8, 0xd0, 0x17, 0x31, 0xe9, 0xeb, 0xab, 0x45, 0x4c, 0xfa, 0xfb, 0x7f, 0x55, 0xb4, + 0x76, 0x7a, 0x0e, 0xac, 0x1d, 0x43, 0x94, 0x14, 0xe3, 0x3b, 0x68, 0x2d, 0x3b, 0x07, 0xe6, 0xb1, + 0x18, 0x22, 0xc2, 0xf1, 0x05, 0x2f, 0x1d, 0x3a, 0xbc, 0xb1, 0x88, 0xb0, 0xba, 0xb6, 0xe7, 0x1c, + 0x98, 0x53, 0x11, 0xdc, 0x07, 0xd9, 0x78, 0xa8, 0x75, 0xd1, 0xb6, 0x54, 0x9c, 0xb2, 0x7e, 0xe9, + 0xee, 0xd6, 0x6f, 0x0a, 0xc5, 0x9b, 0xce, 0x17, 0xdb, 0x2d, 0x57, 0xdb, 0x69, 0x6d, 0x84, 0x62, + 0x48, 0xfc, 0x10, 0xbc, 0x86, 0x17, 0xe9, 0x5b, 0xb2, 0xdb, 0x93, 0x5b, 0xba, 0x1d, 0x27, 0x34, + 0x27, 0xdc, 0xbd, 0x57, 0x10, 0x1b, 0x27, 0x63, 0x22, 0x4d, 0x2f, 0xd2, 0xb7, 0xef, 0x20, 0xd2, + 0x3c, 0xd9, 0xff, 0xa2, 0xa0, 0xad, 0x77, 0x24, 0xc4, 0x31, 0xee, 0x8a, 0x65, 0xc6, 0xdd, 0xde, + 0xc8, 0x89, 0x4f, 0xe5, 0x1f, 0xf6, 0x40, 0xd2, 0x4a, 0xbf, 0xe7, 0xec, 0xb1, 0x3e, 0xa2, 0x17, + 0x09, 0xed, 0x10, 0x6d, 0xf8, 0x10, 0x03, 0x09, 0x70, 0x7d, 0x96, 0x54, 0x69, 0xc9, 0x7a, 0x99, + 0xaf, 0x4e, 0x54, 0xeb, 0xeb, 0xe2, 0xcf, 0xa1, 0xa1, 0x5c, 0x0d, 0x0d, 0xe5, 0xcf, 0xd0, 0x50, + 0x3e, 0x5f, 0x1b, 0x0b, 0x57, 0xd7, 0xc6, 0xc2, 0xef, 0x6b, 0x63, 0x01, 0x3d, 0x0f, 0x68, 0x62, + 0xce, 0x7d, 0x7f, 0x5b, 0x3b, 0x67, 0x75, 0x51, 0x2e, 0x96, 0x39, 0xe2, 0x16, 0x3a, 0xca, 0x07, + 0xd6, 0x8d, 0x78, 0x2f, 0xf7, 0xcd, 0x80, 0x26, 0x56, 0x40, 0xb3, 0x84, 0x66, 0x56, 0x8a, 0x63, + 0xb8, 0xc4, 0xa9, 0x35, 0x68, 0x8e, 0x3e, 0x83, 0x1e, 0x44, 0x24, 0xb3, 0xe6, 0x7e, 0x74, 0x5e, + 0x4d, 0xd7, 0xaa, 0xd2, 0x37, 0x75, 0xd1, 0x69, 0x9f, 0xfd, 0x50, 0x0f, 0x9c, 0x6a, 0xfa, 0xb6, + 0x98, 0x7e, 0x6a, 0x40, 0xf3, 0x7d, 0x49, 0xf8, 0x55, 0x43, 0x3b, 0x02, 0xda, 0x99, 0x82, 0x76, + 0x2a, 0xe8, 0x50, 0x7d, 0x31, 0x2f, 0xb4, 0xf3, 0xda, 0x69, 0xbd, 0xc1, 0x1c, 0x42, 0xe0, 0xf0, + 0x4f, 0x7d, 0x56, 0xd1, 0x6c, 0x5b, 0xf0, 0x6c, 0x7b, 0x8a, 0x68, 0xdb, 0x15, 0xd3, 0x5f, 0x96, + 0x2f, 0xd8, 0xd1, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x85, 0x1d, 0x0f, 0xfc, 0x84, 0x05, 0x00, + 0x00, } func (m *SpendProof) Marshal() (dAtA []byte, err error) { @@ -395,19 +396,33 @@ func (m *SwapClaimProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Lambda_2I != 0 { - i = encodeVarintTransparentProofs(dAtA, i, uint64(m.Lambda_2I)) + if m.Lambda_2I != nil { + { + size, err := m.Lambda_2I.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xa8 + dAtA[i] = 0xaa } - if m.Lambda_1I != 0 { - i = encodeVarintTransparentProofs(dAtA, i, uint64(m.Lambda_1I)) + if m.Lambda_1I != nil { + { + size, err := m.Lambda_1I.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xa0 + dAtA[i] = 0xa2 } if len(m.Nk) > 0 { i -= len(m.Nk) @@ -547,11 +562,13 @@ func (m *SwapClaimProof) Size() (n int) { if l > 0 { n += 1 + l + sovTransparentProofs(uint64(l)) } - if m.Lambda_1I != 0 { - n += 2 + sovTransparentProofs(uint64(m.Lambda_1I)) + if m.Lambda_1I != nil { + l = m.Lambda_1I.Size() + n += 2 + l + sovTransparentProofs(uint64(l)) } - if m.Lambda_2I != 0 { - n += 2 + sovTransparentProofs(uint64(m.Lambda_2I)) + if m.Lambda_2I != nil { + l = m.Lambda_2I.Size() + n += 2 + l + sovTransparentProofs(uint64(l)) } return n } @@ -973,10 +990,10 @@ func (m *SwapClaimProof) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 20: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1I", wireType) } - m.Lambda_1I = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransparentProofs @@ -986,16 +1003,33 @@ func (m *SwapClaimProof) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Lambda_1I |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Lambda_1I == nil { + m.Lambda_1I = &v1alpha1.Amount{} + } + if err := m.Lambda_1I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 21: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2I", wireType) } - m.Lambda_2I = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransparentProofs @@ -1005,11 +1039,28 @@ func (m *SwapClaimProof) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Lambda_2I |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthTransparentProofs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransparentProofs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Lambda_2I == nil { + m.Lambda_2I = &v1alpha1.Amount{} + } + if err := m.Lambda_2I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTransparentProofs(dAtA[iNdEx:]) From deef5eb90c1dec9b598455f7fcd1086e0e8ecb72 Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Tue, 11 Apr 2023 16:12:30 -0600 Subject: [PATCH 23/46] Add sr25519 support (#1120) * Migrate to cometbft * Additional replaces * Register comet proto types * Add sr25519 support * bump ictest * Add keys test * Update supported algos comment --- cmd/keys.go | 42 ++- cregistry/chain_info.go | 32 +- go.mod | 2 +- interchaintest/go.mod | 16 +- interchaintest/go.sum | 32 +- interchaintest/relayer.go | 8 +- proto/cosmos/crypto/sr25519/keys.proto | 20 ++ relayer/chain.go | 4 +- relayer/chains/cosmos/keys.go | 30 +- relayer/chains/cosmos/keys/sr25519/algo.go | 46 +++ relayer/chains/cosmos/keys/sr25519/keys.pb.go | 320 ++++++++++++++++++ relayer/chains/cosmos/keys/sr25519/privkey.go | 47 +++ relayer/chains/cosmos/keys/sr25519/pubkey.go | 38 +++ relayer/chains/cosmos/keys_test.go | 104 ++++++ relayer/chains/cosmos/provider.go | 41 +-- relayer/chains/mock/mock_chain_processor.go | 3 +- relayer/chains/penumbra/keys.go | 4 +- relayer/provider/provider.go | 6 +- 18 files changed, 710 insertions(+), 85 deletions(-) create mode 100644 proto/cosmos/crypto/sr25519/keys.proto create mode 100644 relayer/chains/cosmos/keys/sr25519/algo.go create mode 100644 relayer/chains/cosmos/keys/sr25519/keys.pb.go create mode 100644 relayer/chains/cosmos/keys/sr25519/privkey.go create mode 100644 relayer/chains/cosmos/keys/sr25519/pubkey.go create mode 100644 relayer/chains/cosmos/keys_test.go diff --git a/cmd/keys.go b/cmd/keys.go index 9148946b5..aa915d065 100644 --- a/cmd/keys.go +++ b/cmd/keys.go @@ -22,6 +22,7 @@ import ( "io" "strings" + "github.com/cosmos/cosmos-sdk/crypto/hd" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" "github.com/spf13/cobra" @@ -30,6 +31,7 @@ import ( const ( flagCoinType = "coin-type" + flagAlgo = "signing-algorithm" defaultCoinType uint32 = sdk.CoinType ) @@ -75,7 +77,9 @@ $ %s k a cosmoshub testkey`, appName, appName, appName)), return errKeyExists(keyName) } - coinType, err := cmd.Flags().GetInt32(flagCoinType) + cmdFlags := cmd.Flags() + + coinType, err := cmdFlags.GetInt32(flagCoinType) if err != nil { return err } @@ -88,7 +92,20 @@ $ %s k a cosmoshub testkey`, appName, appName, appName)), } } - ko, err := chain.ChainProvider.AddKey(keyName, uint32(coinType)) + algo, err := cmdFlags.GetString(flagAlgo) + if err != nil { + return err + } + + if algo == "" { + if ccp, ok := chain.ChainProvider.(*cosmos.CosmosProvider); ok { + algo = ccp.PCfg.SigningAlgorithm + } else { + algo = string(hd.Secp256k1Type) + } + } + + ko, err := chain.ChainProvider.AddKey(keyName, uint32(coinType), algo) if err != nil { return fmt.Errorf("failed to add key: %w", err) } @@ -103,6 +120,7 @@ $ %s k a cosmoshub testkey`, appName, appName, appName)), }, } cmd.Flags().Int32(flagCoinType, -1, "coin type number for HD derivation") + cmd.Flags().String(flagAlgo, "", "signing algorithm for key (secp256k1, sr25519)") return cmd } @@ -129,7 +147,9 @@ $ %s k r cosmoshub faucet-key "[mnemonic-words]"`, appName, appName)), return errKeyExists(keyName) } - coinType, err := cmd.Flags().GetInt32(flagCoinType) + cmdFlags := cmd.Flags() + + coinType, err := cmdFlags.GetInt32(flagCoinType) if err != nil { return err } @@ -142,7 +162,20 @@ $ %s k r cosmoshub faucet-key "[mnemonic-words]"`, appName, appName)), } } - address, err := chain.ChainProvider.RestoreKey(keyName, args[2], uint32(coinType)) + algo, err := cmdFlags.GetString(flagAlgo) + if err != nil { + return err + } + + if algo == "" { + if ccp, ok := chain.ChainProvider.(*cosmos.CosmosProvider); ok { + algo = ccp.PCfg.SigningAlgorithm + } else { + algo = string(hd.Secp256k1Type) + } + } + + address, err := chain.ChainProvider.RestoreKey(keyName, args[2], uint32(coinType), algo) if err != nil { return err } @@ -152,6 +185,7 @@ $ %s k r cosmoshub faucet-key "[mnemonic-words]"`, appName, appName)), }, } cmd.Flags().Int32(flagCoinType, -1, "coin type number for HD derivation") + cmd.Flags().String(flagAlgo, "", "signing algorithm for key (secp256k1, sr25519)") return cmd } diff --git a/cregistry/chain_info.go b/cregistry/chain_info.go index 978142f70..509b13271 100644 --- a/cregistry/chain_info.go +++ b/cregistry/chain_info.go @@ -55,8 +55,9 @@ type ChainInfo struct { Genesis struct { GenesisURL string `json:"genesis_url"` } `json:"genesis"` - Slip44 *int `json:"slip44"` - Codebase struct { + Slip44 *int `json:"slip44"` + SigningAlgorithm string `json:"signing-algorithm"` + Codebase struct { GitRepo string `json:"git_repo"` RecommendedVersion string `json:"recommended_version"` CompatibleVersions []string `json:"compatible_versions"` @@ -251,18 +252,19 @@ func (c ChainInfo) GetChainConfig(ctx context.Context) (*cosmos.CosmosProviderCo } return &cosmos.CosmosProviderConfig{ - Key: "default", - ChainID: c.ChainID, - RPCAddr: rpc, - AccountPrefix: c.Bech32Prefix, - KeyringBackend: "test", - GasAdjustment: 1.2, - GasPrices: gasPrices, - KeyDirectory: home, - Debug: debug, - Timeout: "20s", - OutputFormat: "json", - SignModeStr: "direct", - Slip44: c.Slip44, + Key: "default", + ChainID: c.ChainID, + RPCAddr: rpc, + AccountPrefix: c.Bech32Prefix, + KeyringBackend: "test", + GasAdjustment: 1.2, + GasPrices: gasPrices, + KeyDirectory: home, + Debug: debug, + Timeout: "20s", + OutputFormat: "json", + SignModeStr: "direct", + Slip44: c.Slip44, + SigningAlgorithm: c.SigningAlgorithm, }, nil } diff --git a/go.mod b/go.mod index a452df9fe..ab961467d 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,6 @@ require ( golang.org/x/term v0.6.0 golang.org/x/text v0.8.0 google.golang.org/grpc v1.53.0 - google.golang.org/protobuf v1.29.1 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -176,6 +175,7 @@ require ( google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect + google.golang.org/protobuf v1.29.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v0.5.5 // indirect diff --git a/interchaintest/go.mod b/interchaintest/go.mod index 66f66cf4e..58fc82bef 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -5,13 +5,13 @@ go 1.20 require ( cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462 github.com/cometbft/cometbft v0.37.0 - github.com/cosmos/cosmos-sdk v0.47.0 + github.com/cosmos/cosmos-sdk v0.47.1 github.com/cosmos/ibc-go/v7 v7.0.0 github.com/cosmos/relayer/v2 v2.0.0 github.com/docker/docker v20.10.24+incompatible github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 github.com/moby/moby v20.10.22+incompatible - github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324180345-a06599d2eb8c + github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230405184655-2e6d60073e71 github.com/stretchr/testify v1.8.2 go.uber.org/zap v1.24.0 golang.org/x/sync v0.1.0 @@ -27,11 +27,11 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.3 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/math v1.0.0-rc.0 // indirect + cosmossdk.io/math v1.0.0 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect - github.com/99designs/keyring v1.2.1 // indirect + github.com/99designs/keyring v1.2.2 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect github.com/ChainSafe/go-schnorrkel/1 v0.0.0-00010101000000-000000000000 // indirect @@ -50,7 +50,7 @@ require ( github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect - github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.10 // indirect + github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.12 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect @@ -211,7 +211,7 @@ require ( go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect golang.org/x/crypto v0.7.0 // indirect - golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 // indirect + golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect @@ -223,7 +223,7 @@ require ( google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect - google.golang.org/grpc v1.53.0 // indirect + google.golang.org/grpc v1.54.0 // indirect google.golang.org/protobuf v1.29.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect @@ -237,7 +237,7 @@ require ( modernc.org/mathutil v1.5.0 // indirect modernc.org/memory v1.5.0 // indirect modernc.org/opt v0.1.3 // indirect - modernc.org/sqlite v1.21.0 // indirect + modernc.org/sqlite v1.21.1 // indirect modernc.org/strutil v1.1.3 // indirect modernc.org/token v1.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect diff --git a/interchaintest/go.sum b/interchaintest/go.sum index 656c273e9..f64f4e541 100644 --- a/interchaintest/go.sum +++ b/interchaintest/go.sum @@ -197,8 +197,8 @@ cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/math v1.0.0-rc.0 h1:ml46ukocrAAoBpYKMidF0R2tQJ1Uxfns0yH8wqgMAFc= -cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= +cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw= +cosmossdk.io/math v1.0.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462 h1:g8muUHnXL8vhld2Sjilyhb1UQObc+x9GVuDK43TYZns= cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462/go.mod h1:4Dd3NLoLYoN90kZ0uyHoTHzVVk9+J0v4HhZRBNTAq2c= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -208,8 +208,8 @@ filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= -github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= -github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= +github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= +github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= @@ -348,8 +348,8 @@ github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInq github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.10 h1:HW3XP9G3mXr0gYPfxCAQLD29u+Ys0uIeotv9RWfnhrM= -github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.10/go.mod h1:5g1oM4Zu3BOaLpsKQ+O8PAv2kNuq+kPcA1VzFbsSqxE= +github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.12 h1:DCYWIBOalB0mKKfUg2HhtGgIkBbMA1fnlnkZp7fHB18= +github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.12/go.mod h1:5g1oM4Zu3BOaLpsKQ+O8PAv2kNuq+kPcA1VzFbsSqxE= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -510,8 +510,8 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.0 h1:GKYtBpvjwuDEVix1vdnQpq7PuEOnItuEK0vdAL2cZ5g= -github.com/cosmos/cosmos-sdk v0.47.0/go.mod h1:FTtZbqiHCZ2vun9WrPq6qLQafNKkAuIhLAxzLjr2TiI= +github.com/cosmos/cosmos-sdk v0.47.1 h1:HnaCYtaAMWZp1SdlwwE1mPJ8kFlZ/TuEJ/ciNXH6Uno= +github.com/cosmos/cosmos-sdk v0.47.1/go.mod h1:14tO5KQaTrl2q3OxBnDRfue7TRN9zkXS0cLutrSqkOo= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -1370,8 +1370,8 @@ github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jH github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/strangelove-ventures/go-subkey v1.0.7 h1:cOP/Lajg3uxV/tvspu0m6+0Cu+DJgygkEAbx/s+f35I= github.com/strangelove-ventures/go-subkey v1.0.7/go.mod h1:E34izOIEm+sZ1YmYawYRquqBQWeZBjVB4pF7bMuhc1c= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324180345-a06599d2eb8c h1:vGl7skxBHHW5qE88Dc9q+ZOxwJJIYDNjqmQTPHiPUF0= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230324180345-a06599d2eb8c/go.mod h1:/pjBA7gAa1AuMphaLp8joBjVOAHqewe8UenyQ45sh9M= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230405184655-2e6d60073e71 h1:bbhg6Iol/5UR65+4kPaki+3mNUgyvcQe+ZHrleorKKY= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230405184655-2e6d60073e71/go.mod h1:tkBlI3o0Z1jgkZIkckOLIHJuR+S0LbGoBEGg4NQ4Aa8= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1528,8 +1528,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 h1:LGJsf5LRplCck6jUCH3dBL2dmycNruWNF5xugkSlfXw= -golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -2122,8 +2122,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -2245,8 +2245,8 @@ modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.21.0 h1:4aP4MdUf15i3R3M2mx6Q90WHKz3nZLoz96zlB6tNdow= -modernc.org/sqlite v1.21.0/go.mod h1:XwQ0wZPIh1iKb5mkvCJ3szzbhk+tykC8ZWqTRTgYRwI= +modernc.org/sqlite v1.21.1 h1:GyDFqNnESLOhwwDRaHGdp2jKLDzpyT/rNLglX3ZkMSU= +modernc.org/sqlite v1.21.1/go.mod h1:XwQ0wZPIh1iKb5mkvCJ3szzbhk+tykC8ZWqTRTgYRwI= modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/tcl v1.15.1 h1:mOQwiEK4p7HruMZcwKTZPw/aqtGM4aY00uzWhlKKYws= diff --git a/interchaintest/relayer.go b/interchaintest/relayer.go index ded1c97ec..a57c2add3 100644 --- a/interchaintest/relayer.go +++ b/interchaintest/relayer.go @@ -85,8 +85,8 @@ func (r *Relayer) AddChainConfiguration(ctx context.Context, _ ibc.RelayerExecRe return nil } -func (r *Relayer) AddKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID, keyName string, coinType string) (ibc.Wallet, error) { - res := r.sys().RunC(ctx, r.log(), "keys", "add", chainID, keyName, "--coin-type", coinType) +func (r *Relayer) AddKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID, keyName, coinType, signingAlgorithm string) (ibc.Wallet, error) { + res := r.sys().RunC(ctx, r.log(), "keys", "add", chainID, keyName, "--coin-type", coinType, "--signing-algorithm", signingAlgorithm) if res.Err != nil { return nil, res.Err } @@ -99,8 +99,8 @@ func (r *Relayer) AddKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID return w, nil } -func (r *Relayer) RestoreKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID, keyName, coinType, mnemonic string) error { - res := r.sys().RunC(ctx, r.log(), "keys", "restore", chainID, keyName, mnemonic, "--coin-type", coinType) +func (r *Relayer) RestoreKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID, keyName, coinType, signingAlgorithm, mnemonic string) error { + res := r.sys().RunC(ctx, r.log(), "keys", "restore", chainID, keyName, mnemonic, "--coin-type", coinType, "--signing-algorithm", signingAlgorithm) if res.Err != nil { return res.Err } diff --git a/proto/cosmos/crypto/sr25519/keys.proto b/proto/cosmos/crypto/sr25519/keys.proto new file mode 100644 index 000000000..eed481375 --- /dev/null +++ b/proto/cosmos/crypto/sr25519/keys.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +// buf:lint:ignore PACKAGE_VERSION_SUFFIX +package cosmos.crypto.sr25519; + +import "gogoproto/gogo.proto"; + +// Originally github.com/cosmos/cosmos-sdk/crypto/keys/sr25519 +option go_package = "github.com/cosmos/relayer/v2/relayer/chains/cosmos/keys/sr25519"; + +option (gogoproto.messagename_all) = true; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.goproto_getters_all) = false; + +// PubKey defines a sr25519 ECDSA public key. +message PubKey { + option (gogoproto.goproto_stringer) = false; + + bytes key = 1 [(gogoproto.casttype) = "github.com/cometbft/cometbft/crypto/sr25519.PubKey"]; +} diff --git a/relayer/chain.go b/relayer/chain.go index 3dafdba99..a23229bd8 100644 --- a/relayer/chain.go +++ b/relayer/chain.go @@ -8,6 +8,7 @@ import ( "time" "github.com/avast/retry-go/v4" + "github.com/cosmos/cosmos-sdk/crypto/hd" clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap" @@ -20,6 +21,7 @@ var ( RtyErr = retry.LastErrorOnly(true) defaultCoinType uint32 = 118 + defaultAlgo string = string(hd.Secp256k1Type) ) // Chain represents the necessary data for connecting to and identifying a chain and its counterparties @@ -146,7 +148,7 @@ func (c *Chain) CreateTestKey() error { if c.ChainProvider.KeyExists(c.ChainProvider.Key()) { return fmt.Errorf("key {%s} exists for chain {%s}", c.ChainProvider.Key(), c.ChainID()) } - _, err := c.ChainProvider.AddKey(c.ChainProvider.Key(), defaultCoinType) + _, err := c.ChainProvider.AddKey(c.ChainProvider.Key(), defaultCoinType, defaultAlgo) return err } diff --git a/relayer/chains/cosmos/keys.go b/relayer/chains/cosmos/keys.go index 272c96b30..0ccdd0938 100644 --- a/relayer/chains/cosmos/keys.go +++ b/relayer/chains/cosmos/keys.go @@ -9,6 +9,7 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/keyring" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/go-bip39" + "github.com/cosmos/relayer/v2/relayer/chains/cosmos/keys/sr25519" "github.com/cosmos/relayer/v2/relayer/codecs/ethermint" "github.com/cosmos/relayer/v2/relayer/codecs/injective" "github.com/cosmos/relayer/v2/relayer/provider" @@ -19,12 +20,14 @@ const ethereumCoinType = uint32(60) var ( // SupportedAlgorithms defines the list of signing algorithms used on Evmos: // - secp256k1 (Cosmos) - // - eth_secp256k1 (Ethereum) - SupportedAlgorithms = keyring.SigningAlgoList{hd.Secp256k1, ethermint.EthSecp256k1, injective.EthSecp256k1} + // - sr25519 (Cosmos) + // - eth_secp256k1 (Ethereum, Injective) + SupportedAlgorithms = keyring.SigningAlgoList{hd.Secp256k1, sr25519.Sr25519, ethermint.EthSecp256k1, injective.EthSecp256k1} // SupportedAlgorithmsLedger defines the list of signing algorithms used on Evmos for the Ledger device: // - secp256k1 (Cosmos) - // - eth_secp256k1 (Ethereum) - SupportedAlgorithmsLedger = keyring.SigningAlgoList{hd.Secp256k1, ethermint.EthSecp256k1, injective.EthSecp256k1} + // - sr25519 (Cosmos) + // - eth_secp256k1 (Ethereum, Injective) + SupportedAlgorithmsLedger = keyring.SigningAlgoList{hd.Secp256k1, sr25519.Sr25519, ethermint.EthSecp256k1, injective.EthSecp256k1} ) // KeyringAlgoOptions defines a function keys options for the ethereum Secp256k1 curve. @@ -58,8 +61,8 @@ func (cc *CosmosProvider) KeystoreCreated(path string) bool { // AddKey generates a new mnemonic which is then converted to a private key and BIP-39 HD Path and persists it to the keystore. // It fails if there is an existing key with the same address. -func (cc *CosmosProvider) AddKey(name string, coinType uint32) (output *provider.KeyOutput, err error) { - ko, err := cc.KeyAddOrRestore(name, coinType) +func (cc *CosmosProvider) AddKey(name string, coinType uint32, signingAlgorithm string) (output *provider.KeyOutput, err error) { + ko, err := cc.KeyAddOrRestore(name, coinType, signingAlgorithm) if err != nil { return nil, err } @@ -68,8 +71,8 @@ func (cc *CosmosProvider) AddKey(name string, coinType uint32) (output *provider // RestoreKey converts a mnemonic to a private key and BIP-39 HD Path and persists it to the keystore. // It fails if there is an existing key with the same address. -func (cc *CosmosProvider) RestoreKey(name, mnemonic string, coinType uint32) (address string, err error) { - ko, err := cc.KeyAddOrRestore(name, coinType, mnemonic) +func (cc *CosmosProvider) RestoreKey(name, mnemonic string, coinType uint32, signingAlgorithm string) (address string, err error) { + ko, err := cc.KeyAddOrRestore(name, coinType, signingAlgorithm, mnemonic) if err != nil { return "", err } @@ -78,10 +81,17 @@ func (cc *CosmosProvider) RestoreKey(name, mnemonic string, coinType uint32) (ad // KeyAddOrRestore either generates a new mnemonic or uses the specified mnemonic and converts it to a private key // and BIP-39 HD Path which is then persisted to the keystore. It fails if there is an existing key with the same address. -func (cc *CosmosProvider) KeyAddOrRestore(keyName string, coinType uint32, mnemonic ...string) (*provider.KeyOutput, error) { +func (cc *CosmosProvider) KeyAddOrRestore(keyName string, coinType uint32, signingAlgorithm string, mnemonic ...string) (*provider.KeyOutput, error) { var mnemonicStr string var err error - algo := keyring.SignatureAlgo(hd.Secp256k1) + + var algo keyring.SignatureAlgo + switch signingAlgorithm { + case string(hd.Sr25519Type): + algo = sr25519.Sr25519 + default: + algo = hd.Secp256k1 + } if len(mnemonic) > 0 { mnemonicStr = mnemonic[0] diff --git a/relayer/chains/cosmos/keys/sr25519/algo.go b/relayer/chains/cosmos/keys/sr25519/algo.go new file mode 100644 index 000000000..d0c0eca96 --- /dev/null +++ b/relayer/chains/cosmos/keys/sr25519/algo.go @@ -0,0 +1,46 @@ +package sr25519 + +import ( + bip39 "github.com/cosmos/go-bip39" + + tmsr25519 "github.com/cometbft/cometbft/crypto/sr25519" + "github.com/cosmos/cosmos-sdk/crypto/hd" + "github.com/cosmos/cosmos-sdk/crypto/types" +) + +var Sr25519 = sr25519Algo{} + +type sr25519Algo struct { +} + +func (s sr25519Algo) Name() hd.PubKeyType { + return hd.Sr25519Type +} + +// Derive derives and returns the sr25519 private key for the given seed and HD path. +func (s sr25519Algo) Derive() hd.DeriveFn { + return func(mnemonic string, bip39Passphrase, hdPath string) ([]byte, error) { + seed, err := bip39.NewSeedWithErrorChecking(mnemonic, bip39Passphrase) + if err != nil { + return nil, err + } + + masterPriv, ch := hd.ComputeMastersFromSeed(seed) + if len(hdPath) == 0 { + return masterPriv[:], nil + } + derivedKey, err := hd.DerivePrivateKeyForPath(masterPriv, ch, hdPath) + + return derivedKey, err + } +} + +// Generate generates a sr25519 private key from the given bytes. +func (s sr25519Algo) Generate() hd.GenerateFn { + return func(bz []byte) types.PrivKey { + var bzArr = make([]byte, 32) + copy(bzArr, bz) + + return &PrivKey{PrivKey: tmsr25519.GenPrivKeyFromSecret(bzArr)} + } +} diff --git a/relayer/chains/cosmos/keys/sr25519/keys.pb.go b/relayer/chains/cosmos/keys/sr25519/keys.pb.go new file mode 100644 index 000000000..49a3599b7 --- /dev/null +++ b/relayer/chains/cosmos/keys/sr25519/keys.pb.go @@ -0,0 +1,320 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cosmos/crypto/sr25519/keys.proto + +// buf:lint:ignore PACKAGE_VERSION_SUFFIX + +package sr25519 + +import ( + fmt "fmt" + github_com_cometbft_cometbft_crypto_sr25519 "github.com/cometbft/cometbft/crypto/sr25519" + proto "github.com/cosmos/gogoproto/proto" + _ "github.com/gogo/protobuf/gogoproto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// PubKey defines a sr25519 ECDSA public key. +type PubKey struct { + Key github_com_cometbft_cometbft_crypto_sr25519.PubKey `protobuf:"bytes,1,opt,name=key,proto3,casttype=github.com/cometbft/cometbft/crypto/sr25519.PubKey" json:"key,omitempty"` +} + +func (m *PubKey) Reset() { *m = PubKey{} } +func (*PubKey) ProtoMessage() {} +func (*PubKey) Descriptor() ([]byte, []int) { + return fileDescriptor_daddabaf35039fbd, []int{0} +} +func (m *PubKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PubKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PubKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_PubKey.Merge(m, src) +} +func (m *PubKey) XXX_Size() int { + return m.Size() +} +func (m *PubKey) XXX_DiscardUnknown() { + xxx_messageInfo_PubKey.DiscardUnknown(m) +} + +var xxx_messageInfo_PubKey proto.InternalMessageInfo + +func (*PubKey) XXX_MessageName() string { + return "cosmos.crypto.sr25519.PubKey" +} +func init() { + proto.RegisterType((*PubKey)(nil), "cosmos.crypto.sr25519.PubKey") +} + +func init() { proto.RegisterFile("cosmos/crypto/sr25519/keys.proto", fileDescriptor_daddabaf35039fbd) } + +var fileDescriptor_daddabaf35039fbd = []byte{ + // 222 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xce, 0x2f, 0xce, + 0xcd, 0x2f, 0xd6, 0x4f, 0x2e, 0xaa, 0x2c, 0x28, 0xc9, 0xd7, 0x2f, 0x2e, 0x32, 0x32, 0x35, 0x35, + 0xb4, 0xd4, 0xcf, 0x4e, 0xad, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x85, 0xa8, + 0xd0, 0x83, 0xa8, 0xd0, 0x83, 0xaa, 0x90, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0xab, 0xd0, 0x07, + 0xb1, 0x20, 0x8a, 0x95, 0x22, 0xb8, 0xd8, 0x02, 0x4a, 0x93, 0xbc, 0x53, 0x2b, 0x85, 0x3c, 0xb8, + 0x98, 0xb3, 0x53, 0x2b, 0x25, 0x18, 0x15, 0x18, 0x35, 0x78, 0x9c, 0xcc, 0x7e, 0xdd, 0x93, 0x37, + 0x4a, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x4d, 0x2d, + 0x49, 0x4a, 0x2b, 0x41, 0x62, 0xa0, 0xd8, 0xaf, 0x07, 0x31, 0x24, 0x08, 0x64, 0x84, 0x15, 0xcb, + 0x8c, 0x05, 0xf2, 0x0c, 0x4e, 0xa9, 0x27, 0x1e, 0xca, 0x31, 0xdc, 0x78, 0x28, 0xc7, 0x70, 0xe2, + 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, + 0xe2, 0xb1, 0x1c, 0xe3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0xd9, 0xa3, 0x58, + 0x02, 0xf6, 0x59, 0x51, 0x6a, 0x4e, 0x62, 0x65, 0x6a, 0x91, 0x7e, 0x99, 0x11, 0x9c, 0x99, 0x9c, + 0x91, 0x98, 0x99, 0x57, 0x0c, 0x53, 0x00, 0xf2, 0x2b, 0xcc, 0xe2, 0x24, 0x36, 0xb0, 0x3f, 0x8c, + 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x24, 0xfd, 0x40, 0x0e, 0x18, 0x01, 0x00, 0x00, +} + +func (m *PubKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PubKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PubKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintKeys(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintKeys(dAtA []byte, offset int, v uint64) int { + offset -= sovKeys(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *PubKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovKeys(uint64(l)) + } + return n +} + +func sovKeys(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozKeys(x uint64) (n int) { + return sovKeys(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *PubKey) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKeys + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PubKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PubKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKeys + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthKeys + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthKeys + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipKeys(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthKeys + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipKeys(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowKeys + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowKeys + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowKeys + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthKeys + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupKeys + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthKeys + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthKeys = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowKeys = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupKeys = fmt.Errorf("proto: unexpected end of group") +) diff --git a/relayer/chains/cosmos/keys/sr25519/privkey.go b/relayer/chains/cosmos/keys/sr25519/privkey.go new file mode 100644 index 000000000..b7b6efae3 --- /dev/null +++ b/relayer/chains/cosmos/keys/sr25519/privkey.go @@ -0,0 +1,47 @@ +package sr25519 + +import ( + tmsr25519 "github.com/cometbft/cometbft/crypto/sr25519" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" +) + +const ( + PrivKeySize = 32 + PrivKeyName = "tendermint/PrivKeySr25519" +) + +type PrivKey struct { + tmsr25519.PrivKey +} + +// type conversion +func (m *PrivKey) PubKey() cryptotypes.PubKey { + pk, ok := m.PrivKey.PubKey().(tmsr25519.PubKey) + if !ok { + panic("invalid public key type for sr25519 private key") + } + return &PubKey{Key: pk} +} + +// type conversion +func (m *PrivKey) Equals(other cryptotypes.LedgerPrivKey) bool { + sk2, ok := other.(*PrivKey) + if !ok { + return false + } + return m.PrivKey.Equals(sk2.PrivKey) +} + +func (m *PrivKey) ProtoMessage() {} + +func (m *PrivKey) Reset() { + m.PrivKey = tmsr25519.PrivKey{} +} + +func (m *PrivKey) String() string { + return string(m.Bytes()) +} + +func GenPrivKey() *PrivKey { + return &PrivKey{tmsr25519.GenPrivKey()} +} diff --git a/relayer/chains/cosmos/keys/sr25519/pubkey.go b/relayer/chains/cosmos/keys/sr25519/pubkey.go new file mode 100644 index 000000000..6325f9960 --- /dev/null +++ b/relayer/chains/cosmos/keys/sr25519/pubkey.go @@ -0,0 +1,38 @@ +package sr25519 + +import ( + "bytes" + + "github.com/cometbft/cometbft/crypto" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" +) + +const PubKeyName = "tendermint/PubKeySr25519" + +func (m *PubKey) Equals(other cryptotypes.PubKey) bool { + pk2, ok := other.(*PubKey) + if !ok { + return false + } + return bytes.Equal(m.Key, pk2.Key) +} + +func (m *PubKey) Address() crypto.Address { + return m.Key.Address() +} + +func (m PubKey) Bytes() []byte { + return m.Key.Bytes() +} + +func (m PubKey) String() string { + return m.Key.String() +} + +func (m PubKey) Type() string { + return "sr25519" +} + +func (m PubKey) VerifySignature(msg []byte, sigBytes []byte) bool { + return m.Key.VerifySignature(msg, sigBytes) +} diff --git a/relayer/chains/cosmos/keys_test.go b/relayer/chains/cosmos/keys_test.go new file mode 100644 index 000000000..987931041 --- /dev/null +++ b/relayer/chains/cosmos/keys_test.go @@ -0,0 +1,104 @@ +package cosmos_test + +import ( + "path/filepath" + "testing" + + "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + "github.com/cosmos/relayer/v2/relayer/provider" + "github.com/stretchr/testify/require" + "go.uber.org/zap" +) + +func testProviderWithKeystore(t *testing.T, accountPrefix string, extraCodecs []string) provider.ChainProvider { + homePath := t.TempDir() + cfg := cosmos.CosmosProviderConfig{ + ChainID: "test", + KeyDirectory: filepath.Join(homePath, "keys"), + KeyringBackend: "test", + Timeout: "10s", + AccountPrefix: accountPrefix, + ExtraCodecs: extraCodecs, + } + p, err := cfg.NewProvider(zap.NewNop(), homePath, true, "test_chain") + if err != nil { + t.Fatalf("Error creating provider: %v", err) + } + err = p.CreateKeystore(homePath) + if err != nil { + t.Fatalf("Error creating keystore: %v", err) + } + return p +} + +// TestKeyRestore restores a test mnemonic +func TestKeyRestore(t *testing.T) { + const ( + keyName = "test_key" + signatureAlgorithm = "secp256k1" + mnemonic = "blind master acoustic speak victory lend kiss grab glad help demand hood roast zone lend sponsor level cheap truck kingdom apology token hover reunion" + accountPrefix = "cosmos" + expectedAddress = "cosmos15cw268ckjj2hgq8q3jf68slwjjcjlvxy57je2u" + coinType = uint32(118) + ) + + p := testProviderWithKeystore(t, accountPrefix, nil) + + address, err := p.RestoreKey(keyName, mnemonic, coinType, signatureAlgorithm) + require.NoError(t, err) + require.Equal(t, expectedAddress, address) +} + +// TestKeyRestoreEth restores a test mnemonic +func TestKeyRestoreEth(t *testing.T) { + const ( + keyName = "test_key" + signatureAlgorithm = "secp256k1" + mnemonic = "three elevator silk family street child flip also leaf inmate call frame shock little legal october vivid enable fetch siege sell burger dolphin green" + accountPrefix = "evmos" + expectedAddress = "evmos1dea7vlekr9e34vugwkvesulglt8fx4e457vk9z" + coinType = uint32(60) + ) + + p := testProviderWithKeystore(t, accountPrefix, []string{"ethermint"}) + + address, err := p.RestoreKey(keyName, mnemonic, coinType, signatureAlgorithm) + require.NoError(t, err) + require.Equal(t, expectedAddress, address) +} + +// TestKeyRestoreInj restores a test mnemonic +func TestKeyRestoreInj(t *testing.T) { + const ( + keyName = "inj_key" + signatureAlgorithm = "secp256k1" + mnemonic = "three elevator silk family street child flip also leaf inmate call frame shock little legal october vivid enable fetch siege sell burger dolphin green" + accountPrefix = "inj" + expectedAddress = "inj1dea7vlekr9e34vugwkvesulglt8fx4e4uk2udj" + coinType = uint32(60) + ) + + p := testProviderWithKeystore(t, accountPrefix, []string{"injective"}) + + address, err := p.RestoreKey(keyName, mnemonic, coinType, signatureAlgorithm) + require.NoError(t, err) + require.Equal(t, expectedAddress, address) +} + +// TestKeyRestoreSr25519 restores a test mnemonic +func TestKeyRestoreSr25519(t *testing.T) { + const ( + keyName = "sei_key" + signatureAlgorithm = "sr25519" + mnemonic = "three elevator silk family street child flip also leaf inmate call frame shock little legal october vivid enable fetch siege sell burger dolphin green" + accountPrefix = "sei" + expectedAddress = "sei1nmlj0guznnt0qyfj4yl6q5g4xuvgly4qw0w026" + coinType = uint32(118) + ) + + p := testProviderWithKeystore(t, accountPrefix, nil) + + address, err := p.RestoreKey(keyName, mnemonic, coinType, signatureAlgorithm) + require.NoError(t, err) + require.Equal(t, expectedAddress, address) +} diff --git a/relayer/chains/cosmos/provider.go b/relayer/chains/cosmos/provider.go index 58d3ca47f..b202b3cc1 100644 --- a/relayer/chains/cosmos/provider.go +++ b/relayer/chains/cosmos/provider.go @@ -35,26 +35,27 @@ var ( const cometEncodingThreshold = "v0.37.0-alpha" type CosmosProviderConfig struct { - KeyDirectory string `json:"key-directory" yaml:"key-directory"` - Key string `json:"key" yaml:"key"` - ChainName string `json:"-" yaml:"-"` - ChainID string `json:"chain-id" yaml:"chain-id"` - RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` - AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` - KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` - GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` - GasPrices string `json:"gas-prices" yaml:"gas-prices"` - MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` - Debug bool `json:"debug" yaml:"debug"` - Timeout string `json:"timeout" yaml:"timeout"` - BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` - OutputFormat string `json:"output-format" yaml:"output-format"` - SignModeStr string `json:"sign-mode" yaml:"sign-mode"` - ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` - Modules []module.AppModuleBasic `json:"-" yaml:"-"` - Slip44 *int `json:"coin-type" yaml:"coin-type"` - Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` - MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` + KeyDirectory string `json:"key-directory" yaml:"key-directory"` + Key string `json:"key" yaml:"key"` + ChainName string `json:"-" yaml:"-"` + ChainID string `json:"chain-id" yaml:"chain-id"` + RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` + AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` + KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` + GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` + GasPrices string `json:"gas-prices" yaml:"gas-prices"` + MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + Debug bool `json:"debug" yaml:"debug"` + Timeout string `json:"timeout" yaml:"timeout"` + BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` + OutputFormat string `json:"output-format" yaml:"output-format"` + SignModeStr string `json:"sign-mode" yaml:"sign-mode"` + ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` + Modules []module.AppModuleBasic `json:"-" yaml:"-"` + Slip44 *int `json:"coin-type" yaml:"coin-type"` + SigningAlgorithm string `json:"signing-algorithm" yaml:"signing-algorithm"` + Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` + MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` } func (pc CosmosProviderConfig) Validate() error { diff --git a/relayer/chains/mock/mock_chain_processor.go b/relayer/chains/mock/mock_chain_processor.go index 5c94a63d6..4faf1fe3c 100644 --- a/relayer/chains/mock/mock_chain_processor.go +++ b/relayer/chains/mock/mock_chain_processor.go @@ -4,6 +4,7 @@ import ( "context" "time" + "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" "github.com/cosmos/relayer/v2/relayer/processor" "github.com/cosmos/relayer/v2/relayer/provider" @@ -49,7 +50,7 @@ func NewMockChainProcessor(ctx context.Context, log *zap.Logger, chainID string, } chainProvider, _ := chainProviderCfg.NewProvider(zap.NewNop(), "/tmp", true, "mock-chain-name-"+chainID) _ = chainProvider.Init(ctx) - _, _ = chainProvider.AddKey(chainProvider.Key(), 118) + _, _ = chainProvider.AddKey(chainProvider.Key(), 118, string(hd.Secp256k1Type)) return &MockChainProcessor{ log: log, chainID: chainID, diff --git a/relayer/chains/penumbra/keys.go b/relayer/chains/penumbra/keys.go index c9e918bbe..aa09fa7b1 100644 --- a/relayer/chains/penumbra/keys.go +++ b/relayer/chains/penumbra/keys.go @@ -58,7 +58,7 @@ func (cc *PenumbraProvider) KeystoreCreated(path string) bool { // AddKey generates a new mnemonic which is then converted to a private key and BIP-39 HD Path and persists it to the keystore. // It fails if there is an existing key with the same address. -func (cc *PenumbraProvider) AddKey(name string, coinType uint32) (output *provider.KeyOutput, err error) { +func (cc *PenumbraProvider) AddKey(name string, coinType uint32, signingAlgorithm string) (output *provider.KeyOutput, err error) { ko, err := cc.KeyAddOrRestore(name, coinType) if err != nil { return nil, err @@ -68,7 +68,7 @@ func (cc *PenumbraProvider) AddKey(name string, coinType uint32) (output *provid // RestoreKey converts a mnemonic to a private key and BIP-39 HD Path and persists it to the keystore. // It fails if there is an existing key with the same address. -func (cc *PenumbraProvider) RestoreKey(name, mnemonic string, coinType uint32) (address string, err error) { +func (cc *PenumbraProvider) RestoreKey(name, mnemonic string, coinType uint32, signingAlgorithm string) (address string, err error) { ko, err := cc.KeyAddOrRestore(name, coinType, mnemonic) if err != nil { return "", err diff --git a/relayer/provider/provider.go b/relayer/provider/provider.go index b3c3160a9..362e9e945 100644 --- a/relayer/provider/provider.go +++ b/relayer/provider/provider.go @@ -15,7 +15,7 @@ import ( chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types" ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" - "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + tendermint "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) @@ -215,8 +215,8 @@ func (r RelayerTxResponse) MarshalLogObject(enc zapcore.ObjectEncoder) error { type KeyProvider interface { CreateKeystore(path string) error KeystoreCreated(path string) bool - AddKey(name string, coinType uint32) (output *KeyOutput, err error) - RestoreKey(name, mnemonic string, coinType uint32) (address string, err error) + AddKey(name string, coinType uint32, signingAlgorithm string) (output *KeyOutput, err error) + RestoreKey(name, mnemonic string, coinType uint32, signingAlgorithm string) (address string, err error) ShowAddress(name string) (address string, err error) ListAddresses() (map[string]string, error) DeleteKey(name string) error From 314056b1e3a6d0fa7be364ee41c8321eebf2b11d Mon Sep 17 00:00:00 2001 From: Conor Schaefer Date: Fri, 14 Apr 2023 14:56:23 -0700 Subject: [PATCH 24/46] penumbra: update protos (#1170) Updating the generated protos for Penumbra support. After lightly editing the `scripts/protocgen.sh` script, I ran `make proto-gen` and then committed the changes `relayer/chains/penumbra/`. Other automatically updated protos I intentionally excluded from this PR, to avoid side-effects. Co-authored-by: Conor Schaefer --- .../core/crypto/v1alpha1/crypto.pb.go | 498 ++++++++-- .../penumbra/core/dex/v1alpha1/dex.pb.go | 724 +++++---------- .../core/governance/v1alpha1/governance.pb.go | 226 ++--- .../penumbra/core/ibc/v1alpha1/ibc.pb.go | 146 +-- .../transaction/v1alpha1/transaction.pb.go | 414 +++++---- .../v1alpha1/transparent_proofs.pb.go | 849 ++---------------- .../chains/penumbra/view/v1alpha1/view.pb.go | 407 +++++---- scripts/protocgen.sh | 3 +- 8 files changed, 1413 insertions(+), 1854 deletions(-) diff --git a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go index 720bc79d3..5c4eb0ff0 100644 --- a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go +++ b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go @@ -2005,6 +2005,96 @@ func (m *ZKSwapProof) GetInner() []byte { return nil } +// A Penumbra ZK undelegate claim proof. +type ZKUndelegateClaimProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKUndelegateClaimProof) Reset() { *m = ZKUndelegateClaimProof{} } +func (m *ZKUndelegateClaimProof) String() string { return proto.CompactTextString(m) } +func (*ZKUndelegateClaimProof) ProtoMessage() {} +func (*ZKUndelegateClaimProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{35} +} +func (m *ZKUndelegateClaimProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKUndelegateClaimProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKUndelegateClaimProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ZKUndelegateClaimProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKUndelegateClaimProof.Merge(m, src) +} +func (m *ZKUndelegateClaimProof) XXX_Size() int { + return m.Size() +} +func (m *ZKUndelegateClaimProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKUndelegateClaimProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKUndelegateClaimProof proto.InternalMessageInfo + +func (m *ZKUndelegateClaimProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + +// A Penumbra ZK delegator vote proof. +type ZKDelegatorVoteProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKDelegatorVoteProof) Reset() { *m = ZKDelegatorVoteProof{} } +func (m *ZKDelegatorVoteProof) String() string { return proto.CompactTextString(m) } +func (*ZKDelegatorVoteProof) ProtoMessage() {} +func (*ZKDelegatorVoteProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{36} +} +func (m *ZKDelegatorVoteProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKDelegatorVoteProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKDelegatorVoteProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ZKDelegatorVoteProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKDelegatorVoteProof.Merge(m, src) +} +func (m *ZKDelegatorVoteProof) XXX_Size() int { + return m.Size() +} +func (m *ZKDelegatorVoteProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKDelegatorVoteProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKDelegatorVoteProof proto.InternalMessageInfo + +func (m *ZKDelegatorVoteProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + func init() { proto.RegisterType((*Fee)(nil), "penumbra.core.crypto.v1alpha1.Fee") proto.RegisterType((*Address)(nil), "penumbra.core.crypto.v1alpha1.Address") @@ -2045,6 +2135,8 @@ func init() { proto.RegisterType((*ZKOutputProof)(nil), "penumbra.core.crypto.v1alpha1.ZKOutputProof") proto.RegisterType((*ZKSpendProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSpendProof") proto.RegisterType((*ZKSwapProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSwapProof") + proto.RegisterType((*ZKUndelegateClaimProof)(nil), "penumbra.core.crypto.v1alpha1.ZKUndelegateClaimProof") + proto.RegisterType((*ZKDelegatorVoteProof)(nil), "penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof") } func init() { @@ -2052,81 +2144,83 @@ func init() { } var fileDescriptor_5c23a0b4440af102 = []byte{ - // 1182 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcf, 0x6f, 0xe3, 0xc4, - 0x17, 0x8f, 0x9d, 0xb6, 0x49, 0x5f, 0x7e, 0xec, 0x7e, 0xad, 0x1e, 0xaa, 0x7e, 0x69, 0xb6, 0xeb, - 0x76, 0x4b, 0xb7, 0x40, 0xa2, 0xa6, 0x82, 0x43, 0x10, 0x88, 0x26, 0x65, 0xdb, 0x12, 0x6d, 0x37, - 0x72, 0x21, 0x8b, 0xaa, 0x4a, 0xd1, 0xd4, 0x9e, 0xc6, 0xa3, 0x38, 0x33, 0xc6, 0x1e, 0xa7, 0x1b, - 0xf8, 0x03, 0x56, 0xdc, 0xf6, 0xcc, 0x91, 0x03, 0x07, 0xfe, 0x03, 0xfe, 0x03, 0xc4, 0x69, 0x8f, - 0x7b, 0x84, 0xf6, 0x80, 0x84, 0x38, 0xf0, 0x27, 0xa0, 0xb1, 0xc7, 0x69, 0x5a, 0x6d, 0x7e, 0x40, - 0x85, 0xe0, 0xe6, 0xe7, 0xf7, 0x79, 0x9f, 0xf9, 0xbc, 0xf7, 0x66, 0xde, 0xd8, 0xb0, 0xe9, 0x62, - 0x1a, 0x74, 0x4f, 0x3d, 0x54, 0x32, 0x99, 0x87, 0x4b, 0xa6, 0xd7, 0x77, 0x39, 0x2b, 0xf5, 0xb6, - 0x90, 0xe3, 0xda, 0x68, 0x4b, 0xda, 0x45, 0xd7, 0x63, 0x9c, 0x69, 0xcb, 0x31, 0xb6, 0x28, 0xb0, - 0x45, 0xe9, 0x8b, 0xb1, 0xfa, 0x73, 0x05, 0x92, 0x8f, 0x30, 0xd6, 0x3e, 0x80, 0x39, 0xd4, 0x65, - 0x01, 0xe5, 0x8b, 0xca, 0x8a, 0xb2, 0x91, 0x29, 0x3f, 0x28, 0x8e, 0x8d, 0x2b, 0xee, 0x84, 0x60, - 0x43, 0x06, 0x69, 0x3b, 0x90, 0x46, 0xbe, 0x8f, 0x79, 0x8b, 0x58, 0x8b, 0x6a, 0x48, 0xb0, 0x3e, - 0x89, 0x40, 0xc0, 0x0f, 0x2c, 0x23, 0x85, 0xa2, 0x07, 0xfd, 0x1e, 0xa4, 0x76, 0x2c, 0xcb, 0xc3, - 0xbe, 0xaf, 0x2d, 0xc0, 0x2c, 0xa1, 0x14, 0x7b, 0xa1, 0x96, 0xac, 0x11, 0x19, 0xfa, 0x1f, 0x49, - 0xc8, 0x48, 0x44, 0x93, 0xe0, 0x73, 0xed, 0x10, 0x52, 0x3d, 0xe2, 0x93, 0x53, 0x07, 0x4b, 0xcd, - 0xe5, 0x49, 0x4b, 0x5e, 0x05, 0x17, 0x9b, 0x51, 0xe4, 0x7e, 0xc2, 0x88, 0x49, 0xb4, 0x3a, 0xcc, - 0x31, 0x17, 0x7d, 0x11, 0x60, 0x99, 0xc1, 0xd6, 0x5f, 0xa0, 0x7b, 0x12, 0x06, 0xee, 0x27, 0x0c, - 0x49, 0xb1, 0xf4, 0xab, 0x02, 0x29, 0xb9, 0x86, 0xf6, 0x11, 0xa4, 0x50, 0x84, 0x95, 0x42, 0xd7, - 0xa7, 0x63, 0x36, 0xe2, 0x30, 0x6d, 0x47, 0x14, 0xc4, 0xc2, 0xcf, 0xa4, 0xb2, 0xb7, 0xa6, 0x8b, - 0x3f, 0x10, 0x21, 0x46, 0x14, 0xa9, 0x3d, 0x85, 0xbb, 0xc8, 0x34, 0x45, 0xb3, 0x5a, 0x6d, 0x8f, - 0x05, 0xae, 0xe8, 0x54, 0x32, 0x64, 0x7b, 0x67, 0x12, 0x5b, 0x14, 0xb6, 0x27, 0xa2, 0x0e, 0x2c, - 0x23, 0x8f, 0xae, 0xd9, 0x4b, 0x9f, 0xc0, 0x5c, 0x94, 0xfd, 0xed, 0xf3, 0xac, 0xe6, 0x21, 0x2b, - 0x1f, 0x5b, 0x3d, 0x82, 0xcf, 0xf5, 0x15, 0x48, 0x1f, 0xb9, 0x98, 0x5a, 0x75, 0xdc, 0x1f, 0xb1, - 0x29, 0xde, 0x86, 0x85, 0x10, 0xd1, 0xc4, 0x1e, 0x39, 0x23, 0x26, 0xe2, 0x84, 0xd1, 0xd1, 0xe8, - 0x75, 0xc8, 0x3f, 0x0a, 0x1c, 0x47, 0xb4, 0x8c, 0xd0, 0xf6, 0x58, 0xdc, 0xf5, 0xac, 0x47, 0xe0, - 0x56, 0x21, 0xb3, 0x4b, 0x7a, 0xd8, 0xf3, 0xc9, 0x19, 0xc1, 0xde, 0x08, 0xd0, 0x3e, 0x64, 0x87, - 0x1b, 0xa2, 0x2d, 0x42, 0x4a, 0x96, 0x30, 0x6c, 0x67, 0xce, 0x88, 0x4d, 0xad, 0x00, 0xe0, 0x21, - 0x6a, 0xb1, 0x2e, 0xf9, 0x12, 0x7b, 0x61, 0x77, 0xb2, 0xc6, 0xd0, 0x1b, 0xfd, 0x4d, 0xb8, 0x73, - 0xc4, 0x11, 0xc7, 0x35, 0xd6, 0xed, 0x12, 0xde, 0xc5, 0x94, 0x8f, 0x58, 0xf2, 0x21, 0xfc, 0xaf, - 0x8a, 0x1c, 0x44, 0xcd, 0xc9, 0x50, 0x71, 0xec, 0xa2, 0x13, 0x38, 0x02, 0xb0, 0x01, 0x73, 0xd1, - 0x61, 0xd7, 0xf2, 0xa0, 0x3a, 0x2c, 0x74, 0xce, 0x18, 0xaa, 0xc3, 0x84, 0x6d, 0x93, 0x30, 0x87, - 0x19, 0x43, 0xb5, 0x89, 0xbe, 0x0c, 0xb3, 0xbb, 0x98, 0xb2, 0xae, 0x20, 0xb2, 0xc4, 0x43, 0x88, - 0x9d, 0x37, 0x22, 0x43, 0xff, 0x5a, 0x81, 0xd9, 0x26, 0x72, 0x82, 0xff, 0xc2, 0xb0, 0xf9, 0x3d, - 0x09, 0xf3, 0xa1, 0x96, 0x70, 0x92, 0x34, 0x21, 0xd3, 0xa1, 0xec, 0x9c, 0xb6, 0xae, 0x54, 0x67, - 0xca, 0xdb, 0x13, 0x38, 0x07, 0xe1, 0xc5, 0xba, 0x88, 0x0d, 0x33, 0xdf, 0x4f, 0x18, 0xd0, 0x19, - 0x58, 0xda, 0x09, 0xe4, 0x02, 0x3a, 0xcc, 0x1c, 0xa9, 0x7d, 0x77, 0x6a, 0xe6, 0xcf, 0x68, 0x67, - 0x98, 0x3b, 0x1b, 0x0c, 0xd9, 0x4b, 0xcf, 0x15, 0x80, 0xab, 0xa5, 0x6f, 0x5b, 0xd4, 0x4a, 0xdc, - 0xb3, 0x48, 0xe3, 0xda, 0x84, 0xe8, 0x70, 0x4d, 0xd9, 0xd9, 0xa5, 0x17, 0x0a, 0x64, 0x87, 0xa5, - 0xfe, 0xfb, 0x0d, 0xae, 0x66, 0x01, 0x7a, 0xa2, 0x8c, 0xd1, 0x1c, 0xd1, 0x01, 0x1e, 0x63, 0xaf, - 0xe3, 0x60, 0x83, 0xb1, 0x51, 0x07, 0xe1, 0x2b, 0x98, 0x0d, 0x59, 0xb4, 0xf7, 0x40, 0x25, 0xd6, - 0xb4, 0x13, 0x4c, 0xae, 0xab, 0x12, 0xeb, 0x36, 0x15, 0xd4, 0x97, 0x21, 0x73, 0x60, 0x61, 0xca, - 0x09, 0xef, 0x8b, 0xa9, 0x94, 0x07, 0x95, 0x74, 0xa4, 0x3c, 0x95, 0x74, 0xf4, 0x7b, 0x90, 0xdb, - 0x63, 0x3d, 0xec, 0x51, 0x71, 0xa4, 0x25, 0xa0, 0x3d, 0x00, 0xb4, 0x3b, 0xfa, 0x1a, 0x64, 0x6b, - 0x8c, 0xfa, 0x98, 0xfa, 0x81, 0x3f, 0x7a, 0xac, 0x7d, 0xa3, 0xc0, 0xcc, 0x21, 0xe3, 0x58, 0x48, - 0x0d, 0xab, 0x23, 0xb3, 0x5c, 0x9b, 0x66, 0x43, 0x1a, 0x51, 0x88, 0xa0, 0xf6, 0x7c, 0x8c, 0xa3, - 0xce, 0x64, 0x8d, 0xc8, 0x18, 0x9e, 0xfd, 0xc9, 0xbf, 0x35, 0xfb, 0xf5, 0xef, 0x14, 0x48, 0x0b, - 0x71, 0xe1, 0x89, 0xfc, 0xf0, 0xba, 0xc0, 0x8d, 0x69, 0x4f, 0xcc, 0x78, 0x91, 0xbb, 0x37, 0x45, - 0x6e, 0x4e, 0x7f, 0xc5, 0x5f, 0x09, 0x5d, 0x87, 0xbc, 0xd0, 0x59, 0x23, 0xae, 0x8d, 0x3d, 0x8e, - 0x9f, 0x8d, 0xda, 0x50, 0xf7, 0x61, 0xfe, 0x30, 0x70, 0x9c, 0x71, 0x57, 0xc3, 0x26, 0x68, 0xe1, - 0xed, 0xb5, 0x13, 0x70, 0xfb, 0x88, 0xb4, 0x29, 0xe2, 0x81, 0x87, 0x47, 0xce, 0xe1, 0xbb, 0x55, - 0x42, 0x2d, 0x42, 0xdb, 0x93, 0x90, 0xbf, 0x28, 0x90, 0x11, 0x0a, 0x1b, 0xa8, 0xef, 0x30, 0x64, - 0x69, 0x4f, 0xe1, 0x0e, 0x65, 0x1c, 0xb7, 0xcc, 0xc1, 0x5d, 0x20, 0xcb, 0x5a, 0x9c, 0x90, 0xfe, - 0x8d, 0xcb, 0xc6, 0xc8, 0x0b, 0x9a, 0xa1, 0x1b, 0x65, 0x15, 0x72, 0xd8, 0xb5, 0x71, 0x17, 0x7b, - 0xc8, 0x69, 0x75, 0x70, 0x5f, 0x56, 0x3b, 0x3b, 0x78, 0x29, 0xb6, 0xe2, 0xa7, 0x90, 0xc7, 0x34, - 0x64, 0xc6, 0x56, 0x4b, 0x10, 0x4c, 0xf9, 0xd9, 0x71, 0xbd, 0xc6, 0x46, 0x6e, 0x40, 0x22, 0x1c, - 0xfa, 0x2b, 0x05, 0x16, 0x6e, 0xc8, 0x6b, 0x78, 0x8c, 0x9d, 0xfd, 0x73, 0xc9, 0x2e, 0x41, 0xda, - 0x65, 0x3e, 0x11, 0x1f, 0x18, 0xf2, 0xce, 0x1b, 0xd8, 0x5a, 0x1d, 0xe6, 0x51, 0xc0, 0xed, 0x96, - 0x8b, 0xb8, 0xbd, 0x98, 0x5c, 0x49, 0x4e, 0xb1, 0x5c, 0x34, 0x8f, 0x1a, 0x88, 0xdb, 0x35, 0x3b, - 0xa0, 0x1d, 0x23, 0x2d, 0x08, 0x84, 0xa9, 0xdb, 0x70, 0xe7, 0x86, 0x53, 0xfb, 0x3f, 0xcc, 0x8b, - 0x4f, 0x49, 0x42, 0xdb, 0xad, 0x2d, 0xd9, 0xeb, 0xb4, 0x7c, 0xb1, 0x35, 0xec, 0x2c, 0xcb, 0x0e, - 0xc4, 0xce, 0xf2, 0xb0, 0x73, 0x5b, 0x7e, 0x51, 0xc4, 0xce, 0x6d, 0xfd, 0x0d, 0x98, 0xa9, 0xc9, - 0xd3, 0xf2, 0x9a, 0x6d, 0xa4, 0x03, 0x7c, 0x7c, 0x76, 0x86, 0x4d, 0xbe, 0x8f, 0x7c, 0x7b, 0x04, - 0xe6, 0x01, 0xe4, 0x8e, 0xeb, 0x4f, 0x02, 0xee, 0x06, 0xb2, 0xfc, 0xaf, 0x87, 0xad, 0x41, 0xf6, - 0xb8, 0x1e, 0xee, 0xf4, 0x71, 0xa8, 0x55, 0xc8, 0x1c, 0xd7, 0x8f, 0xce, 0x91, 0x3b, 0x06, 0x54, - 0xfd, 0x41, 0xfd, 0xf1, 0xa2, 0xa0, 0xbc, 0xbc, 0x28, 0x28, 0x3f, 0x5f, 0x14, 0x94, 0x17, 0x97, - 0x85, 0xc4, 0xcb, 0xcb, 0x42, 0xe2, 0xd5, 0x65, 0x21, 0x01, 0xf7, 0x4d, 0xd6, 0x1d, 0x5f, 0xf5, - 0x6a, 0xa6, 0x16, 0xbe, 0x68, 0x88, 0x5f, 0xa3, 0x86, 0x72, 0xfc, 0x79, 0x9b, 0x70, 0x3b, 0x38, - 0x2d, 0x9a, 0xac, 0x5b, 0x32, 0x99, 0xdf, 0x65, 0x7e, 0xc9, 0xc3, 0x0e, 0xea, 0x63, 0xaf, 0xd4, - 0x2b, 0x0f, 0x1e, 0x4d, 0x1b, 0x11, 0xea, 0x97, 0xc6, 0xfe, 0x74, 0xbd, 0x1f, 0xd9, 0xb1, 0xf9, - 0xad, 0x9a, 0x6c, 0xd4, 0x6a, 0xdf, 0xab, 0xcb, 0x8d, 0x58, 0x4e, 0x4d, 0xc8, 0x89, 0x56, 0x2f, - 0x36, 0x25, 0xea, 0xa7, 0x2b, 0xff, 0x89, 0xf0, 0x9f, 0x44, 0xfe, 0x93, 0xd8, 0x7f, 0xa1, 0x3e, - 0x1c, 0xeb, 0x3f, 0xd9, 0x6b, 0x54, 0x1f, 0x63, 0x8e, 0x2c, 0xc4, 0xd1, 0x6f, 0xea, 0x4a, 0x8c, - 0xad, 0x54, 0x04, 0xb8, 0x52, 0x89, 0xd0, 0x95, 0x4a, 0x0c, 0x3f, 0x9d, 0x0b, 0x7f, 0x09, 0xb7, - 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x4e, 0x9d, 0x9e, 0x40, 0x0e, 0x00, 0x00, + // 1211 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xcf, 0xae, 0xf3, 0xf7, 0xf9, 0x4f, 0xcb, 0x2a, 0x42, 0x51, 0x20, 0x6e, 0xba, 0x4d, 0x43, + 0x5b, 0x8a, 0xad, 0x38, 0x82, 0x83, 0x11, 0x88, 0xd8, 0xa1, 0x4d, 0xb0, 0xda, 0x5a, 0x1b, 0xea, + 0x22, 0x2b, 0x92, 0x35, 0xd9, 0x9d, 0x78, 0x47, 0xde, 0x9d, 0x59, 0x76, 0x67, 0x9d, 0x1a, 0x3e, + 0x40, 0xc5, 0xad, 0x67, 0x8e, 0x1c, 0x38, 0xf0, 0x0d, 0xf8, 0x06, 0x88, 0x53, 0x8f, 0x3d, 0x42, + 0x7a, 0x40, 0x42, 0x1c, 0xf8, 0x08, 0x68, 0x76, 0x67, 0x1d, 0x27, 0xea, 0xda, 0x86, 0x08, 0xc1, + 0x6d, 0xdf, 0xbe, 0xdf, 0xfb, 0xcd, 0x6f, 0xde, 0x9b, 0xf7, 0x66, 0x17, 0xee, 0x78, 0x98, 0x86, + 0xee, 0x91, 0x8f, 0xca, 0x26, 0xf3, 0x71, 0xd9, 0xf4, 0x07, 0x1e, 0x67, 0xe5, 0xfe, 0x16, 0x72, + 0x3c, 0x1b, 0x6d, 0x49, 0xbb, 0xe4, 0xf9, 0x8c, 0x33, 0x6d, 0x2d, 0xc1, 0x96, 0x04, 0xb6, 0x24, + 0x7d, 0x09, 0x56, 0x7f, 0xa6, 0x40, 0xe6, 0x1e, 0xc6, 0xda, 0x47, 0x30, 0x8f, 0x5c, 0x16, 0x52, + 0xbe, 0xa2, 0xac, 0x2b, 0xb7, 0xb2, 0x95, 0x9b, 0xa5, 0xb1, 0x71, 0xa5, 0x9d, 0x08, 0x6c, 0xc8, + 0x20, 0x6d, 0x07, 0x16, 0x51, 0x10, 0x60, 0xde, 0x21, 0xd6, 0x8a, 0x1a, 0x11, 0x6c, 0x4e, 0x22, + 0x10, 0xf0, 0x7d, 0xcb, 0x58, 0x40, 0xf1, 0x83, 0x7e, 0x0d, 0x16, 0x76, 0x2c, 0xcb, 0xc7, 0x41, + 0xa0, 0x2d, 0xc3, 0x1c, 0xa1, 0x14, 0xfb, 0x91, 0x96, 0x9c, 0x11, 0x1b, 0xfa, 0x9f, 0x19, 0xc8, + 0x4a, 0x44, 0x8b, 0xe0, 0x13, 0xed, 0x21, 0x2c, 0xf4, 0x49, 0x40, 0x8e, 0x1c, 0x2c, 0x35, 0x57, + 0x26, 0x2d, 0x79, 0x16, 0x5c, 0x6a, 0xc5, 0x91, 0x7b, 0x33, 0x46, 0x42, 0xa2, 0x35, 0x60, 0x9e, + 0x79, 0xe8, 0xcb, 0x10, 0xcb, 0x1d, 0x6c, 0xfd, 0x0d, 0xba, 0x47, 0x51, 0xe0, 0xde, 0x8c, 0x21, + 0x29, 0x56, 0x7f, 0x53, 0x60, 0x41, 0xae, 0xa1, 0x7d, 0x02, 0x0b, 0x28, 0xc6, 0x4a, 0xa1, 0x9b, + 0xd3, 0x31, 0x1b, 0x49, 0x98, 0xb6, 0x23, 0x12, 0x62, 0xe1, 0xa7, 0x52, 0xd9, 0xbb, 0xd3, 0xc5, + 0xef, 0x8b, 0x10, 0x23, 0x8e, 0xd4, 0x9e, 0xc0, 0x55, 0x64, 0x9a, 0xa2, 0x58, 0x9d, 0xae, 0xcf, + 0x42, 0x4f, 0x54, 0x2a, 0x13, 0xb1, 0xbd, 0x37, 0x89, 0x2d, 0x0e, 0xbb, 0x2f, 0xa2, 0xf6, 0x2d, + 0xa3, 0x80, 0xce, 0xd9, 0xab, 0x9f, 0xc1, 0x7c, 0xbc, 0xfb, 0xcb, 0xef, 0xb3, 0x56, 0x80, 0x9c, + 0x7c, 0xec, 0xf4, 0x09, 0x3e, 0xd1, 0xd7, 0x61, 0xf1, 0xc0, 0xc3, 0xd4, 0x6a, 0xe0, 0x41, 0xca, + 0xa1, 0xb8, 0x0b, 0xcb, 0x11, 0xa2, 0x85, 0x7d, 0x72, 0x4c, 0x4c, 0xc4, 0x09, 0xa3, 0xe9, 0xe8, + 0x4d, 0x28, 0xdc, 0x0b, 0x1d, 0x47, 0x94, 0x8c, 0xd0, 0xee, 0x58, 0xdc, 0xf9, 0x5d, 0xa7, 0xe0, + 0x6e, 0x40, 0x76, 0x97, 0xf4, 0xb1, 0x1f, 0x90, 0x63, 0x82, 0xfd, 0x14, 0xd0, 0x1e, 0xe4, 0x46, + 0x0b, 0xa2, 0xad, 0xc0, 0x82, 0x4c, 0x61, 0x54, 0xce, 0xbc, 0x91, 0x98, 0x5a, 0x11, 0xc0, 0x47, + 0xd4, 0x62, 0x2e, 0xf9, 0x0a, 0xfb, 0x51, 0x75, 0x72, 0xc6, 0xc8, 0x1b, 0xfd, 0x1d, 0xb8, 0x72, + 0xc0, 0x11, 0xc7, 0x75, 0xe6, 0xba, 0x84, 0xbb, 0x98, 0xf2, 0x94, 0x25, 0x6f, 0xc3, 0x1b, 0x35, + 0xe4, 0x20, 0x6a, 0x4e, 0x86, 0x8a, 0xb6, 0x8b, 0x3b, 0x30, 0x05, 0x70, 0x0b, 0xe6, 0xe3, 0x66, + 0xd7, 0x0a, 0xa0, 0x3a, 0x2c, 0x72, 0xce, 0x1a, 0xaa, 0xc3, 0x84, 0x6d, 0x93, 0x68, 0x0f, 0xb3, + 0x86, 0x6a, 0x13, 0x7d, 0x0d, 0xe6, 0x76, 0x31, 0x65, 0xae, 0x20, 0xb2, 0xc4, 0x43, 0x84, 0x5d, + 0x32, 0x62, 0x43, 0xff, 0x46, 0x81, 0xb9, 0x16, 0x72, 0xc2, 0xff, 0xc3, 0xb0, 0xf9, 0x23, 0x03, + 0x4b, 0x91, 0x96, 0x68, 0x92, 0xb4, 0x20, 0xdb, 0xa3, 0xec, 0x84, 0x76, 0xce, 0x54, 0x67, 0x2b, + 0xdb, 0x13, 0x38, 0x87, 0xe1, 0xa5, 0x86, 0x88, 0x8d, 0x76, 0xbe, 0x37, 0x63, 0x40, 0x6f, 0x68, + 0x69, 0x87, 0x90, 0x0f, 0xe9, 0x28, 0x73, 0xac, 0xf6, 0xfd, 0xa9, 0x99, 0x1f, 0xd3, 0xde, 0x28, + 0x77, 0x2e, 0x1c, 0xb1, 0x57, 0x9f, 0x29, 0x00, 0x67, 0x4b, 0x5f, 0x36, 0xa9, 0xd5, 0xa4, 0x66, + 0xb1, 0xc6, 0x8d, 0x09, 0xd1, 0xd1, 0x9a, 0xb2, 0xb2, 0xab, 0xcf, 0x15, 0xc8, 0x8d, 0x4a, 0xfd, + 0xef, 0x0b, 0x5c, 0xcb, 0x01, 0xf4, 0x45, 0x1a, 0xe3, 0x39, 0xa2, 0x03, 0x3c, 0xc0, 0x7e, 0xcf, + 0xc1, 0x06, 0x63, 0x69, 0x8d, 0xf0, 0x35, 0xcc, 0x45, 0x2c, 0xda, 0x07, 0xa0, 0x12, 0x6b, 0xda, + 0x09, 0x26, 0xd7, 0x55, 0x89, 0x75, 0x99, 0x0c, 0xea, 0x6b, 0x90, 0xdd, 0xb7, 0x30, 0xe5, 0x84, + 0x0f, 0xc4, 0x54, 0x2a, 0x80, 0x4a, 0x7a, 0x52, 0x9e, 0x4a, 0x7a, 0xfa, 0x35, 0xc8, 0xdf, 0x67, + 0x7d, 0xec, 0x53, 0xd1, 0xd2, 0x12, 0xd0, 0x1d, 0x02, 0xba, 0x3d, 0x7d, 0x03, 0x72, 0x75, 0x46, + 0x03, 0x4c, 0x83, 0x30, 0x48, 0x1f, 0x6b, 0xdf, 0x2a, 0x30, 0xfb, 0x90, 0x71, 0x2c, 0xa4, 0x46, + 0xd9, 0x91, 0xbb, 0xdc, 0x98, 0xe6, 0x40, 0x1a, 0x71, 0x88, 0xa0, 0xf6, 0x03, 0x8c, 0xe3, 0xca, + 0xe4, 0x8c, 0xd8, 0x18, 0x9d, 0xfd, 0x99, 0x7f, 0x34, 0xfb, 0xf5, 0xef, 0x15, 0x58, 0x14, 0xe2, + 0xa2, 0x8e, 0xfc, 0xf8, 0xbc, 0xc0, 0x5b, 0xd3, 0x76, 0xcc, 0x78, 0x91, 0xbb, 0x17, 0x45, 0xde, + 0x99, 0xfe, 0x8a, 0x3f, 0x13, 0xba, 0x09, 0x05, 0xa1, 0xb3, 0x4e, 0x3c, 0x1b, 0xfb, 0x1c, 0x3f, + 0x4d, 0x3b, 0x50, 0xd7, 0x61, 0xe9, 0x61, 0xe8, 0x38, 0xe3, 0xae, 0x86, 0x3b, 0xa0, 0x45, 0xb7, + 0xd7, 0x4e, 0xc8, 0xed, 0x03, 0xd2, 0xa5, 0x88, 0x87, 0x3e, 0x4e, 0x9d, 0xc3, 0x57, 0x6b, 0x84, + 0x5a, 0x84, 0x76, 0x27, 0x21, 0x7f, 0x55, 0x20, 0x2b, 0x14, 0x36, 0xd1, 0xc0, 0x61, 0xc8, 0xd2, + 0x9e, 0xc0, 0x15, 0xca, 0x38, 0xee, 0x98, 0xc3, 0xbb, 0x40, 0xa6, 0xb5, 0x34, 0x61, 0xfb, 0x17, + 0x2e, 0x1b, 0xa3, 0x20, 0x68, 0x46, 0x6e, 0x94, 0x1b, 0x90, 0xc7, 0x9e, 0x8d, 0x5d, 0xec, 0x23, + 0xa7, 0xd3, 0xc3, 0x03, 0x99, 0xed, 0xdc, 0xf0, 0xa5, 0x38, 0x8a, 0x9f, 0x43, 0x01, 0xd3, 0x88, + 0x19, 0x5b, 0x1d, 0x41, 0x30, 0xe5, 0x67, 0xc7, 0xf9, 0x1c, 0x1b, 0xf9, 0x21, 0x89, 0x70, 0xe8, + 0x2f, 0x15, 0x58, 0xbe, 0x20, 0xaf, 0xe9, 0x33, 0x76, 0xfc, 0xef, 0x6d, 0x76, 0x15, 0x16, 0x3d, + 0x16, 0x10, 0xf1, 0x81, 0x21, 0xef, 0xbc, 0xa1, 0xad, 0x35, 0x60, 0x09, 0x85, 0xdc, 0xee, 0x78, + 0x88, 0xdb, 0x2b, 0x99, 0xf5, 0xcc, 0x14, 0xcb, 0xc5, 0xf3, 0xa8, 0x89, 0xb8, 0x5d, 0xb7, 0x43, + 0xda, 0x33, 0x16, 0x05, 0x81, 0x30, 0x75, 0x1b, 0xae, 0x5c, 0x70, 0x6a, 0x6f, 0xc1, 0x92, 0xf8, + 0x94, 0x24, 0xb4, 0xdb, 0xd9, 0x92, 0xb5, 0x5e, 0x94, 0x2f, 0xb6, 0x46, 0x9d, 0x15, 0x59, 0x81, + 0xc4, 0x59, 0x19, 0x75, 0x6e, 0xcb, 0x2f, 0x8a, 0xc4, 0xb9, 0xad, 0xbf, 0x0d, 0xb3, 0x75, 0xd9, + 0x2d, 0xaf, 0x39, 0x46, 0x3a, 0xc0, 0xa7, 0xc7, 0xc7, 0xd8, 0xe4, 0x7b, 0x28, 0xb0, 0x53, 0x30, + 0x37, 0x21, 0xdf, 0x6e, 0x3c, 0x0a, 0xb9, 0x17, 0xca, 0xf4, 0xbf, 0x1e, 0xb6, 0x01, 0xb9, 0x76, + 0x23, 0x3a, 0xe9, 0xe3, 0x50, 0x37, 0x20, 0xdb, 0x6e, 0x1c, 0x9c, 0x20, 0x6f, 0x1c, 0xa8, 0x04, + 0x6f, 0xb6, 0x1b, 0x8f, 0xa9, 0x85, 0x1d, 0xdc, 0x15, 0x05, 0x73, 0x10, 0x71, 0xc7, 0xe1, 0xef, + 0xc2, 0x72, 0xbb, 0xb1, 0x1b, 0xa3, 0x99, 0xdf, 0x12, 0x6d, 0x91, 0x8e, 0xae, 0xfd, 0xa8, 0xfe, + 0x74, 0x5a, 0x54, 0x5e, 0x9c, 0x16, 0x95, 0x5f, 0x4e, 0x8b, 0xca, 0xf3, 0x57, 0xc5, 0x99, 0x17, + 0xaf, 0x8a, 0x33, 0x2f, 0x5f, 0x15, 0x67, 0xe0, 0xba, 0xc9, 0xdc, 0xf1, 0x35, 0xad, 0x65, 0xeb, + 0xd1, 0x8b, 0xa6, 0xf8, 0xf1, 0x6a, 0x2a, 0xed, 0x2f, 0xba, 0x84, 0xdb, 0xe1, 0x51, 0xc9, 0x64, + 0x6e, 0xd9, 0x64, 0x81, 0xcb, 0x82, 0xb2, 0x8f, 0x1d, 0x34, 0xc0, 0x7e, 0xb9, 0x5f, 0x19, 0x3e, + 0x9a, 0x36, 0x22, 0x34, 0x28, 0x8f, 0xfd, 0xa5, 0xfb, 0x30, 0xb6, 0x13, 0xf3, 0x3b, 0x35, 0xd3, + 0xac, 0xd7, 0x7f, 0x50, 0xd7, 0x9a, 0x89, 0x9c, 0xba, 0x90, 0x13, 0xaf, 0x5e, 0x6a, 0x49, 0xd4, + 0xcf, 0x67, 0xfe, 0x43, 0xe1, 0x3f, 0x8c, 0xfd, 0x87, 0x89, 0xff, 0x54, 0xbd, 0x3d, 0xd6, 0x7f, + 0x78, 0xbf, 0x59, 0x7b, 0x80, 0x39, 0xb2, 0x10, 0x47, 0xbf, 0xab, 0xeb, 0x09, 0xb6, 0x5a, 0x15, + 0xe0, 0x6a, 0x35, 0x46, 0x57, 0xab, 0x09, 0xfc, 0x68, 0x3e, 0xfa, 0xe1, 0xdc, 0xfe, 0x2b, 0x00, + 0x00, 0xff, 0xff, 0x4f, 0xe3, 0x78, 0x0b, 0x9e, 0x0e, 0x00, 0x00, } func (m *Fee) Marshal() (dAtA []byte, err error) { @@ -3624,6 +3718,66 @@ func (m *ZKSwapProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ZKUndelegateClaimProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ZKUndelegateClaimProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKUndelegateClaimProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ZKDelegatorVoteProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ZKDelegatorVoteProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKDelegatorVoteProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintCrypto(dAtA []byte, offset int, v uint64) int { offset -= sovCrypto(v) base := offset @@ -4262,6 +4416,32 @@ func (m *ZKSwapProof) Size() (n int) { return n } +func (m *ZKUndelegateClaimProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *ZKDelegatorVoteProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + func sovCrypto(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -8242,6 +8422,174 @@ func (m *ZKSwapProof) Unmarshal(dAtA []byte) error { } return nil } +func (m *ZKUndelegateClaimProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ZKUndelegateClaimProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKUndelegateClaimProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ZKDelegatorVoteProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ZKDelegatorVoteProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKDelegatorVoteProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipCrypto(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go index cf6cf0bb4..61ef18d9c 100644 --- a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go +++ b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go @@ -1458,7 +1458,9 @@ type Position struct { // same nonce as an existing position. This ensures that `PositionId`s will // be unique, and allows us to track position ownership with a // sequence of stateful NFTs based on the `PositionId`. - Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` + Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` + State *PositionState `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Reserves *Reserves `protobuf:"bytes,4,opt,name=reserves,proto3" json:"reserves,omitempty"` } func (m *Position) Reset() { *m = Position{} } @@ -1508,6 +1510,20 @@ func (m *Position) GetNonce() []byte { return nil } +func (m *Position) GetState() *PositionState { + if m != nil { + return m.State + } + return nil +} + +func (m *Position) GetReserves() *Reserves { + if m != nil { + return m.Reserves + } + return nil +} + // A hash of a `Position`. type PositionId struct { Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` @@ -1598,67 +1614,6 @@ func (m *PositionState) GetState() PositionState_PositionStateEnum { return PositionState_POSITION_STATE_ENUM_UNSPECIFIED } -// The data recorded about a position on-chain. -type PositionMetadata struct { - Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` - State *PositionState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` - Reserves *Reserves `protobuf:"bytes,3,opt,name=reserves,proto3" json:"reserves,omitempty"` -} - -func (m *PositionMetadata) Reset() { *m = PositionMetadata{} } -func (m *PositionMetadata) String() string { return proto.CompactTextString(m) } -func (*PositionMetadata) ProtoMessage() {} -func (*PositionMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{20} -} -func (m *PositionMetadata) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PositionMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PositionMetadata.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PositionMetadata) XXX_Merge(src proto.Message) { - xxx_messageInfo_PositionMetadata.Merge(m, src) -} -func (m *PositionMetadata) XXX_Size() int { - return m.Size() -} -func (m *PositionMetadata) XXX_DiscardUnknown() { - xxx_messageInfo_PositionMetadata.DiscardUnknown(m) -} - -var xxx_messageInfo_PositionMetadata proto.InternalMessageInfo - -func (m *PositionMetadata) GetPosition() *Position { - if m != nil { - return m.Position - } - return nil -} - -func (m *PositionMetadata) GetState() *PositionState { - if m != nil { - return m.State - } - return nil -} - -func (m *PositionMetadata) GetReserves() *Reserves { - if m != nil { - return m.Reserves - } - return nil -} - // An LPNFT tracking both ownership and state of a position. // // Tracking the state as part of the LPNFT means that all LP-related actions can @@ -1683,7 +1638,7 @@ func (m *LpNft) Reset() { *m = LpNft{} } func (m *LpNft) String() string { return proto.CompactTextString(m) } func (*LpNft) ProtoMessage() {} func (*LpNft) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{21} + return fileDescriptor_d1eba752ca2f0d70, []int{20} } func (m *LpNft) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1736,16 +1691,13 @@ type PositionOpen struct { // Positions are immutable, so the `PositionData` (and hence the `PositionId`) // are unchanged over the entire lifetime of the position. Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` - // The initial reserves of the position. Unlike the `PositionData`, the - // reserves evolve over time as trades are executed against the position. - InitialReserves *Reserves `protobuf:"bytes,2,opt,name=initial_reserves,json=initialReserves,proto3" json:"initial_reserves,omitempty"` } func (m *PositionOpen) Reset() { *m = PositionOpen{} } func (m *PositionOpen) String() string { return proto.CompactTextString(m) } func (*PositionOpen) ProtoMessage() {} func (*PositionOpen) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{22} + return fileDescriptor_d1eba752ca2f0d70, []int{21} } func (m *PositionOpen) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1781,13 +1733,6 @@ func (m *PositionOpen) GetPosition() *Position { return nil } -func (m *PositionOpen) GetInitialReserves() *Reserves { - if m != nil { - return m.InitialReserves - } - return nil -} - // A transaction action that closes a position. // // This action's contribution to the transaction's value balance is to consume @@ -1805,7 +1750,7 @@ func (m *PositionClose) Reset() { *m = PositionClose{} } func (m *PositionClose) String() string { return proto.CompactTextString(m) } func (*PositionClose) ProtoMessage() {} func (*PositionClose) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{23} + return fileDescriptor_d1eba752ca2f0d70, []int{22} } func (m *PositionClose) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1858,7 +1803,7 @@ func (m *PositionWithdraw) Reset() { *m = PositionWithdraw{} } func (m *PositionWithdraw) String() string { return proto.CompactTextString(m) } func (*PositionWithdraw) ProtoMessage() {} func (*PositionWithdraw) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{24} + return fileDescriptor_d1eba752ca2f0d70, []int{23} } func (m *PositionWithdraw) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1918,7 +1863,7 @@ func (m *PositionRewardClaim) Reset() { *m = PositionRewardClaim{} } func (m *PositionRewardClaim) String() string { return proto.CompactTextString(m) } func (*PositionRewardClaim) ProtoMessage() {} func (*PositionRewardClaim) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{25} + return fileDescriptor_d1eba752ca2f0d70, []int{24} } func (m *PositionRewardClaim) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1973,7 +1918,7 @@ func (m *Path) Reset() { *m = Path{} } func (m *Path) String() string { return proto.CompactTextString(m) } func (*Path) ProtoMessage() {} func (*Path) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{26} + return fileDescriptor_d1eba752ca2f0d70, []int{25} } func (m *Path) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2037,7 +1982,7 @@ func (m *Trade) Reset() { *m = Trade{} } func (m *Trade) String() string { return proto.CompactTextString(m) } func (*Trade) ProtoMessage() {} func (*Trade) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{27} + return fileDescriptor_d1eba752ca2f0d70, []int{26} } func (m *Trade) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2096,7 +2041,7 @@ func (m *SwapExecution) Reset() { *m = SwapExecution{} } func (m *SwapExecution) String() string { return proto.CompactTextString(m) } func (*SwapExecution) ProtoMessage() {} func (*SwapExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{28} + return fileDescriptor_d1eba752ca2f0d70, []int{27} } func (m *SwapExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2143,7 +2088,7 @@ func (m *PositionWithdrawPlan) Reset() { *m = PositionWithdrawPlan{} } func (m *PositionWithdrawPlan) String() string { return proto.CompactTextString(m) } func (*PositionWithdrawPlan) ProtoMessage() {} func (*PositionWithdrawPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{29} + return fileDescriptor_d1eba752ca2f0d70, []int{28} } func (m *PositionWithdrawPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2202,7 +2147,7 @@ func (m *PositionRewardClaimPlan) Reset() { *m = PositionRewardClaimPlan func (m *PositionRewardClaimPlan) String() string { return proto.CompactTextString(m) } func (*PositionRewardClaimPlan) ProtoMessage() {} func (*PositionRewardClaimPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{30} + return fileDescriptor_d1eba752ca2f0d70, []int{29} } func (m *PositionRewardClaimPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2264,7 +2209,6 @@ func init() { proto.RegisterType((*Position)(nil), "penumbra.core.dex.v1alpha1.Position") proto.RegisterType((*PositionId)(nil), "penumbra.core.dex.v1alpha1.PositionId") proto.RegisterType((*PositionState)(nil), "penumbra.core.dex.v1alpha1.PositionState") - proto.RegisterType((*PositionMetadata)(nil), "penumbra.core.dex.v1alpha1.PositionMetadata") proto.RegisterType((*LpNft)(nil), "penumbra.core.dex.v1alpha1.LpNft") proto.RegisterType((*PositionOpen)(nil), "penumbra.core.dex.v1alpha1.PositionOpen") proto.RegisterType((*PositionClose)(nil), "penumbra.core.dex.v1alpha1.PositionClose") @@ -2282,121 +2226,119 @@ func init() { } var fileDescriptor_d1eba752ca2f0d70 = []byte{ - // 1815 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x5f, 0x6f, 0x23, 0x57, - 0x15, 0xcf, 0x8c, 0x9d, 0xc4, 0x39, 0x76, 0x76, 0xb3, 0x37, 0x15, 0x44, 0x41, 0x4d, 0x77, 0x87, - 0xfe, 0x59, 0x5a, 0xe4, 0xd4, 0xd3, 0x22, 0x95, 0x2c, 0xed, 0x36, 0xfe, 0x93, 0xc6, 0xdb, 0xc6, - 0x71, 0x27, 0xe9, 0x2e, 0x2a, 0x2b, 0x46, 0x37, 0x33, 0x37, 0xeb, 0x11, 0xe3, 0x99, 0xd9, 0x99, - 0xeb, 0xc4, 0x79, 0x42, 0x42, 0x20, 0x9e, 0x2a, 0xe8, 0x07, 0x40, 0x68, 0x79, 0xe4, 0x33, 0x20, - 0x78, 0x45, 0x08, 0xa4, 0xbe, 0x2d, 0x4f, 0x08, 0xed, 0x3e, 0x20, 0xf1, 0x01, 0x10, 0x0f, 0x3c, - 0xa0, 0xfb, 0xcf, 0x1e, 0x27, 0x4e, 0xec, 0xc9, 0x86, 0x17, 0xde, 0x7c, 0xe7, 0x9e, 0xdf, 0x6f, - 0x7e, 0xf7, 0x9e, 0x73, 0xcf, 0x39, 0x77, 0x0c, 0xaf, 0x46, 0x24, 0xe8, 0x75, 0x0f, 0x62, 0xbc, - 0xee, 0x84, 0x31, 0x59, 0x77, 0x49, 0x7f, 0xfd, 0xa8, 0x82, 0xfd, 0xa8, 0x83, 0x2b, 0x6c, 0x50, - 0x8e, 0xe2, 0x90, 0x86, 0x68, 0x55, 0x59, 0x95, 0x99, 0x55, 0x99, 0x4d, 0x28, 0xab, 0xd5, 0x37, - 0x47, 0x19, 0x9c, 0xf8, 0x24, 0xa2, 0xe1, 0x90, 0x44, 0x8c, 0x05, 0x8f, 0xf1, 0x13, 0x0d, 0xf2, - 0x7b, 0xc7, 0x38, 0x42, 0x1f, 0xc2, 0x6c, 0x14, 0x87, 0xe1, 0xe1, 0x8a, 0x76, 0x53, 0xbb, 0x5d, - 0x34, 0xdf, 0x2c, 0x8f, 0xbe, 0x40, 0x82, 0x14, 0x49, 0xf9, 0xf3, 0x8f, 0x19, 0xaa, 0xcd, 0x10, - 0x96, 0x00, 0xa2, 0xf7, 0x20, 0x7f, 0x10, 0xba, 0x27, 0x2b, 0x79, 0x4e, 0xf0, 0x6a, 0xf9, 0x7c, - 0x85, 0x65, 0x86, 0xad, 0x86, 0xee, 0x89, 0xc5, 0x11, 0xc6, 0xcf, 0x35, 0x58, 0x60, 0x8f, 0x6a, - 0x3e, 0xf6, 0xba, 0xe8, 0xa5, 0xb4, 0x92, 0x92, 0x62, 0x7f, 0x5f, 0xb2, 0xeb, 0x9c, 0xfd, 0x5b, - 0x93, 0xd8, 0x39, 0xd5, 0xf0, 0x15, 0xe8, 0x35, 0xb8, 0x46, 0xa2, 0xd0, 0xe9, 0xd8, 0x6e, 0x2f, - 0xc6, 0xd4, 0x0b, 0x83, 0x95, 0xf9, 0x9b, 0xda, 0xed, 0xbc, 0xb5, 0xc8, 0x9f, 0xd6, 0xe5, 0x43, - 0xe3, 0xd7, 0x39, 0x58, 0x1c, 0x81, 0xa3, 0x2d, 0x58, 0x08, 0x7a, 0xbe, 0xef, 0x1d, 0x7a, 0x24, - 0x96, 0x7b, 0x73, 0x7b, 0xc2, 0xde, 0xb4, 0x94, 0xbd, 0x35, 0x84, 0xa2, 0x77, 0x21, 0x77, 0x48, - 0x88, 0x94, 0x6f, 0x4c, 0x60, 0xd8, 0x22, 0xc4, 0x62, 0xe6, 0xe8, 0x87, 0xb0, 0x1c, 0xf6, 0x68, - 0xd4, 0xa3, 0x76, 0xc5, 0x76, 0xc2, 0x6e, 0xd7, 0xa3, 0x5d, 0x12, 0xd0, 0x95, 0x1c, 0x67, 0x29, - 0x4f, 0x60, 0xd9, 0xa3, 0x98, 0x92, 0xda, 0x00, 0x65, 0xdd, 0x10, 0x54, 0x95, 0xe1, 0xa3, 0x14, - 0xbf, 0x99, 0xe6, 0xcf, 0xbf, 0x08, 0xbf, 0x99, 0xe2, 0x6f, 0x43, 0x51, 0xf2, 0xbb, 0x98, 0xe2, - 0x95, 0x39, 0xce, 0xbb, 0x7e, 0x91, 0xf3, 0xaa, 0x98, 0x3a, 0x1d, 0xe6, 0x82, 0x5d, 0x8e, 0xab, - 0x63, 0x8a, 0x2d, 0x08, 0x07, 0xbf, 0x8d, 0x7f, 0xeb, 0x50, 0x50, 0xe1, 0x83, 0xee, 0x41, 0x89, - 0xc6, 0xd8, 0xf5, 0x82, 0x47, 0x76, 0x84, 0x3d, 0xe5, 0x9f, 0x37, 0x2e, 0xe2, 0xdf, 0x17, 0xf6, - 0x6d, 0xec, 0xc5, 0x56, 0x91, 0x0e, 0x07, 0x68, 0x13, 0x16, 0x5c, 0xe2, 0x53, 0x6c, 0x57, 0x6c, - 0x4f, 0xba, 0xe9, 0xb5, 0x09, 0x1b, 0xb0, 0xd9, 0x0d, 0x7b, 0x01, 0xb5, 0xe6, 0x39, 0xae, 0xd2, - 0x1c, 0x52, 0x98, 0xb6, 0x27, 0x7d, 0x94, 0x89, 0xc2, 0x6c, 0xa2, 0x07, 0x70, 0xed, 0x90, 0x90, - 0xb3, 0xbe, 0x78, 0x7b, 0x02, 0x4f, 0x15, 0xfb, 0x38, 0x70, 0xd2, 0xde, 0x58, 0x3c, 0x24, 0xa9, - 0x21, 0xda, 0x84, 0xf9, 0x08, 0x9f, 0xf8, 0x21, 0x76, 0x57, 0x66, 0x27, 0xef, 0x12, 0x3f, 0xdc, - 0xc2, 0xdc, 0x52, 0x38, 0xe3, 0xa7, 0x1a, 0x14, 0x53, 0x13, 0xa8, 0x05, 0x90, 0xd2, 0xa9, 0x5d, - 0x2a, 0x66, 0x52, 0x0c, 0xfc, 0x8c, 0x06, 0x1c, 0x40, 0x5c, 0x3b, 0x39, 0xc6, 0x11, 0x77, 0x43, - 0xc9, 0x5a, 0x1c, 0x3c, 0x65, 0x6f, 0x37, 0x7e, 0x26, 0xcf, 0x68, 0xdb, 0xc7, 0x5e, 0x40, 0x49, - 0x9f, 0xfe, 0x1f, 0x86, 0xc1, 0x5d, 0x58, 0x70, 0x58, 0x0a, 0xb2, 0x59, 0xce, 0xc8, 0x4f, 0x9d, - 0x33, 0x0a, 0x1c, 0xb4, 0x45, 0x08, 0xfa, 0x18, 0x16, 0x05, 0x01, 0x76, 0xdd, 0x98, 0x24, 0x89, - 0x74, 0xfa, 0xeb, 0x93, 0x74, 0x08, 0x6b, 0xab, 0xc4, 0xc1, 0x72, 0xc4, 0x32, 0x72, 0x9c, 0x10, - 0xe2, 0xf2, 0xf3, 0x5b, 0xb2, 0xc4, 0xc0, 0xf8, 0x14, 0xd0, 0x4e, 0xe8, 0xfc, 0x68, 0xcb, 0x0f, - 0x8f, 0x6b, 0x5e, 0xd4, 0x21, 0x31, 0xf7, 0xc5, 0x1d, 0x98, 0x3d, 0xc2, 0x7e, 0x8f, 0x48, 0x27, - 0x4c, 0xb9, 0x70, 0x81, 0x31, 0x7e, 0x2c, 0xce, 0x76, 0xdb, 0xc7, 0x01, 0x6a, 0xc3, 0x35, 0x16, - 0x03, 0x76, 0xa4, 0xdc, 0x2c, 0x19, 0x27, 0xa6, 0xfe, 0x41, 0x5c, 0x58, 0x8b, 0xc9, 0x48, 0x98, - 0xdc, 0x82, 0x12, 0x3b, 0x5b, 0x07, 0xbe, 0x17, 0x30, 0x77, 0xcb, 0xe8, 0x2a, 0x1e, 0x12, 0x52, - 0x95, 0x8f, 0x8c, 0x7f, 0x69, 0xa9, 0xfc, 0xff, 0x3f, 0x92, 0xb1, 0x0a, 0x85, 0x28, 0x4c, 0x3c, - 0x5e, 0x84, 0x74, 0x5e, 0x84, 0x06, 0xe3, 0xd3, 0xf9, 0x32, 0xf7, 0xc2, 0xf9, 0x72, 0x4c, 0xe1, - 0xcb, 0x8f, 0x2b, 0x7c, 0xff, 0x91, 0x69, 0xf5, 0xbe, 0x47, 0x8e, 0xd1, 0x36, 0xcc, 0x1f, 0x79, - 0x89, 0x77, 0xe0, 0x2b, 0x2f, 0x7e, 0x7b, 0xd2, 0x62, 0x19, 0xac, 0x7c, 0x5f, 0x60, 0xb6, 0x67, - 0x2c, 0x05, 0x47, 0x0d, 0x98, 0x0b, 0x23, 0xfc, 0xb8, 0xa7, 0x0a, 0xdf, 0x5b, 0x53, 0x11, 0xed, - 0x72, 0xc8, 0xf6, 0x8c, 0x25, 0xc1, 0xab, 0x5f, 0x6a, 0x30, 0x2f, 0xd9, 0xd1, 0xbb, 0x90, 0xe7, - 0xb9, 0x41, 0x28, 0xbb, 0x39, 0x89, 0xd0, 0xe2, 0xd6, 0x63, 0xdc, 0x98, 0x7b, 0x31, 0x37, 0xae, - 0x7e, 0x00, 0x73, 0x42, 0xe7, 0xe5, 0x14, 0x55, 0x8b, 0xb0, 0xc0, 0x15, 0x1d, 0x79, 0xe4, 0xd8, - 0xf8, 0x47, 0xba, 0xef, 0xe0, 0x3e, 0xd8, 0x39, 0xed, 0x83, 0xca, 0x54, 0x2d, 0xcf, 0x79, 0x8e, - 0xb8, 0x77, 0xca, 0x11, 0x6f, 0x4f, 0xcf, 0x76, 0xc6, 0x1b, 0x4f, 0x53, 0xde, 0xa8, 0x03, 0xf0, - 0x55, 0xf0, 0x7c, 0x71, 0xce, 0x99, 0x1f, 0xcf, 0x6d, 0xf1, 0xe5, 0x8b, 0x96, 0xaf, 0x0a, 0x05, - 0xd5, 0xe6, 0x48, 0x7d, 0x6f, 0x4c, 0xea, 0xb1, 0x42, 0x4a, 0x98, 0x3a, 0x6b, 0x5e, 0x36, 0x35, - 0x29, 0x0e, 0x53, 0xfa, 0x36, 0x2b, 0x87, 0xb9, 0xda, 0x1a, 0xf8, 0xf4, 0x4a, 0xd6, 0x55, 0xbd, - 0x01, 0xd7, 0x87, 0x2c, 0xc2, 0xd3, 0xbf, 0xd0, 0xa0, 0x98, 0x2a, 0x3e, 0xe8, 0x2e, 0xcc, 0xe3, - 0x24, 0x21, 0x6c, 0xe5, 0xda, 0x74, 0x29, 0x9a, 0x59, 0x37, 0x5d, 0x6b, 0x8e, 0xc3, 0x2a, 0x43, - 0x02, 0x53, 0x6e, 0x5d, 0x36, 0x02, 0xd3, 0xf8, 0x42, 0x83, 0xe5, 0xba, 0x17, 0x13, 0x87, 0x12, - 0x37, 0xad, 0xec, 0x7b, 0x30, 0x9b, 0x50, 0x1c, 0xd3, 0x8c, 0xba, 0x04, 0x08, 0xbd, 0x07, 0x39, - 0x12, 0xb8, 0x19, 0x25, 0x31, 0x88, 0xf1, 0x45, 0x1e, 0x96, 0xc7, 0x64, 0x35, 0xf4, 0x01, 0xcc, - 0xcb, 0xca, 0x9c, 0xad, 0xb6, 0xcc, 0x89, 0xba, 0x3c, 0xc4, 0x9b, 0xd9, 0xea, 0xba, 0xc0, 0x9b, - 0xa8, 0x06, 0xe0, 0xe3, 0xee, 0x81, 0xcb, 0x5a, 0x83, 0x4a, 0xb6, 0xba, 0x5e, 0x10, 0xc0, 0x4a, - 0x25, 0x45, 0x62, 0xda, 0x15, 0x59, 0xd9, 0xb3, 0x91, 0x98, 0x95, 0x11, 0x25, 0xa6, 0xac, 0xec, - 0x19, 0x95, 0x98, 0x23, 0x4a, 0x4c, 0xd9, 0x99, 0x67, 0x54, 0x62, 0xa2, 0xaf, 0xc1, 0x5c, 0x87, - 0x78, 0x8f, 0x3a, 0x54, 0x5e, 0xa7, 0xe4, 0xe8, 0x4c, 0x47, 0x56, 0xb8, 0x7c, 0x47, 0x66, 0xfc, - 0x4a, 0x83, 0xeb, 0x72, 0x72, 0xab, 0x17, 0x38, 0xbc, 0x4e, 0xee, 0xc0, 0x82, 0x13, 0x76, 0xa3, - 0x30, 0x18, 0x76, 0x9e, 0x13, 0xaa, 0x64, 0x4c, 0x4e, 0x71, 0x58, 0x43, 0x06, 0x74, 0x07, 0xf2, - 0x5c, 0xa6, 0x9e, 0x4d, 0x26, 0x07, 0x19, 0x5f, 0x6a, 0x2c, 0x5e, 0xcf, 0xf0, 0xa3, 0x25, 0x71, - 0xe3, 0x63, 0xea, 0x16, 0xc5, 0x6d, 0xee, 0x1d, 0xd0, 0xa2, 0x6c, 0xb1, 0xa7, 0x45, 0x0c, 0xf4, - 0x38, 0x5b, 0xb4, 0x69, 0x8f, 0x8d, 0x3e, 0x14, 0x2c, 0x92, 0x90, 0xf8, 0x88, 0x24, 0xe8, 0x3b, - 0xa0, 0xc7, 0x19, 0x8f, 0x8c, 0x1e, 0x57, 0x38, 0x2c, 0xe3, 0x49, 0xd1, 0x63, 0xd3, 0xb0, 0xa1, - 0xd0, 0x56, 0xdd, 0xcc, 0xfb, 0x90, 0x8b, 0x3a, 0x9e, 0x7c, 0xf5, 0x5b, 0x53, 0xec, 0xea, 0xc0, - 0x37, 0x0c, 0xc7, 0xda, 0xce, 0x20, 0x0c, 0x1c, 0x22, 0x1b, 0x35, 0x31, 0x30, 0x0c, 0x00, 0xf5, - 0x82, 0xa6, 0xcb, 0x6c, 0xbc, 0x20, 0x90, 0x57, 0xf3, 0x92, 0x25, 0x06, 0xc6, 0x13, 0x1d, 0x16, - 0x95, 0x11, 0xbf, 0x71, 0xa0, 0x4f, 0x79, 0x32, 0xa3, 0xc2, 0x1d, 0xd7, 0xcc, 0x3b, 0x17, 0x89, - 0x19, 0x41, 0x8e, 0x8e, 0x1a, 0x41, 0xaf, 0x6b, 0x09, 0x26, 0xe3, 0x77, 0x1a, 0xdc, 0x38, 0x33, - 0x89, 0xbe, 0x09, 0xaf, 0xb4, 0x77, 0xf7, 0x9a, 0xfb, 0xcd, 0xdd, 0x96, 0xbd, 0xb7, 0xbf, 0xb9, - 0xdf, 0xb0, 0x1b, 0xad, 0xcf, 0x76, 0xec, 0xcf, 0x5a, 0x7b, 0xed, 0x46, 0xad, 0xb9, 0xd5, 0x6c, - 0xd4, 0x97, 0x66, 0xd0, 0x1a, 0xac, 0x8e, 0x33, 0xda, 0x6d, 0x37, 0x5a, 0x8d, 0xfa, 0x92, 0x76, - 0xde, 0x7c, 0xed, 0x93, 0xdd, 0xbd, 0x46, 0x7d, 0x49, 0x47, 0xb7, 0xe0, 0xe5, 0x71, 0xf3, 0x0f, - 0x9a, 0xfb, 0xdb, 0x75, 0x6b, 0xf3, 0x41, 0x6b, 0x29, 0x87, 0x5e, 0x81, 0x6f, 0x8c, 0xa7, 0xd8, - 0x6c, 0xee, 0x34, 0xea, 0x4b, 0x79, 0xe3, 0xa9, 0x06, 0x4b, 0x4a, 0xfe, 0x0e, 0xa1, 0x98, 0x35, - 0x9c, 0xe8, 0xc3, 0x54, 0x6f, 0xaa, 0x4d, 0xfe, 0x8e, 0xa3, 0xf0, 0xa9, 0x0e, 0xf6, 0xae, 0xda, - 0xe8, 0x29, 0x3e, 0xd4, 0x8c, 0xec, 0x9e, 0xdc, 0x56, 0x26, 0x21, 0x96, 0xa1, 0x2b, 0xc3, 0xfe, - 0x42, 0x09, 0x2a, 0xcc, 0xad, 0x01, 0x8a, 0x1d, 0xc8, 0xd9, 0x4f, 0xa2, 0xd6, 0x21, 0x45, 0x1f, - 0x41, 0x51, 0x09, 0xb3, 0x3d, 0xf7, 0x9c, 0x42, 0x36, 0x56, 0x52, 0xd3, 0xb5, 0x20, 0x1a, 0x86, - 0xd9, 0x8b, 0xae, 0xca, 0x78, 0xa2, 0x41, 0x49, 0x4d, 0xec, 0x46, 0x24, 0xb8, 0x82, 0x9d, 0xde, - 0x85, 0x25, 0x2f, 0xf0, 0xa8, 0x87, 0x7d, 0x7b, 0xb0, 0x61, 0x7a, 0x86, 0x0d, 0xbb, 0x2e, 0xd1, - 0xea, 0x81, 0xf1, 0xfd, 0xe1, 0xa1, 0xa9, 0xf9, 0x61, 0x42, 0xae, 0x6c, 0xfb, 0x8c, 0xdf, 0xa7, - 0x62, 0xed, 0x81, 0x47, 0x3b, 0x6e, 0x8c, 0x8f, 0xaf, 0xce, 0x39, 0x18, 0x96, 0xd5, 0x06, 0xa4, - 0x3f, 0x9c, 0xe8, 0x97, 0xfc, 0x70, 0x82, 0x14, 0xd9, 0xf0, 0x99, 0xf1, 0x07, 0x0d, 0x96, 0x07, - 0x2e, 0x20, 0xc7, 0x38, 0x76, 0x45, 0xe3, 0x7a, 0x65, 0x6b, 0xb0, 0x01, 0xc5, 0x9c, 0xf7, 0x4a, - 0x96, 0x70, 0x43, 0x72, 0xa5, 0x56, 0xf0, 0x67, 0x0d, 0xf2, 0x6d, 0x4c, 0x3b, 0xa8, 0x26, 0x6b, - 0xdd, 0x14, 0x55, 0x73, 0x4c, 0x57, 0x28, 0x6a, 0x1e, 0xeb, 0x0d, 0xe3, 0xb0, 0xc7, 0xcf, 0x43, - 0x2e, 0x4b, 0x6f, 0xc8, 0x41, 0x68, 0x53, 0xd4, 0x85, 0xdc, 0xe5, 0xea, 0x36, 0xc3, 0x1a, 0x7f, - 0xd1, 0x60, 0x96, 0x4d, 0xf0, 0xdb, 0x57, 0x84, 0x69, 0x67, 0x9a, 0xdb, 0x17, 0x5b, 0xbf, 0xc5, - 0xad, 0xd1, 0x36, 0x94, 0x78, 0x9f, 0x6a, 0x63, 0x5e, 0xba, 0xb2, 0xd5, 0xb9, 0x22, 0x87, 0x8a, - 0x01, 0xbb, 0x29, 0x90, 0xc0, 0x55, 0x3c, 0x99, 0x0a, 0xf5, 0x02, 0x09, 0x5c, 0xf1, 0xd3, 0xb8, - 0x27, 0xee, 0x7f, 0x8d, 0x3e, 0x71, 0x7a, 0xfc, 0x74, 0x7f, 0x17, 0xe6, 0x58, 0x13, 0x44, 0x92, - 0x15, 0x8d, 0x6f, 0xf1, 0xad, 0x49, 0xe5, 0x93, 0x58, 0x12, 0x60, 0xfc, 0x4d, 0x83, 0x97, 0x4e, - 0x9f, 0x36, 0xfe, 0x2d, 0x23, 0x9d, 0x5a, 0xb5, 0xcb, 0xa4, 0xd6, 0xd3, 0xf1, 0xae, 0x5f, 0x3a, - 0xde, 0x55, 0xc7, 0x95, 0xbb, 0x4c, 0xc7, 0xf5, 0x03, 0xf8, 0xfa, 0x98, 0xc3, 0x78, 0x35, 0x4b, - 0xac, 0x3e, 0xd1, 0xff, 0xf8, 0x6c, 0x4d, 0xfb, 0xea, 0xd9, 0x9a, 0xf6, 0xf7, 0x67, 0x6b, 0xda, - 0x2f, 0x9f, 0xaf, 0xcd, 0x7c, 0xf5, 0x7c, 0x6d, 0xe6, 0xaf, 0xcf, 0xd7, 0x66, 0x60, 0xcd, 0x09, - 0xbb, 0x17, 0xb0, 0x55, 0x0b, 0x75, 0xd2, 0x6f, 0xc7, 0x21, 0x0d, 0xdb, 0xda, 0xe7, 0xd6, 0x23, - 0x8f, 0x76, 0x7a, 0x07, 0x65, 0x27, 0xec, 0xae, 0x3b, 0x61, 0xd2, 0x0d, 0x93, 0xf5, 0x98, 0xf8, - 0xf8, 0x84, 0xc4, 0xeb, 0x47, 0xe6, 0xe0, 0xa7, 0xd3, 0xc1, 0x5e, 0x90, 0xac, 0x9f, 0xff, 0x97, - 0xcf, 0x1d, 0x97, 0xf4, 0xd5, 0xef, 0xdf, 0xe8, 0xb9, 0x76, 0xad, 0xfe, 0x5b, 0x7d, 0xb5, 0xad, - 0x24, 0xd4, 0x98, 0x84, 0x3a, 0xe9, 0x97, 0xef, 0x4b, 0x93, 0x3f, 0x0d, 0x27, 0x1f, 0xb2, 0xc9, - 0x87, 0x75, 0xd2, 0x7f, 0xa8, 0x26, 0x9f, 0xe9, 0xaf, 0x9f, 0x3f, 0xf9, 0xf0, 0xa3, 0x76, 0x55, - 0xb5, 0x01, 0xff, 0xd4, 0x5f, 0x56, 0x86, 0x1b, 0x1b, 0xcc, 0x72, 0x63, 0xa3, 0x4e, 0xfa, 0x1b, - 0x1b, 0xca, 0xf6, 0x60, 0x8e, 0xff, 0x79, 0xf4, 0xce, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x09, - 0x70, 0x9d, 0x73, 0xac, 0x1a, 0x00, 0x00, + // 1788 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x4f, 0x6f, 0xe3, 0xc6, + 0x15, 0xf7, 0x50, 0xb2, 0x2d, 0x3f, 0xc9, 0x1b, 0xef, 0x38, 0x68, 0x0d, 0x17, 0x71, 0x76, 0xd9, + 0xfc, 0xd9, 0x26, 0x85, 0x1c, 0x31, 0x29, 0x90, 0x7a, 0x9b, 0x6c, 0xac, 0x3f, 0x8e, 0xb5, 0x89, + 0x65, 0x86, 0x76, 0x76, 0x8b, 0xd4, 0x28, 0x31, 0x26, 0xc7, 0x2b, 0xa2, 0x14, 0xc9, 0x25, 0x47, + 0xb6, 0x7c, 0x2a, 0x50, 0xb4, 0xe8, 0x29, 0x68, 0xf3, 0x01, 0x8a, 0x22, 0x3d, 0xf6, 0x33, 0x14, + 0xed, 0xb5, 0x28, 0x5a, 0x60, 0x6f, 0xed, 0xa9, 0x28, 0xbc, 0x87, 0x02, 0xfd, 0x00, 0x45, 0x0f, + 0x3d, 0x14, 0x33, 0x1c, 0x8a, 0xb4, 0x2d, 0xaf, 0x44, 0xad, 0x7b, 0xc9, 0x4d, 0x33, 0xf3, 0x7e, + 0x3f, 0xbe, 0x99, 0xf7, 0xe6, 0xfd, 0x1e, 0x29, 0x78, 0x25, 0xa0, 0x5e, 0xbf, 0x77, 0x18, 0x92, + 0x75, 0xcb, 0x0f, 0xe9, 0xba, 0x4d, 0x07, 0xeb, 0xc7, 0x35, 0xe2, 0x06, 0x5d, 0x52, 0xe3, 0x83, + 0x6a, 0x10, 0xfa, 0xcc, 0xc7, 0xab, 0x89, 0x55, 0x95, 0x5b, 0x55, 0xf9, 0x42, 0x62, 0xb5, 0xfa, + 0xc6, 0x79, 0x06, 0x2b, 0x3c, 0x0d, 0x98, 0x9f, 0x92, 0xc4, 0xe3, 0x98, 0x47, 0xfd, 0x09, 0x82, + 0xe2, 0xde, 0x09, 0x09, 0xf0, 0x07, 0x30, 0x1b, 0x84, 0xbe, 0x7f, 0xb4, 0x82, 0x6e, 0xa1, 0x3b, + 0x65, 0xed, 0x8d, 0xea, 0xf9, 0x07, 0x48, 0x50, 0x42, 0x52, 0xfd, 0xec, 0x23, 0x8e, 0xd2, 0x39, + 0xc2, 0x88, 0x81, 0xf8, 0x5d, 0x28, 0x1e, 0xfa, 0xf6, 0xe9, 0x4a, 0x51, 0x10, 0xbc, 0x52, 0xbd, + 0xda, 0xc3, 0x2a, 0xc7, 0xd6, 0x7d, 0xfb, 0xd4, 0x10, 0x08, 0xf5, 0xe7, 0x08, 0x16, 0xf8, 0x54, + 0xc3, 0x25, 0x4e, 0x0f, 0xbf, 0x98, 0xf5, 0xa4, 0x92, 0xb0, 0xbf, 0x27, 0xd9, 0x15, 0xc1, 0xfe, + 0xad, 0x71, 0xec, 0x82, 0x2a, 0x7d, 0x04, 0x7e, 0x15, 0x6e, 0xd0, 0xc0, 0xb7, 0xba, 0xa6, 0xdd, + 0x0f, 0x09, 0x73, 0x7c, 0x6f, 0x65, 0xfe, 0x16, 0xba, 0x53, 0x34, 0x16, 0xc5, 0x6c, 0x53, 0x4e, + 0xaa, 0xbf, 0x2e, 0xc0, 0xe2, 0x39, 0x38, 0xde, 0x82, 0x05, 0xaf, 0xef, 0xba, 0xce, 0x91, 0x43, + 0x43, 0x79, 0x36, 0x77, 0xc6, 0x9c, 0x4d, 0x27, 0xb1, 0x37, 0x52, 0x28, 0x7e, 0x07, 0x0a, 0x47, + 0x94, 0x4a, 0xf7, 0xd5, 0x31, 0x0c, 0x5b, 0x94, 0x1a, 0xdc, 0x1c, 0xff, 0x10, 0x96, 0xfd, 0x3e, + 0x0b, 0xfa, 0xcc, 0xac, 0x99, 0x96, 0xdf, 0xeb, 0x39, 0xac, 0x47, 0x3d, 0xb6, 0x52, 0x10, 0x2c, + 0xd5, 0x31, 0x2c, 0x7b, 0x8c, 0x30, 0xda, 0x18, 0xa2, 0x8c, 0x9b, 0x31, 0x55, 0x2d, 0x9d, 0xca, + 0xf0, 0x6b, 0x59, 0xfe, 0xe2, 0xf3, 0xf0, 0x6b, 0x19, 0x7e, 0x1d, 0xca, 0x92, 0xdf, 0x26, 0x8c, + 0xac, 0xcc, 0x09, 0xde, 0xf5, 0x67, 0x05, 0xaf, 0x4e, 0x98, 0xd5, 0xe5, 0x21, 0xd8, 0x15, 0xb8, + 0x26, 0x61, 0xc4, 0x00, 0x7f, 0xf8, 0x5b, 0xfd, 0x8f, 0x02, 0xa5, 0x24, 0x7d, 0xf0, 0x7d, 0xa8, + 0xb0, 0x90, 0xd8, 0x8e, 0xf7, 0xc8, 0x0c, 0x88, 0x93, 0xc4, 0xe7, 0xf5, 0x67, 0xf1, 0xef, 0xc7, + 0xf6, 0x3a, 0x71, 0x42, 0xa3, 0xcc, 0xd2, 0x01, 0xde, 0x84, 0x05, 0x9b, 0xba, 0x8c, 0x98, 0x35, + 0xd3, 0x91, 0x61, 0x7a, 0x75, 0xcc, 0x01, 0x6c, 0xf6, 0xfc, 0xbe, 0xc7, 0x8c, 0x79, 0x81, 0xab, + 0xb5, 0x53, 0x0a, 0xcd, 0x74, 0x64, 0x8c, 0x72, 0x51, 0x68, 0x6d, 0xfc, 0x10, 0x6e, 0x1c, 0x51, + 0x7a, 0x39, 0x16, 0x6f, 0x8d, 0xe1, 0xa9, 0x13, 0x97, 0x78, 0x56, 0x36, 0x1a, 0x8b, 0x47, 0x34, + 0x33, 0xc4, 0x9b, 0x30, 0x1f, 0x90, 0x53, 0xd7, 0x27, 0xf6, 0xca, 0xec, 0xf8, 0x53, 0x12, 0x97, + 0x3b, 0x36, 0x37, 0x12, 0x9c, 0xfa, 0x53, 0x04, 0xe5, 0xcc, 0x02, 0xee, 0x00, 0x64, 0xfc, 0x44, + 0x53, 0xe5, 0x4c, 0x86, 0x41, 0xdc, 0x51, 0x4f, 0x00, 0xa8, 0x6d, 0x46, 0x27, 0x24, 0x10, 0x61, + 0xa8, 0x18, 0x8b, 0xc3, 0x59, 0xfe, 0x74, 0xf5, 0x67, 0xf2, 0x8e, 0xea, 0x2e, 0x71, 0x3c, 0x46, + 0x07, 0xec, 0x2b, 0x98, 0x06, 0xf7, 0x60, 0xc1, 0xe2, 0x25, 0xc8, 0xe4, 0x35, 0xa3, 0x38, 0x71, + 0xcd, 0x28, 0x09, 0xd0, 0x16, 0xa5, 0xf8, 0x23, 0x58, 0x8c, 0x09, 0x88, 0x6d, 0x87, 0x34, 0x8a, + 0x64, 0xd0, 0x5f, 0x1b, 0xe7, 0x47, 0x6c, 0x6d, 0x54, 0x04, 0x58, 0x8e, 0x78, 0x45, 0x0e, 0x23, + 0x4a, 0x6d, 0x71, 0x7f, 0x2b, 0x46, 0x3c, 0x50, 0x3f, 0x01, 0xbc, 0xe3, 0x5b, 0x3f, 0xda, 0x72, + 0xfd, 0x93, 0x86, 0x13, 0x74, 0x69, 0x28, 0x62, 0x71, 0x17, 0x66, 0x8f, 0x89, 0xdb, 0xa7, 0x32, + 0x08, 0x13, 0x6e, 0x3c, 0xc6, 0xa8, 0x3f, 0x8e, 0xef, 0xb6, 0xee, 0x12, 0x0f, 0xeb, 0x70, 0x83, + 0xe7, 0x80, 0x19, 0x24, 0x61, 0x96, 0x8c, 0x63, 0x4b, 0xff, 0x30, 0x2f, 0x8c, 0xc5, 0xe8, 0x5c, + 0x9a, 0xdc, 0x86, 0x0a, 0xbf, 0x5b, 0x87, 0xae, 0xe3, 0xf1, 0x70, 0xcb, 0xec, 0x2a, 0x1f, 0x51, + 0x5a, 0x97, 0x53, 0xea, 0xbf, 0x51, 0xa6, 0xfe, 0xff, 0x9f, 0xdc, 0x58, 0x85, 0x52, 0xe0, 0x47, + 0x8e, 0x10, 0x21, 0x45, 0x88, 0xd0, 0x70, 0x7c, 0xb1, 0x5e, 0x16, 0x9e, 0xbb, 0x5e, 0x8e, 0x10, + 0xbe, 0xe2, 0x28, 0xe1, 0xfb, 0xaf, 0x2c, 0xab, 0x0f, 0x1c, 0x7a, 0x82, 0xb7, 0x61, 0xfe, 0xd8, + 0x89, 0x9c, 0x43, 0x37, 0x89, 0xe2, 0xb7, 0xc7, 0x6d, 0x96, 0xc3, 0xaa, 0x0f, 0x62, 0xcc, 0xf6, + 0x8c, 0x91, 0xc0, 0x71, 0x0b, 0xe6, 0xfc, 0x80, 0x3c, 0xee, 0x27, 0xc2, 0xf7, 0xe6, 0x44, 0x44, + 0xbb, 0x02, 0xb2, 0x3d, 0x63, 0x48, 0xf0, 0xea, 0x17, 0x08, 0xe6, 0x25, 0x3b, 0x7e, 0x07, 0x8a, + 0xa2, 0x36, 0xc4, 0x9e, 0xdd, 0x1a, 0x47, 0x68, 0x08, 0xeb, 0x11, 0x61, 0x2c, 0x3c, 0x5f, 0x18, + 0x57, 0xdf, 0x87, 0xb9, 0xd8, 0xcf, 0xe9, 0x3c, 0xaa, 0x97, 0x61, 0x41, 0x78, 0x74, 0xec, 0xd0, + 0x13, 0xf5, 0x9f, 0xd9, 0xbe, 0x43, 0xc4, 0x60, 0xe7, 0x62, 0x0c, 0x6a, 0x13, 0xb5, 0x3c, 0x57, + 0x05, 0xe2, 0xfe, 0x85, 0x40, 0xbc, 0x35, 0x39, 0xdb, 0xa5, 0x68, 0xfc, 0x35, 0x13, 0x8d, 0x26, + 0x80, 0xd8, 0x85, 0xa8, 0x17, 0x57, 0xdc, 0xf9, 0xd1, 0xdc, 0x86, 0xd8, 0x7e, 0xdc, 0xf2, 0xd5, + 0xa1, 0x94, 0xb4, 0x39, 0xd2, 0xbf, 0xd7, 0xc7, 0xf5, 0x58, 0x3e, 0xa3, 0xdc, 0x3b, 0x63, 0x5e, + 0x36, 0x35, 0x19, 0x0e, 0x4d, 0xc6, 0x36, 0x2f, 0x87, 0xb6, 0xda, 0x19, 0xc6, 0xf4, 0x5a, 0xf6, + 0x55, 0xbf, 0x09, 0x2f, 0xa4, 0x2c, 0x71, 0xa4, 0x7f, 0x81, 0xa0, 0x9c, 0x11, 0x1f, 0x7c, 0x0f, + 0xe6, 0x49, 0x14, 0x51, 0xbe, 0x73, 0x34, 0x59, 0x89, 0xe6, 0xd6, 0x6d, 0xdb, 0x98, 0x13, 0xb0, + 0x5a, 0x4a, 0xa0, 0xc9, 0xa3, 0xcb, 0x47, 0xa0, 0xa9, 0x9f, 0x23, 0x58, 0x6e, 0x3a, 0x21, 0xb5, + 0x18, 0xb5, 0xb3, 0x9e, 0x7d, 0x0f, 0x66, 0x23, 0x46, 0x42, 0x96, 0xd3, 0xaf, 0x18, 0x84, 0xdf, + 0x85, 0x02, 0xf5, 0xec, 0x9c, 0x2e, 0x71, 0x88, 0xfa, 0x79, 0x11, 0x96, 0x47, 0x54, 0x35, 0xfc, + 0x3e, 0xcc, 0x4b, 0x65, 0xce, 0xa7, 0x2d, 0x73, 0xb1, 0x2e, 0xa7, 0x78, 0x2d, 0x9f, 0xae, 0xc7, + 0x78, 0x0d, 0x37, 0x00, 0x5c, 0xd2, 0x3b, 0xb4, 0x79, 0x6b, 0x50, 0xcb, 0xa7, 0xeb, 0xa5, 0x18, + 0x58, 0xab, 0x65, 0x48, 0x34, 0xb3, 0x26, 0x95, 0x3d, 0x1f, 0x89, 0x56, 0x3b, 0xe7, 0x89, 0x26, + 0x95, 0x3d, 0xa7, 0x27, 0xda, 0x39, 0x4f, 0x34, 0xd9, 0x99, 0xe7, 0xf4, 0x44, 0xc3, 0x5f, 0x83, + 0xb9, 0x2e, 0x75, 0x1e, 0x75, 0x99, 0x7c, 0x9d, 0x92, 0xa3, 0x4b, 0x1d, 0x59, 0x69, 0xfa, 0x8e, + 0x4c, 0xfd, 0x15, 0x82, 0x17, 0xe4, 0xe2, 0x56, 0xdf, 0xb3, 0x84, 0x4e, 0xee, 0xc0, 0x82, 0xe5, + 0xf7, 0x02, 0xdf, 0x4b, 0x3b, 0xcf, 0x31, 0x2a, 0x19, 0xd2, 0x0b, 0x1c, 0x46, 0xca, 0x80, 0xef, + 0x42, 0x51, 0xb8, 0xa9, 0xe4, 0x73, 0x53, 0x80, 0xd4, 0x2f, 0x10, 0xcf, 0xd7, 0x4b, 0xfc, 0x78, + 0x29, 0x7e, 0xe3, 0xe3, 0xde, 0x2d, 0xc6, 0x6f, 0x73, 0x6f, 0x03, 0x0a, 0xf2, 0xe5, 0x1e, 0x0a, + 0x38, 0xe8, 0x71, 0xbe, 0x6c, 0x43, 0x8f, 0xd5, 0x01, 0x94, 0x0c, 0x1a, 0xd1, 0xf0, 0x98, 0x46, + 0xf8, 0x3b, 0xa0, 0x84, 0x39, 0xaf, 0x8c, 0x12, 0xd6, 0x04, 0x2c, 0xe7, 0x4d, 0x51, 0x42, 0x4d, + 0x3d, 0x43, 0x50, 0xd2, 0x93, 0x76, 0xe6, 0x3d, 0x28, 0x04, 0x5d, 0x47, 0x3e, 0xfb, 0xcd, 0x09, + 0x8e, 0x75, 0x18, 0x1c, 0x8e, 0xe3, 0x7d, 0xa7, 0xe7, 0x7b, 0x16, 0x95, 0x9d, 0x5a, 0x3c, 0xc0, + 0xf7, 0x44, 0x5d, 0x62, 0x74, 0x12, 0x05, 0x4f, 0x3c, 0x11, 0xaf, 0x1d, 0x46, 0x8c, 0xc3, 0x1f, + 0x40, 0x29, 0x94, 0x87, 0x33, 0xc9, 0xc7, 0x8a, 0xe4, 0x20, 0x8d, 0x21, 0x4a, 0x55, 0x01, 0x12, + 0xe6, 0xb6, 0xcd, 0xdd, 0x74, 0x3c, 0x4f, 0x7e, 0x1e, 0xa8, 0x18, 0xf1, 0x40, 0xfd, 0x52, 0x81, + 0xc5, 0x73, 0x8f, 0xc7, 0x9f, 0x24, 0x8e, 0x73, 0xbb, 0x1b, 0xda, 0xdd, 0x89, 0x1d, 0x3f, 0x3f, + 0x6a, 0x79, 0xfd, 0x9e, 0xdc, 0x8a, 0xfa, 0x3b, 0x04, 0x37, 0x2f, 0x2d, 0xe2, 0x6f, 0xc2, 0xcb, + 0xfa, 0xee, 0x5e, 0x7b, 0xbf, 0xbd, 0xdb, 0x31, 0xf7, 0xf6, 0x37, 0xf7, 0x5b, 0x66, 0xab, 0xf3, + 0xe9, 0x8e, 0xf9, 0x69, 0x67, 0x4f, 0x6f, 0x35, 0xda, 0x5b, 0xed, 0x56, 0x73, 0x69, 0x06, 0xaf, + 0xc1, 0xea, 0x28, 0xa3, 0x5d, 0xbd, 0xd5, 0x69, 0x35, 0x97, 0xd0, 0x55, 0xeb, 0x8d, 0x8f, 0x77, + 0xf7, 0x5a, 0xcd, 0x25, 0x05, 0xdf, 0x86, 0x97, 0x46, 0xad, 0x3f, 0x6c, 0xef, 0x6f, 0x37, 0x8d, + 0xcd, 0x87, 0x9d, 0xa5, 0x02, 0x7e, 0x19, 0xbe, 0x31, 0x9a, 0x62, 0xb3, 0xbd, 0xd3, 0x6a, 0x2e, + 0x15, 0xf9, 0xd5, 0x99, 0xfd, 0x38, 0xe8, 0x1c, 0x31, 0xfc, 0x21, 0x94, 0x93, 0x26, 0xd8, 0x74, + 0xec, 0x2b, 0x24, 0x67, 0xe4, 0x09, 0xb5, 0x6d, 0x03, 0x82, 0x34, 0x18, 0xc3, 0xec, 0x50, 0xa6, + 0xcb, 0x0e, 0x55, 0x87, 0x4a, 0x32, 0xbf, 0x1b, 0x50, 0x8f, 0x67, 0xcb, 0xb0, 0x5d, 0x47, 0xe3, + 0xb3, 0x25, 0xc1, 0xa6, 0x4d, 0xbd, 0xfa, 0xfd, 0x34, 0x11, 0x1a, 0xae, 0x1f, 0xd1, 0x6b, 0xdb, + 0xac, 0xfa, 0x7b, 0x04, 0x4b, 0xc9, 0xd2, 0x43, 0x87, 0x75, 0xed, 0x90, 0x9c, 0x5c, 0xdf, 0x51, + 0x12, 0x58, 0x4e, 0x32, 0x3e, 0xfb, 0x41, 0x42, 0x99, 0xf2, 0x83, 0x04, 0x4e, 0xc8, 0xd2, 0x39, + 0xf5, 0x0f, 0x08, 0x96, 0x87, 0x27, 0x46, 0x4f, 0x48, 0x68, 0xc7, 0x0d, 0xe1, 0xb5, 0xed, 0xc1, + 0x04, 0x1c, 0x0a, 0xde, 0x6b, 0xd9, 0xc2, 0x4d, 0xc9, 0x95, 0xd9, 0xc1, 0x9f, 0x11, 0x14, 0x75, + 0xc2, 0xba, 0xb8, 0x21, 0x35, 0x64, 0x02, 0x35, 0x1a, 0xd1, 0x6d, 0xc5, 0x5a, 0xc2, 0x7b, 0xae, + 0xd0, 0xef, 0x8b, 0xec, 0x2d, 0xe4, 0xe9, 0xb9, 0x04, 0x08, 0x6f, 0xc6, 0xe5, 0xb6, 0x30, 0x9d, + 0x1e, 0x72, 0xac, 0xfa, 0x17, 0x04, 0xb3, 0x7c, 0x41, 0xbc, 0xd5, 0x04, 0x84, 0x75, 0x27, 0x79, + 0xab, 0xe1, 0xfb, 0x37, 0x84, 0x35, 0xde, 0x86, 0x8a, 0xe8, 0xff, 0x4c, 0x22, 0x24, 0x21, 0x9f, + 0x7e, 0x94, 0x05, 0x34, 0x1e, 0xf0, 0x0e, 0x9c, 0x7a, 0x76, 0xc2, 0x93, 0x4b, 0x00, 0x17, 0xa8, + 0x67, 0xc7, 0x3f, 0xd5, 0xfb, 0xf1, 0x7b, 0x55, 0x6b, 0x40, 0xad, 0xbe, 0x90, 0xa4, 0xef, 0xc2, + 0x1c, 0x6f, 0x2e, 0x68, 0xb4, 0x82, 0xc4, 0x11, 0xdf, 0x1e, 0xa7, 0x4a, 0xd4, 0x90, 0x00, 0xf5, + 0xef, 0x08, 0x5e, 0xbc, 0x78, 0xdb, 0xc4, 0x37, 0x82, 0xac, 0xa0, 0xa0, 0x69, 0x04, 0xe5, 0x62, + 0xbe, 0x2b, 0x53, 0xe7, 0x7b, 0xd2, 0xc9, 0x14, 0xa6, 0xe9, 0x64, 0x7e, 0x00, 0x5f, 0x1f, 0x71, + 0x19, 0xaf, 0x67, 0x8b, 0xf5, 0x2f, 0x95, 0x3f, 0x9e, 0xad, 0xa1, 0x27, 0x67, 0x6b, 0xe8, 0x1f, + 0x67, 0x6b, 0xe8, 0x97, 0x4f, 0xd7, 0x66, 0x9e, 0x3c, 0x5d, 0x9b, 0xf9, 0xdb, 0xd3, 0xb5, 0x19, + 0x58, 0xb3, 0xfc, 0xde, 0x33, 0xd8, 0xea, 0xa5, 0x26, 0x1d, 0xe8, 0xa1, 0xcf, 0x7c, 0x1d, 0x7d, + 0x66, 0x3c, 0x72, 0x58, 0xb7, 0x7f, 0x58, 0xb5, 0xfc, 0xde, 0xba, 0xe5, 0x47, 0x3d, 0x3f, 0x5a, + 0x0f, 0xa9, 0x4b, 0x4e, 0x69, 0xb8, 0x7e, 0xac, 0x0d, 0x7f, 0x5a, 0x5d, 0xe2, 0x78, 0xd1, 0xfa, + 0xd5, 0x7f, 0xa5, 0xdc, 0xb5, 0xe9, 0x20, 0xf9, 0xfd, 0x1b, 0xa5, 0xa0, 0x37, 0x9a, 0xbf, 0x55, + 0x56, 0xf5, 0xc4, 0x85, 0x06, 0x77, 0xa1, 0x49, 0x07, 0xd5, 0x07, 0xd2, 0xe4, 0x4f, 0xe9, 0xe2, + 0x01, 0x5f, 0x3c, 0x68, 0xd2, 0xc1, 0x41, 0xb2, 0x78, 0xa6, 0xbc, 0x76, 0xf5, 0xe2, 0xc1, 0x87, + 0x7a, 0x7d, 0x87, 0x32, 0x62, 0x13, 0x46, 0xfe, 0xa5, 0xbc, 0x94, 0x18, 0x6e, 0x6c, 0x70, 0xcb, + 0x8d, 0x8d, 0x26, 0x1d, 0x6c, 0x6c, 0x24, 0xb6, 0x87, 0x73, 0xe2, 0x4f, 0x99, 0xb7, 0xff, 0x17, + 0x00, 0x00, 0xff, 0xff, 0x38, 0x61, 0x76, 0x55, 0x04, 0x1a, 0x00, 0x00, } func (m *Swap) Marshal() (dAtA []byte, err error) { @@ -3621,6 +3563,30 @@ func (m *Position) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Reserves != nil { + { + size, err := m.Reserves.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } if len(m.Nonce) > 0 { i -= len(m.Nonce) copy(dAtA[i:], m.Nonce) @@ -3701,65 +3667,6 @@ func (m *PositionState) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *PositionMetadata) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PositionMetadata) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PositionMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Reserves != nil { - { - size, err := m.Reserves.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.State != nil { - { - size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Position != nil { - { - size, err := m.Position.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *LpNft) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3827,18 +3734,6 @@ func (m *PositionOpen) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.InitialReserves != nil { - { - size, err := m.InitialReserves.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } if m.Position != nil { { size, err := m.Position.MarshalToSizedBuffer(dAtA[:i]) @@ -4721,6 +4616,14 @@ func (m *Position) Size() (n int) { if l > 0 { n += 1 + l + sovDex(uint64(l)) } + if m.State != nil { + l = m.State.Size() + n += 1 + l + sovDex(uint64(l)) + } + if m.Reserves != nil { + l = m.Reserves.Size() + n += 1 + l + sovDex(uint64(l)) + } return n } @@ -4749,27 +4652,6 @@ func (m *PositionState) Size() (n int) { return n } -func (m *PositionMetadata) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Position != nil { - l = m.Position.Size() - n += 1 + l + sovDex(uint64(l)) - } - if m.State != nil { - l = m.State.Size() - n += 1 + l + sovDex(uint64(l)) - } - if m.Reserves != nil { - l = m.Reserves.Size() - n += 1 + l + sovDex(uint64(l)) - } - return n -} - func (m *LpNft) Size() (n int) { if m == nil { return 0 @@ -4797,10 +4679,6 @@ func (m *PositionOpen) Size() (n int) { l = m.Position.Size() n += 1 + l + sovDex(uint64(l)) } - if m.InitialReserves != nil { - l = m.InitialReserves.Size() - n += 1 + l + sovDex(uint64(l)) - } return n } @@ -8162,61 +8040,47 @@ func (m *Position) Unmarshal(dAtA []byte) error { m.Nonce = []byte{} } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipDex(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDex + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if msglen < 0 { + return ErrInvalidLengthDex } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PositionId) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDex } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.State == nil { + m.State = &PositionState{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PositionId: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PositionId: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Reserves", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -8226,24 +8090,26 @@ func (m *PositionId) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthDex } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthDex } if postIndex > l { return io.ErrUnexpectedEOF } - m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) - if m.Inner == nil { - m.Inner = []byte{} + if m.Reserves == nil { + m.Reserves = &Reserves{} + } + if err := m.Reserves.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -8267,7 +8133,7 @@ func (m *PositionId) Unmarshal(dAtA []byte) error { } return nil } -func (m *PositionState) Unmarshal(dAtA []byte) error { +func (m *PositionId) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8290,17 +8156,17 @@ func (m *PositionState) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PositionState: wiretype end group for non-group") + return fmt.Errorf("proto: PositionId: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PositionState: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PositionId: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) } - m.State = 0 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -8310,11 +8176,26 @@ func (m *PositionState) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.State |= PositionState_PositionStateEnum(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -8336,7 +8217,7 @@ func (m *PositionState) Unmarshal(dAtA []byte) error { } return nil } -func (m *PositionMetadata) Unmarshal(dAtA []byte) error { +func (m *PositionState) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8359,89 +8240,17 @@ func (m *PositionMetadata) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PositionMetadata: wiretype end group for non-group") + return fmt.Errorf("proto: PositionState: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PositionMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PositionState: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Position == nil { - m.Position = &Position{} - } - if err := m.Position.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.State == nil { - m.State = &PositionState{} - } - if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reserves", wireType) - } - var msglen int + m.State = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -8451,28 +8260,11 @@ func (m *PositionMetadata) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.State |= PositionState_PositionStateEnum(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Reserves == nil { - m.Reserves = &Reserves{} - } - if err := m.Reserves.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -8681,42 +8473,6 @@ func (m *PositionOpen) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InitialReserves", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.InitialReserves == nil { - m.InitialReserves = &Reserves{} - } - if err := m.InitialReserves.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) diff --git a/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go b/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go index a359335de..51a916c78 100644 --- a/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go +++ b/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go @@ -360,7 +360,7 @@ type DelegatorVote struct { // The vote authorization signature is authorizing data. AuthSig *v1alpha1.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` // The vote proof is authorizing data. - Proof []byte `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` + Proof *v1alpha1.ZKDelegatorVoteProof `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` } func (m *DelegatorVote) Reset() { *m = DelegatorVote{} } @@ -410,7 +410,7 @@ func (m *DelegatorVote) GetAuthSig() *v1alpha1.SpendAuthSignature { return nil } -func (m *DelegatorVote) GetProof() []byte { +func (m *DelegatorVote) GetProof() *v1alpha1.ZKDelegatorVoteProof { if m != nil { return m.Proof } @@ -1811,101 +1811,102 @@ func init() { } var fileDescriptor_1bc89f5bf0aed114 = []byte{ - // 1502 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, - 0x16, 0x16, 0x65, 0x59, 0x3f, 0xc7, 0xb6, 0xac, 0xcc, 0xf5, 0x0d, 0x74, 0x75, 0xef, 0x35, 0x12, - 0x25, 0xb9, 0x37, 0x48, 0x1b, 0xa9, 0x71, 0x5a, 0xa4, 0x51, 0x16, 0x8d, 0x25, 0xff, 0x22, 0x89, - 0xad, 0x50, 0xae, 0xd3, 0xa6, 0x06, 0xd8, 0x91, 0x38, 0x96, 0x08, 0x53, 0x33, 0x04, 0x39, 0xb2, - 0xa1, 0x3e, 0x41, 0xbb, 0x0b, 0xd0, 0x37, 0x28, 0x50, 0x14, 0xe8, 0x3b, 0x64, 0x5f, 0x14, 0x68, - 0x91, 0x65, 0xba, 0x2b, 0xec, 0x5d, 0x5f, 0xa1, 0x9b, 0x62, 0x86, 0xc3, 0x1f, 0xdb, 0x69, 0x14, - 0xd9, 0x0d, 0xba, 0xe3, 0x39, 0x3c, 0xdf, 0x77, 0x7e, 0xe6, 0xcc, 0xcc, 0x21, 0x61, 0xc1, 0x21, - 0x74, 0xd0, 0x6f, 0xbb, 0xb8, 0xda, 0x61, 0x2e, 0xa9, 0x76, 0xd9, 0x3e, 0x71, 0x29, 0xa6, 0x1d, - 0x52, 0xdd, 0xbf, 0x85, 0x6d, 0xa7, 0x87, 0x6f, 0xc5, 0x74, 0x15, 0xc7, 0x65, 0x9c, 0xa1, 0xcb, - 0x01, 0xa6, 0x22, 0x30, 0x95, 0xd8, 0xfb, 0x00, 0x53, 0xfa, 0x57, 0x97, 0xb1, 0xae, 0x4d, 0xaa, - 0x12, 0xd0, 0x1e, 0xec, 0x56, 0x31, 0x1d, 0xfa, 0xe8, 0xd2, 0x8d, 0xe3, 0x1e, 0x3b, 0xee, 0xd0, - 0xe1, 0x2c, 0xf2, 0xe6, 0xcb, 0xca, 0xf6, 0xfa, 0x09, 0xdb, 0x1e, 0xb6, 0x68, 0xcc, 0x54, 0x88, - 0xbe, 0x65, 0xf9, 0x3b, 0x0d, 0xf2, 0x4d, 0x97, 0x39, 0xcc, 0xc3, 0x76, 0x6b, 0xd0, 0xee, 0x5b, - 0x1c, 0xad, 0x42, 0xd6, 0x51, 0x9a, 0xa2, 0x76, 0x49, 0xbb, 0x3e, 0xb5, 0xf0, 0x4e, 0x65, 0x64, - 0xe4, 0x95, 0x80, 0x44, 0x0f, 0xc1, 0xe8, 0x21, 0xe4, 0x4d, 0xe2, 0x30, 0xcf, 0xe2, 0x06, 0xee, - 0xb3, 0x01, 0xe5, 0xc5, 0x09, 0x49, 0x77, 0xed, 0x04, 0x9d, 0x0a, 0x3d, 0xa4, 0x5a, 0x94, 0xc6, - 0xfa, 0x8c, 0x02, 0xfb, 0x62, 0x79, 0x05, 0x0a, 0x81, 0x8f, 0x27, 0x16, 0xef, 0x99, 0x2e, 0x3e, - 0x40, 0xa5, 0x13, 0xa1, 0xa6, 0x62, 0xde, 0x2f, 0x42, 0xda, 0x25, 0xd8, 0x63, 0xb4, 0x98, 0xbc, - 0xa4, 0x5d, 0xcf, 0xe9, 0x4a, 0x2a, 0xff, 0xac, 0xc1, 0x5c, 0x40, 0xb4, 0xe4, 0x7b, 0x68, 0xd8, - 0xd8, 0xea, 0xbf, 0x96, 0xec, 0x74, 0x2a, 0xc9, 0xb3, 0xa7, 0x82, 0x1e, 0x42, 0x86, 0x0d, 0x78, - 0x87, 0xf5, 0x89, 0xaa, 0xc8, 0xc2, 0x18, 0x05, 0xde, 0xf4, 0x91, 0x7a, 0x40, 0x21, 0x96, 0x70, - 0x66, 0x1b, 0xdb, 0x96, 0x89, 0x39, 0x73, 0xb7, 0x19, 0x27, 0x68, 0x0d, 0x52, 0x6d, 0x66, 0x0e, - 0xd5, 0xea, 0xbd, 0xff, 0x06, 0xe4, 0xc7, 0xf0, 0x75, 0x66, 0x0e, 0x75, 0xc9, 0x80, 0x1e, 0x42, - 0x16, 0x0f, 0x78, 0xcf, 0xf0, 0xac, 0xae, 0xca, 0xf8, 0xd6, 0x88, 0x8c, 0x5b, 0x0e, 0xa1, 0xe6, - 0xe2, 0x80, 0xf7, 0x5a, 0x56, 0x97, 0x62, 0x3e, 0x70, 0x89, 0x9e, 0xc1, 0xbe, 0x58, 0x7e, 0x96, - 0x84, 0x0b, 0xa7, 0x3c, 0xbd, 0xb6, 0xee, 0xf7, 0x20, 0xb5, 0xcf, 0x38, 0x51, 0xbe, 0xff, 0xff, - 0x26, 0x99, 0x30, 0x4e, 0x74, 0x09, 0x42, 0x8f, 0x60, 0xda, 0x32, 0x09, 0xe5, 0x16, 0x1f, 0x1a, - 0x7b, 0x64, 0xa8, 0x6a, 0x7d, 0x63, 0x44, 0x02, 0xeb, 0x0a, 0xf2, 0x80, 0x0c, 0xf5, 0x29, 0x2b, - 0x12, 0x50, 0x0b, 0xf2, 0x91, 0x43, 0x49, 0x98, 0x92, 0x84, 0xef, 0x8e, 0x20, 0x5c, 0x0d, 0x41, - 0x82, 0x72, 0xa6, 0x1b, 0x17, 0xcb, 0xcf, 0x35, 0x98, 0x59, 0x22, 0x36, 0xe9, 0x9e, 0x63, 0xf1, - 0x8e, 0xe1, 0xdf, 0xd6, 0xe2, 0xa1, 0x39, 0x98, 0x74, 0x5c, 0xc6, 0x76, 0x65, 0x19, 0xa7, 0x75, - 0x5f, 0x28, 0xff, 0x94, 0x84, 0x0b, 0xa7, 0xfc, 0xbf, 0x76, 0x49, 0xaf, 0x41, 0xde, 0xe3, 0xd8, - 0xe5, 0x86, 0xdc, 0x11, 0x96, 0xda, 0x9f, 0x29, 0x7d, 0x46, 0x6a, 0x9b, 0x4a, 0x19, 0xae, 0xfc, - 0xc4, 0x59, 0x56, 0xbe, 0x06, 0x93, 0xfb, 0xd8, 0x1e, 0x10, 0xb5, 0x42, 0x57, 0x47, 0xa4, 0xbd, - 0x2d, 0x6c, 0x75, 0x1f, 0x82, 0x36, 0x60, 0x76, 0x40, 0xdb, 0x8c, 0x9a, 0xc4, 0x0c, 0xf6, 0xfa, - 0xe4, 0x38, 0x7b, 0x3d, 0x1f, 0xa0, 0xd5, 0x66, 0xff, 0x0f, 0xe4, 0xe8, 0xc0, 0xb6, 0xad, 0x5d, - 0x8b, 0xb8, 0xc5, 0xb4, 0xac, 0x5d, 0xa4, 0x40, 0x79, 0x48, 0xba, 0x7b, 0xc5, 0x8c, 0x54, 0x27, - 0xdd, 0xbd, 0xf2, 0xef, 0x27, 0xeb, 0xd9, 0xb4, 0x31, 0xfd, 0xdb, 0xeb, 0xb9, 0x04, 0x53, 0x1e, - 0xc7, 0x7b, 0xc4, 0x34, 0xa8, 0xe0, 0xf0, 0xab, 0x7a, 0x65, 0x44, 0x3d, 0x36, 0x04, 0x1e, 0x7c, - 0x9c, 0x78, 0x46, 0xef, 0xc1, 0x5c, 0x8c, 0x25, 0x8a, 0x77, 0x52, 0xc6, 0x8b, 0x22, 0xcb, 0x30, - 0xe8, 0x57, 0xac, 0x45, 0xfa, 0x3c, 0x6b, 0x31, 0x0f, 0xe0, 0x62, 0x6a, 0xb2, 0xbe, 0xf5, 0x05, - 0x71, 0x55, 0xd5, 0x63, 0x9a, 0xf2, 0x1a, 0xc0, 0x12, 0x66, 0xea, 0x56, 0x88, 0xba, 0x48, 0x1b, - 0xbb, 0x8b, 0xca, 0x2b, 0x90, 0x5d, 0xc2, 0x4c, 0xee, 0xa7, 0x73, 0xf1, 0x7c, 0xa5, 0x41, 0x6e, - 0x09, 0xb3, 0xcd, 0x01, 0x77, 0x06, 0xe7, 0x8a, 0x08, 0xdd, 0x87, 0x0c, 0x36, 0x4d, 0x97, 0x78, - 0x9e, 0x3a, 0x0c, 0xfe, 0x37, 0xaa, 0x86, 0xbe, 0xb5, 0x1e, 0xc0, 0xca, 0x5f, 0x6b, 0x90, 0x92, - 0x47, 0xd4, 0x7d, 0xd5, 0x4b, 0x22, 0x8a, 0xfc, 0xa9, 0xf3, 0xef, 0xcf, 0x7a, 0x29, 0xd6, 0x50, - 0xe5, 0x75, 0xc5, 0x34, 0x07, 0x85, 0xed, 0xcd, 0xad, 0x65, 0xe3, 0xe3, 0x8d, 0x56, 0x73, 0xb9, - 0xb1, 0xbe, 0xb2, 0xbe, 0xbc, 0x54, 0x48, 0xa0, 0x02, 0x4c, 0x4b, 0xed, 0x62, 0xbd, 0xb5, 0xb5, - 0xb8, 0xbe, 0x51, 0xd0, 0xd0, 0x34, 0x64, 0xa5, 0xe6, 0xd3, 0xe5, 0x56, 0x21, 0x89, 0xa6, 0x20, - 0x23, 0xa5, 0x8d, 0xcd, 0xc2, 0x44, 0xf9, 0x65, 0x0a, 0x66, 0xc2, 0x09, 0x86, 0x63, 0x4e, 0xd0, - 0x63, 0x48, 0xef, 0x33, 0x6e, 0xd1, 0xe0, 0xd4, 0xbb, 0x33, 0xc6, 0xed, 0x2a, 0x19, 0x44, 0xa4, - 0x16, 0xed, 0xae, 0x25, 0x74, 0x45, 0x84, 0x9e, 0x42, 0xee, 0x40, 0x0d, 0x1d, 0x54, 0x6d, 0xa1, - 0xda, 0xd8, 0xac, 0xc1, 0xd8, 0x42, 0xd7, 0x12, 0x7a, 0x44, 0x87, 0x9e, 0x40, 0x76, 0xd7, 0xa2, - 0x96, 0xd7, 0x23, 0xa6, 0xda, 0x59, 0x77, 0xc7, 0xa6, 0x5e, 0x51, 0x04, 0x6b, 0x09, 0x3d, 0x24, - 0x43, 0x5b, 0x90, 0xe9, 0x88, 0xc9, 0x86, 0x98, 0xea, 0x04, 0xfb, 0x70, 0x6c, 0xde, 0x86, 0x8f, - 0x5f, 0x4b, 0xe8, 0x01, 0x55, 0x29, 0x0b, 0x69, 0xbf, 0x3c, 0xa5, 0x2b, 0x90, 0x0b, 0x53, 0x8a, - 0x8d, 0x5b, 0x5a, 0x7c, 0xdc, 0x2a, 0x7d, 0x02, 0xd9, 0x20, 0xb8, 0xf8, 0xdc, 0xa3, 0x9d, 0x7b, - 0xee, 0x29, 0x3d, 0x81, 0x8c, 0x0a, 0xef, 0xaf, 0x25, 0xae, 0x67, 0x60, 0xd2, 0x13, 0xd9, 0x97, - 0x8f, 0x26, 0x60, 0xf6, 0x84, 0x15, 0x6a, 0x41, 0xda, 0xc1, 0x9e, 0x47, 0x4c, 0xe5, 0xe9, 0xee, - 0xf8, 0x9e, 0x2a, 0x4d, 0x49, 0x20, 0xda, 0xcb, 0xa7, 0x12, 0xa4, 0xbb, 0xd8, 0xb2, 0x89, 0xa9, - 0x3a, 0xf6, 0x2c, 0xa4, 0x2b, 0x92, 0x40, 0x90, 0xfa, 0x54, 0x68, 0x1b, 0x32, 0x9e, 0x8d, 0x65, - 0x5b, 0x8d, 0xdf, 0xb1, 0x01, 0x6b, 0xcb, 0x67, 0x10, 0x0d, 0xa0, 0xc8, 0x44, 0x03, 0xf8, 0x09, - 0x94, 0x3e, 0x83, 0xb4, 0xef, 0x15, 0xdd, 0x81, 0x7f, 0x86, 0x0d, 0x6d, 0x88, 0x27, 0x23, 0xde, - 0x0c, 0x6b, 0x09, 0xfd, 0x1f, 0xe1, 0x6b, 0xd1, 0x32, 0xba, 0x7c, 0xf9, 0xa5, 0xa6, 0xd5, 0x8b, - 0x70, 0xd1, 0x78, 0x25, 0xb2, 0xb4, 0x03, 0x19, 0xe5, 0xfc, 0x2d, 0xb0, 0xd7, 0x73, 0x61, 0xc7, - 0x94, 0x1b, 0x30, 0xb9, 0x85, 0x6d, 0x7b, 0x88, 0x0a, 0x30, 0x31, 0x24, 0x9e, 0xba, 0x60, 0xc5, - 0xa3, 0xb8, 0x9d, 0x29, 0x53, 0xf7, 0x69, 0x92, 0x32, 0x54, 0x84, 0x0c, 0x6e, 0x7b, 0x1c, 0x5b, - 0xfe, 0x21, 0x90, 0xd2, 0x03, 0xb1, 0xfc, 0x6d, 0x1a, 0xb2, 0x41, 0xed, 0x04, 0xcc, 0xf2, 0xf7, - 0x72, 0x4a, 0x4f, 0x5a, 0xa6, 0x18, 0x9d, 0xb8, 0xc5, 0x6d, 0xa2, 0xb6, 0x86, 0x2f, 0xa0, 0x4b, - 0x30, 0x65, 0x12, 0xaf, 0xe3, 0x5a, 0x4e, 0x78, 0x6b, 0xe7, 0xf4, 0xb8, 0x0a, 0xb5, 0x20, 0xe7, - 0x89, 0x41, 0xcc, 0x16, 0x67, 0x99, 0xbf, 0x85, 0x3f, 0x18, 0x63, 0x0d, 0x2b, 0xad, 0x00, 0xac, - 0x47, 0x3c, 0x82, 0x94, 0xf4, 0x89, 0xdb, 0x25, 0xb4, 0x33, 0x54, 0xb7, 0xe9, 0x58, 0xa4, 0xcb, - 0x01, 0x58, 0x8f, 0x78, 0xd0, 0x2e, 0x14, 0x1c, 0xec, 0xe2, 0x3e, 0xe1, 0xc4, 0x35, 0x3a, 0x3d, - 0x4c, 0xbb, 0x44, 0x5e, 0xaf, 0x53, 0x0b, 0xf7, 0xc6, 0xe1, 0x6e, 0x06, 0x1c, 0x0d, 0x49, 0xa1, - 0xcf, 0x3a, 0xc7, 0x15, 0xe8, 0x31, 0xe4, 0x4c, 0xcc, 0x0c, 0x4f, 0xdc, 0xab, 0xc5, 0xec, 0x1b, - 0x4f, 0xc8, 0xa1, 0x83, 0xe0, 0x4e, 0xd6, 0xb3, 0xa6, 0x7a, 0x2a, 0xdd, 0x86, 0x5c, 0x58, 0x27, - 0xf4, 0x6f, 0x48, 0x77, 0x58, 0xbf, 0x6f, 0xf1, 0xb0, 0xb5, 0x94, 0x2c, 0xba, 0x29, 0x07, 0x19, - 0xc3, 0x97, 0x4a, 0x37, 0x20, 0x17, 0xd6, 0x01, 0xfd, 0x17, 0xa0, 0x87, 0x6d, 0x6e, 0xc8, 0xef, - 0x6a, 0x09, 0xcc, 0xea, 0x39, 0xa1, 0x69, 0x08, 0x45, 0xe9, 0xb9, 0x06, 0xb3, 0x27, 0x12, 0x43, - 0x5b, 0x90, 0x67, 0xb6, 0x69, 0x84, 0xe9, 0x79, 0xea, 0x34, 0xb9, 0x79, 0xf2, 0x4e, 0x96, 0x9f, - 0xea, 0x61, 0x1e, 0x92, 0x30, 0xe4, 0xf2, 0xf4, 0x19, 0x66, 0x9b, 0x91, 0x28, 0x58, 0x29, 0x39, - 0x88, 0xb3, 0x26, 0xcf, 0xc4, 0x4a, 0xc9, 0x41, 0x24, 0x96, 0x1e, 0xc4, 0x46, 0x99, 0x8f, 0xa0, - 0xc0, 0x5d, 0x4c, 0x3d, 0xdc, 0x11, 0x0d, 0x6a, 0x38, 0x36, 0xa6, 0xca, 0xc7, 0x5c, 0xc5, 0xff, - 0x75, 0x51, 0x09, 0x7e, 0x5d, 0x54, 0x16, 0xe9, 0x50, 0x9f, 0x8d, 0x59, 0x8b, 0x49, 0xb6, 0xfe, - 0x4b, 0xf2, 0x87, 0xc3, 0x79, 0xed, 0xc5, 0xe1, 0xbc, 0xf6, 0xeb, 0xe1, 0xbc, 0xf6, 0xec, 0x68, - 0x3e, 0xf1, 0xe2, 0x68, 0x3e, 0xf1, 0xf2, 0x68, 0x3e, 0x01, 0xd7, 0x3a, 0xac, 0x3f, 0x7a, 0x2d, - 0xeb, 0xb3, 0xd1, 0xf7, 0x54, 0x53, 0xb8, 0x6a, 0x6a, 0x4f, 0x3f, 0xef, 0x5a, 0xbc, 0x37, 0x68, - 0x57, 0x3a, 0xac, 0x5f, 0xed, 0x30, 0xaf, 0xcf, 0xbc, 0xaa, 0x4b, 0x6c, 0x3c, 0x24, 0x6e, 0x75, - 0x7f, 0x21, 0x7c, 0x94, 0x59, 0x7b, 0xd5, 0x91, 0x3f, 0x6e, 0xee, 0x45, 0xba, 0x40, 0xf5, 0x4d, - 0x72, 0xa2, 0xd9, 0x58, 0xfd, 0x3e, 0x79, 0xb9, 0x19, 0x84, 0xd7, 0x10, 0xe1, 0x45, 0x91, 0x54, - 0xb6, 0x95, 0xe5, 0x8f, 0x91, 0xcd, 0x8e, 0xb0, 0xd9, 0x89, 0x6c, 0x76, 0x02, 0x9b, 0xc3, 0xe4, - 0xcd, 0x91, 0x36, 0x3b, 0xab, 0xcd, 0xfa, 0x23, 0xc2, 0xb1, 0x89, 0x39, 0xfe, 0x2d, 0x79, 0x35, - 0xb0, 0xaf, 0xd5, 0x04, 0xa0, 0x56, 0x8b, 0x10, 0xb5, 0x5a, 0x00, 0x69, 0xa7, 0x65, 0xe9, 0x6f, - 0xff, 0x11, 0x00, 0x00, 0xff, 0xff, 0x51, 0xcc, 0x13, 0xd4, 0x9c, 0x12, 0x00, 0x00, + // 1512 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, + 0x14, 0xf7, 0x3a, 0x8e, 0x3f, 0x5e, 0x12, 0xc7, 0x1d, 0x42, 0x65, 0x0c, 0x44, 0xe9, 0xb6, 0x85, + 0xa8, 0x50, 0x9b, 0xa6, 0xa0, 0x52, 0xf7, 0x40, 0x63, 0xe7, 0x53, 0x6d, 0x13, 0x77, 0x1d, 0x52, + 0x28, 0x91, 0x96, 0xb1, 0x77, 0x62, 0xaf, 0xb2, 0x9e, 0x59, 0xed, 0x8e, 0x13, 0x99, 0xbf, 0x00, + 0x6e, 0x95, 0xf8, 0x0f, 0x90, 0x10, 0x12, 0xff, 0x03, 0x77, 0x84, 0x04, 0xea, 0xb1, 0xdc, 0x50, + 0x72, 0xe3, 0xc8, 0x95, 0x0b, 0x9a, 0xdd, 0xd9, 0x8f, 0x24, 0xa5, 0xae, 0x13, 0x2a, 0x6e, 0xfb, + 0xde, 0xbe, 0xdf, 0xef, 0x7d, 0xcc, 0x9b, 0x99, 0xb7, 0x0b, 0x0b, 0x36, 0xa1, 0xfd, 0x5e, 0xcb, + 0xc1, 0x95, 0x36, 0x73, 0x48, 0xa5, 0xc3, 0xf6, 0x89, 0x43, 0x31, 0x6d, 0x93, 0xca, 0xfe, 0x0d, + 0x6c, 0xd9, 0x5d, 0x7c, 0x23, 0xa6, 0x2b, 0xdb, 0x0e, 0xe3, 0x0c, 0x5d, 0x0a, 0x30, 0x65, 0x81, + 0x29, 0xc7, 0xde, 0x07, 0x98, 0xd2, 0x1b, 0x1d, 0xc6, 0x3a, 0x16, 0xa9, 0x78, 0x80, 0x56, 0x7f, + 0xb7, 0x82, 0xe9, 0xc0, 0x47, 0x97, 0xae, 0x1d, 0xf7, 0xd8, 0x76, 0x06, 0x36, 0x67, 0x91, 0x37, + 0x5f, 0x96, 0xb6, 0xf3, 0x27, 0x6c, 0xbb, 0xd8, 0xa4, 0x31, 0x53, 0x21, 0xfa, 0x96, 0xea, 0x0f, + 0x0a, 0xe4, 0x1b, 0x0e, 0xb3, 0x99, 0x8b, 0xad, 0x66, 0xbf, 0xd5, 0x33, 0x39, 0x5a, 0x85, 0xac, + 0x2d, 0x35, 0x45, 0x65, 0x4e, 0x99, 0x9f, 0x58, 0x78, 0xaf, 0x3c, 0x34, 0xf2, 0x72, 0x40, 0xa2, + 0x85, 0x60, 0x74, 0x1f, 0xf2, 0x06, 0xb1, 0x99, 0x6b, 0x72, 0x1d, 0xf7, 0x58, 0x9f, 0xf2, 0xe2, + 0x98, 0x47, 0x77, 0xf5, 0x04, 0x9d, 0x0c, 0x3d, 0xa4, 0x5a, 0xf4, 0x8c, 0xb5, 0x29, 0x09, 0xf6, + 0x45, 0x75, 0x05, 0x0a, 0x81, 0x8f, 0x47, 0x26, 0xef, 0x1a, 0x0e, 0x3e, 0x40, 0xa5, 0x13, 0xa1, + 0xa6, 0x62, 0xde, 0x2f, 0x42, 0xda, 0x21, 0xd8, 0x65, 0xb4, 0x98, 0x9c, 0x53, 0xe6, 0x73, 0x9a, + 0x94, 0xd4, 0xdf, 0x14, 0x98, 0x09, 0x88, 0x96, 0x7c, 0x0f, 0x75, 0x0b, 0x9b, 0xbd, 0x17, 0x92, + 0x9d, 0x4e, 0x25, 0x79, 0xf6, 0x54, 0xd0, 0x7d, 0xc8, 0xb0, 0x3e, 0x6f, 0xb3, 0x1e, 0x91, 0x15, + 0x59, 0x18, 0xa1, 0xc0, 0x9b, 0x3e, 0x52, 0x0b, 0x28, 0xc4, 0x12, 0x4e, 0x6d, 0x63, 0xcb, 0x34, + 0x30, 0x67, 0xce, 0x36, 0xe3, 0x04, 0xad, 0x41, 0xaa, 0xc5, 0x8c, 0x81, 0x5c, 0xbd, 0x0f, 0x5f, + 0x82, 0xfc, 0x18, 0xbe, 0xc6, 0x8c, 0x81, 0xe6, 0x31, 0xa0, 0xfb, 0x90, 0xc5, 0x7d, 0xde, 0xd5, + 0x5d, 0xb3, 0x23, 0x33, 0xbe, 0x31, 0x24, 0xe3, 0xa6, 0x4d, 0xa8, 0xb1, 0xd8, 0xe7, 0xdd, 0xa6, + 0xd9, 0xa1, 0x98, 0xf7, 0x1d, 0xa2, 0x65, 0xb0, 0x2f, 0xaa, 0x4f, 0x92, 0x70, 0xe1, 0x94, 0xa7, + 0x17, 0xd6, 0xfd, 0x0e, 0xa4, 0xf6, 0x19, 0x27, 0xd2, 0xf7, 0xbb, 0x2f, 0x93, 0x09, 0xe3, 0x44, + 0xf3, 0x40, 0xe8, 0x01, 0x4c, 0x9a, 0x06, 0xa1, 0xdc, 0xe4, 0x03, 0x7d, 0x8f, 0x0c, 0x64, 0xad, + 0xaf, 0x0d, 0x49, 0x60, 0x5d, 0x42, 0xee, 0x91, 0x81, 0x36, 0x61, 0x46, 0x02, 0x6a, 0x42, 0x3e, + 0x72, 0xe8, 0x11, 0xa6, 0x3c, 0xc2, 0xf7, 0x87, 0x10, 0xae, 0x86, 0x20, 0x41, 0x39, 0xd5, 0x89, + 0x8b, 0xea, 0x5f, 0x0a, 0x4c, 0x2d, 0x11, 0x8b, 0x74, 0xce, 0xb1, 0x78, 0xc7, 0xf0, 0xaf, 0x6a, + 0xf1, 0xd0, 0x3a, 0x8c, 0xdb, 0x0e, 0x63, 0xbb, 0xb2, 0x8c, 0x37, 0x87, 0x50, 0x3d, 0xbe, 0x77, + 0x2c, 0xac, 0x86, 0x80, 0x6a, 0x3e, 0x83, 0xfa, 0x6b, 0x12, 0x2e, 0x9c, 0x0a, 0xfa, 0x85, 0x7d, + 0x70, 0x15, 0xf2, 0x2e, 0xc7, 0x0e, 0xd7, 0xbd, 0x6d, 0x64, 0xca, 0x4d, 0x9d, 0xd2, 0xa6, 0x3c, + 0x6d, 0x43, 0x2a, 0xc3, 0x76, 0x19, 0x3b, 0x4b, 0xbb, 0x54, 0x61, 0x7c, 0x1f, 0x5b, 0x7d, 0x22, + 0x97, 0xf5, 0xca, 0x90, 0x04, 0xb7, 0x85, 0xad, 0xe6, 0x43, 0xd0, 0x06, 0x4c, 0xf7, 0x69, 0x8b, + 0x51, 0x83, 0x18, 0xc1, 0x01, 0x31, 0x3e, 0xca, 0x01, 0x91, 0x0f, 0xd0, 0xf2, 0x84, 0x78, 0x0b, + 0x72, 0xb4, 0x6f, 0x59, 0xe6, 0xae, 0x49, 0x9c, 0x62, 0x7a, 0x4e, 0x99, 0x9f, 0xd4, 0x22, 0x05, + 0xca, 0x43, 0xd2, 0xd9, 0x2b, 0x66, 0x3c, 0x75, 0xd2, 0xd9, 0x53, 0xff, 0x3e, 0x59, 0xcf, 0x86, + 0x85, 0xe9, 0xff, 0x5e, 0xcf, 0x25, 0x98, 0x70, 0x39, 0xde, 0x23, 0x86, 0x4e, 0x05, 0x87, 0x5f, + 0xd5, 0xcb, 0x43, 0xea, 0xb1, 0x21, 0xf0, 0xe0, 0xe3, 0xc4, 0x33, 0xfa, 0x00, 0x66, 0x62, 0x2c, + 0x51, 0xbc, 0xe3, 0x5e, 0xbc, 0x28, 0xb2, 0x0c, 0x83, 0x7e, 0xce, 0x5a, 0xa4, 0xcf, 0xb3, 0x16, + 0xb3, 0x00, 0x0e, 0xa6, 0x06, 0xeb, 0x99, 0x5f, 0x11, 0x47, 0x56, 0x3d, 0xa6, 0x51, 0xd7, 0x00, + 0x96, 0x30, 0x93, 0x57, 0x49, 0xd4, 0x45, 0xca, 0xc8, 0x5d, 0xa4, 0xae, 0x40, 0x76, 0x09, 0x33, + 0x6f, 0x13, 0x9e, 0x8b, 0xe7, 0x1b, 0x05, 0x72, 0x4b, 0x98, 0x6d, 0xf6, 0xb9, 0xdd, 0x3f, 0x57, + 0x44, 0xe8, 0x2e, 0x64, 0xb0, 0x61, 0x38, 0xc4, 0x75, 0xe5, 0x09, 0xf2, 0xce, 0xb0, 0x1a, 0xfa, + 0xd6, 0x5a, 0x00, 0x53, 0xbf, 0x55, 0x20, 0xe5, 0x9d, 0x6b, 0x77, 0x65, 0x2f, 0x89, 0x28, 0xf2, + 0xa7, 0x0e, 0xcd, 0x7f, 0xeb, 0xa5, 0x58, 0x43, 0xa9, 0xeb, 0x92, 0x69, 0x06, 0x0a, 0xdb, 0x9b, + 0x5b, 0xcb, 0xfa, 0xa7, 0x1b, 0xcd, 0xc6, 0x72, 0x7d, 0x7d, 0x65, 0x7d, 0x79, 0xa9, 0x90, 0x40, + 0x05, 0x98, 0xf4, 0xb4, 0x8b, 0xb5, 0xe6, 0xd6, 0xe2, 0xfa, 0x46, 0x41, 0x41, 0x93, 0x90, 0xf5, + 0x34, 0x9f, 0x2f, 0x37, 0x0b, 0x49, 0x34, 0x01, 0x19, 0x4f, 0xda, 0xd8, 0x2c, 0x8c, 0xa9, 0xcf, + 0x52, 0x30, 0x15, 0x8e, 0x3d, 0x1c, 0x73, 0x82, 0x1e, 0x42, 0x7a, 0x9f, 0x71, 0x93, 0x06, 0x47, + 0xe5, 0xad, 0x11, 0xae, 0x64, 0x8f, 0x41, 0x44, 0x6a, 0xd2, 0xce, 0x5a, 0x42, 0x93, 0x44, 0xe8, + 0x31, 0xe4, 0x0e, 0xe4, 0xa4, 0x42, 0xe5, 0x16, 0xaa, 0x8e, 0xcc, 0x1a, 0xcc, 0x3a, 0x74, 0x2d, + 0xa1, 0x45, 0x74, 0xe8, 0x11, 0x64, 0x77, 0x4d, 0x6a, 0xba, 0x5d, 0x62, 0xc8, 0x9d, 0x75, 0x7b, + 0x64, 0xea, 0x15, 0x49, 0xb0, 0x96, 0xd0, 0x42, 0x32, 0xb4, 0x05, 0x99, 0xb6, 0x18, 0x87, 0x88, + 0x21, 0x4f, 0xb0, 0x8f, 0x47, 0xe6, 0xad, 0xfb, 0xf8, 0xb5, 0x84, 0x16, 0x50, 0x95, 0xb2, 0x90, + 0xf6, 0xcb, 0x53, 0xba, 0x0c, 0xb9, 0x30, 0xa5, 0xd8, 0x8c, 0xa6, 0xc4, 0x67, 0xb4, 0xd2, 0x67, + 0x90, 0x0d, 0x82, 0x8b, 0x0f, 0x4b, 0xca, 0xb9, 0x87, 0xa5, 0xd2, 0x23, 0xc8, 0xc8, 0xf0, 0xfe, + 0x5b, 0xe2, 0x5a, 0x06, 0xc6, 0x5d, 0x91, 0xbd, 0x7a, 0x34, 0x06, 0xd3, 0x27, 0xac, 0x50, 0x13, + 0xd2, 0x36, 0x76, 0x5d, 0x62, 0x48, 0x4f, 0xb7, 0x47, 0xf7, 0x54, 0x6e, 0x78, 0x04, 0xa2, 0xbd, + 0x7c, 0x2a, 0x41, 0xba, 0x8b, 0x4d, 0x8b, 0x18, 0xb2, 0x63, 0xcf, 0x42, 0xba, 0xe2, 0x11, 0x08, + 0x52, 0x9f, 0x0a, 0x6d, 0x43, 0xc6, 0xb5, 0xb0, 0xd7, 0x56, 0xa3, 0x77, 0x6c, 0xc0, 0xda, 0xf4, + 0x19, 0x44, 0x03, 0x48, 0x32, 0xd1, 0x00, 0x7e, 0x02, 0xa5, 0x2f, 0x20, 0xed, 0x7b, 0x45, 0xb7, + 0xe0, 0xf5, 0xb0, 0xa1, 0x75, 0xf1, 0xa4, 0xc7, 0x9b, 0x61, 0x2d, 0xa1, 0xbd, 0x16, 0xbe, 0x16, + 0x2d, 0xa3, 0x79, 0x2f, 0xbf, 0x56, 0x94, 0x5a, 0x11, 0x2e, 0xea, 0xcf, 0x45, 0x96, 0x76, 0x20, + 0x23, 0x9d, 0xbf, 0x02, 0xf6, 0x5a, 0x2e, 0xec, 0x18, 0xb5, 0x0e, 0xe3, 0x5b, 0xd8, 0xb2, 0x06, + 0xa8, 0x00, 0x63, 0x03, 0xe2, 0xca, 0x0b, 0x56, 0x3c, 0x8a, 0xdb, 0x99, 0x32, 0x79, 0x9f, 0x26, + 0x29, 0x43, 0x45, 0xc8, 0xe0, 0x96, 0xcb, 0xb1, 0xe9, 0x1f, 0x02, 0x29, 0x2d, 0x10, 0xd5, 0xef, + 0xd3, 0x90, 0x0d, 0x6a, 0x27, 0x60, 0xa6, 0xbf, 0x97, 0x53, 0x5a, 0xd2, 0x34, 0xd0, 0x0c, 0x8c, + 0x73, 0x93, 0x5b, 0x44, 0x6e, 0x0d, 0x5f, 0x40, 0x73, 0x30, 0x61, 0x10, 0xb7, 0xed, 0x98, 0x76, + 0x78, 0x6b, 0xe7, 0xb4, 0xb8, 0x0a, 0x35, 0x21, 0xe7, 0x8a, 0xe9, 0xcd, 0x12, 0x67, 0x99, 0xbf, + 0x85, 0x3f, 0x1a, 0x61, 0x0d, 0xcb, 0xcd, 0x00, 0xac, 0x45, 0x3c, 0x82, 0x94, 0xf4, 0x88, 0xd3, + 0x21, 0xb4, 0x3d, 0x90, 0xb7, 0xe9, 0x48, 0xa4, 0xcb, 0x01, 0x58, 0x8b, 0x78, 0xd0, 0x2e, 0x14, + 0x6c, 0xec, 0xe0, 0x1e, 0xe1, 0xc4, 0xd1, 0xdb, 0x5d, 0x4c, 0x3b, 0xc4, 0xbb, 0x5e, 0x27, 0x16, + 0xee, 0x8c, 0xc2, 0xdd, 0x08, 0x38, 0xea, 0x1e, 0x85, 0x36, 0x6d, 0x1f, 0x57, 0xa0, 0x87, 0x90, + 0x33, 0x30, 0xd3, 0x5d, 0x71, 0xaf, 0x16, 0xb3, 0x2f, 0x3d, 0x56, 0x87, 0x0e, 0x82, 0x3b, 0x59, + 0xcb, 0x1a, 0xf2, 0xa9, 0x74, 0x13, 0x72, 0x61, 0x9d, 0xd0, 0x9b, 0x90, 0x6e, 0xb3, 0x5e, 0xcf, + 0xe4, 0x61, 0x6b, 0x49, 0x59, 0x74, 0x53, 0x0e, 0x32, 0xba, 0x2f, 0x95, 0xae, 0x41, 0x2e, 0xac, + 0x03, 0x7a, 0x1b, 0xa0, 0x8b, 0x2d, 0xae, 0x7b, 0x1f, 0xe3, 0x1e, 0x30, 0xab, 0xe5, 0x84, 0xa6, + 0x2e, 0x14, 0xa5, 0x9f, 0x14, 0x98, 0x3e, 0x91, 0x18, 0xda, 0x82, 0x3c, 0xb3, 0x0c, 0x3d, 0x4c, + 0xcf, 0x95, 0xa7, 0xc9, 0xf5, 0x93, 0x77, 0xb2, 0xf7, 0x7d, 0x1f, 0xe6, 0xe1, 0x11, 0x86, 0x5c, + 0xae, 0x36, 0xc5, 0x2c, 0x23, 0x12, 0x05, 0x2b, 0x25, 0x07, 0x71, 0xd6, 0xe4, 0x99, 0x58, 0x29, + 0x39, 0x88, 0xc4, 0xd2, 0xbd, 0xd8, 0x28, 0xf3, 0x09, 0x14, 0xb8, 0x83, 0xa9, 0x8b, 0xdb, 0xa2, + 0x41, 0x75, 0xdb, 0xc2, 0x54, 0xfa, 0x98, 0x29, 0xfb, 0xff, 0x3b, 0xca, 0xc1, 0xff, 0x8e, 0xf2, + 0x22, 0x1d, 0x68, 0xd3, 0x31, 0x6b, 0x31, 0xc9, 0xd6, 0x7e, 0x4f, 0xfe, 0x7c, 0x38, 0xab, 0x3c, + 0x3d, 0x9c, 0x55, 0xfe, 0x38, 0x9c, 0x55, 0x9e, 0x1c, 0xcd, 0x26, 0x9e, 0x1e, 0xcd, 0x26, 0x9e, + 0x1d, 0xcd, 0x26, 0xe0, 0x6a, 0x9b, 0xf5, 0x86, 0xaf, 0x65, 0x6d, 0x3a, 0xfa, 0x08, 0x6b, 0x08, + 0x57, 0x0d, 0xe5, 0xf1, 0x97, 0x1d, 0x93, 0x77, 0xfb, 0xad, 0x72, 0x9b, 0xf5, 0x2a, 0x6d, 0xe6, + 0xf6, 0x98, 0x5b, 0x71, 0x88, 0x85, 0x07, 0xc4, 0xa9, 0xec, 0x2f, 0x84, 0x8f, 0x5e, 0xd6, 0x6e, + 0x65, 0xe8, 0xdf, 0x9e, 0x3b, 0x91, 0x2e, 0x50, 0x7d, 0x97, 0x1c, 0x6b, 0xd4, 0x57, 0x7f, 0x4c, + 0x5e, 0x6a, 0x04, 0xe1, 0xd5, 0x45, 0x78, 0x51, 0x24, 0xe5, 0x6d, 0x69, 0xf9, 0x4b, 0x64, 0xb3, + 0x23, 0x6c, 0x76, 0x22, 0x9b, 0x9d, 0xc0, 0xe6, 0x30, 0x79, 0x7d, 0xa8, 0xcd, 0xce, 0x6a, 0xa3, + 0xf6, 0x80, 0x70, 0x6c, 0x60, 0x8e, 0xff, 0x4c, 0x5e, 0x09, 0xec, 0xab, 0x55, 0x01, 0xa8, 0x56, + 0x23, 0x44, 0xb5, 0x1a, 0x40, 0x5a, 0x69, 0xaf, 0xf4, 0x37, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, + 0x57, 0x45, 0x3e, 0x65, 0xd1, 0x12, 0x00, 0x00, } func (m *ProposalSubmit) Marshal() (dAtA []byte, err error) { @@ -2173,10 +2174,15 @@ func (m *DelegatorVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.Proof) > 0 { - i -= len(m.Proof) - copy(dAtA[i:], m.Proof) - i = encodeVarintGovernance(dAtA, i, uint64(len(m.Proof))) + if m.Proof != nil { + { + size, err := m.Proof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovernance(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1a } @@ -3373,8 +3379,8 @@ func (m *DelegatorVote) Size() (n int) { l = m.AuthSig.Size() n += 1 + l + sovGovernance(uint64(l)) } - l = len(m.Proof) - if l > 0 { + if m.Proof != nil { + l = m.Proof.Size() n += 1 + l + sovGovernance(uint64(l)) } return n @@ -4605,7 +4611,7 @@ func (m *DelegatorVote) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGovernance @@ -4615,24 +4621,26 @@ func (m *DelegatorVote) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthGovernance } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGovernance } if postIndex > l { return io.ErrUnexpectedEOF } - m.Proof = append(m.Proof[:0], dAtA[iNdEx:postIndex]...) if m.Proof == nil { - m.Proof = []byte{} + m.Proof = &v1alpha1.ZKDelegatorVoteProof{} + } + if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: diff --git a/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go b/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go index 1dfe4f580..9f95c7e73 100644 --- a/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go +++ b/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go @@ -170,8 +170,8 @@ func (m *FungibleTokenPacketData) GetReceiver() string { type Ics20Withdrawal struct { // the chain ID of the destination chain for this ICS20 transfer DestinationChainId string `protobuf:"bytes,1,opt,name=destination_chain_id,json=destinationChainId,proto3" json:"destination_chain_id,omitempty"` - Denom *v1alpha1.Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - Amount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + Amount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + Denom *v1alpha1.Denom `protobuf:"bytes,3,opt,name=denom,proto3" json:"denom,omitempty"` // the address on the destination chain to send the transfer to DestinationChainAddress string `protobuf:"bytes,4,opt,name=destination_chain_address,json=destinationChainAddress,proto3" json:"destination_chain_address,omitempty"` // a "sender" penumbra address to use to return funds from this withdrawal. @@ -231,16 +231,16 @@ func (m *Ics20Withdrawal) GetDestinationChainId() string { return "" } -func (m *Ics20Withdrawal) GetDenom() *v1alpha1.Denom { +func (m *Ics20Withdrawal) GetAmount() *v1alpha1.Amount { if m != nil { - return m.Denom + return m.Amount } return nil } -func (m *Ics20Withdrawal) GetAmount() *v1alpha1.Amount { +func (m *Ics20Withdrawal) GetDenom() *v1alpha1.Denom { if m != nil { - return m.Amount + return m.Denom } return nil } @@ -592,58 +592,58 @@ func init() { } var fileDescriptor_6509740287584c65 = []byte{ - // 804 bytes of a gzipped FileDescriptorProto + // 803 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x41, 0x8f, 0x1b, 0x35, - 0x14, 0xde, 0x49, 0xb6, 0xbb, 0x89, 0xd3, 0x24, 0x74, 0xb4, 0xa2, 0xd3, 0x20, 0xd2, 0x30, 0x6a, - 0xab, 0x2d, 0x12, 0x33, 0x4d, 0x0a, 0x42, 0x1a, 0x54, 0x89, 0xec, 0x54, 0x94, 0x39, 0x54, 0x44, - 0x43, 0x55, 0x24, 0x14, 0x29, 0xf2, 0x78, 0xdc, 0xc4, 0x6a, 0xc6, 0x8e, 0x6c, 0x4f, 0x56, 0x11, - 0x7f, 0x82, 0xbf, 0x00, 0x47, 0xce, 0xfc, 0x08, 0xc4, 0xa9, 0x47, 0x24, 0x2e, 0x28, 0x7b, 0xe3, - 0x57, 0x20, 0xdb, 0xe3, 0xa4, 0x0b, 0x6c, 0xf7, 0x34, 0x7e, 0xdf, 0xfb, 0xde, 0x9b, 0xef, 0xb3, - 0x9f, 0x0d, 0xee, 0xad, 0x30, 0x2d, 0x8b, 0x8c, 0xc3, 0x10, 0x31, 0x8e, 0x43, 0x92, 0xa1, 0x70, - 0x3d, 0x84, 0xcb, 0xd5, 0x02, 0x0e, 0x55, 0x10, 0xac, 0x38, 0x93, 0xcc, 0xed, 0x59, 0x56, 0xa0, - 0x58, 0x81, 0x4a, 0x58, 0x56, 0xef, 0xe3, 0xcb, 0x1d, 0x10, 0xdf, 0xac, 0x24, 0xdb, 0x37, 0x31, - 0xb1, 0xe9, 0xd3, 0xbb, 0xab, 0xfa, 0x1b, 0xda, 0x92, 0x60, 0x2a, 0xc3, 0xf5, 0xb0, 0x5a, 0x55, - 0x84, 0x3b, 0x73, 0xc6, 0xe6, 0x4b, 0x1c, 0xea, 0x28, 0x2b, 0x5f, 0x85, 0x90, 0x6e, 0x4c, 0xca, - 0xff, 0x12, 0x34, 0x93, 0x0c, 0x8d, 0x91, 0x24, 0x8c, 0xba, 0x8f, 0x01, 0xe0, 0xf0, 0x7c, 0x06, - 0x75, 0xe4, 0x39, 0x03, 0xe7, 0xb4, 0x35, 0x3a, 0x09, 0x4c, 0x71, 0x60, 0x8b, 0x83, 0x31, 0xdd, - 0xa4, 0x4d, 0x0e, 0xcf, 0x4d, 0x91, 0xff, 0x03, 0xb8, 0xfd, 0x55, 0x49, 0xe7, 0x24, 0x5b, 0xe2, - 0x17, 0xec, 0x35, 0xa6, 0x13, 0x88, 0x5e, 0x63, 0xf9, 0x14, 0x4a, 0xe8, 0x9e, 0x80, 0x1b, 0x39, - 0xa6, 0xac, 0xd0, 0xad, 0x9a, 0xa9, 0x09, 0xdc, 0xf7, 0xc1, 0x11, 0x2c, 0x58, 0x49, 0xa5, 0x57, - 0xd3, 0x70, 0x15, 0x29, 0x5c, 0x60, 0x9a, 0x63, 0xee, 0xd5, 0x0d, 0x6e, 0x22, 0xb7, 0x07, 0x1a, - 0x1c, 0x23, 0x4c, 0xd6, 0x98, 0x7b, 0x87, 0x3a, 0xb3, 0x8b, 0xfd, 0x3f, 0xeb, 0xa0, 0x9b, 0x20, - 0x31, 0x7a, 0xf4, 0x1d, 0x91, 0x8b, 0x9c, 0xc3, 0x73, 0xb8, 0x74, 0x1f, 0x81, 0x93, 0x1c, 0x0b, - 0x49, 0x28, 0x54, 0xfa, 0x66, 0x68, 0x01, 0x09, 0x9d, 0x91, 0xbc, 0x12, 0xe1, 0xbe, 0x95, 0x8b, - 0x55, 0x2a, 0xc9, 0xdd, 0xc8, 0xea, 0xac, 0x69, 0xcb, 0xf7, 0x82, 0xcb, 0x07, 0x53, 0x6d, 0xb6, - 0xdd, 0xfc, 0xe0, 0xa9, 0xe2, 0x5a, 0x37, 0x4f, 0x76, 0x6e, 0xea, 0xba, 0xf8, 0xfe, 0x35, 0xc5, - 0x63, 0x4d, 0xde, 0x99, 0x8e, 0xc0, 0x9d, 0xff, 0x8a, 0x85, 0x79, 0xce, 0xb1, 0x10, 0x95, 0xdb, - 0xdb, 0xff, 0x56, 0x3c, 0x36, 0x69, 0xf7, 0x39, 0xe8, 0x70, 0x2c, 0x4b, 0xbe, 0x2f, 0xb8, 0xa1, - 0x25, 0x3c, 0xb8, 0x4e, 0x82, 0x61, 0xa7, 0x6d, 0x53, 0x6d, 0xdb, 0xdd, 0x07, 0x1d, 0x49, 0x0a, - 0xcc, 0x4a, 0x39, 0x5b, 0x60, 0x32, 0x5f, 0x48, 0xef, 0x68, 0xe0, 0x9c, 0x1e, 0xa6, 0xed, 0x0a, - 0xfd, 0x5a, 0x83, 0xee, 0x47, 0xe0, 0xa6, 0xa5, 0xa9, 0xaf, 0x77, 0xac, 0x49, 0xad, 0x0a, 0x7b, - 0x41, 0x0a, 0xec, 0xde, 0x05, 0x2d, 0xc1, 0x4a, 0x8e, 0xf0, 0x6c, 0xc5, 0xb8, 0xf4, 0x1a, 0xda, - 0x06, 0x30, 0xd0, 0x84, 0x71, 0xa9, 0x7e, 0x55, 0x11, 0xd0, 0x02, 0x52, 0x8a, 0x97, 0x5e, 0x53, - 0x73, 0xda, 0x06, 0x8d, 0x0d, 0xe8, 0xff, 0xea, 0x00, 0x10, 0xeb, 0x41, 0xd6, 0xe3, 0xf4, 0x01, - 0x68, 0x9a, 0xb1, 0xde, 0x9f, 0x66, 0xc3, 0x00, 0x49, 0xee, 0x7e, 0x0e, 0x6e, 0x56, 0x49, 0x21, - 0xa1, 0xc4, 0xd5, 0x51, 0xfe, 0xff, 0xf4, 0xb6, 0x0c, 0xf3, 0x5b, 0x45, 0x54, 0x5a, 0x56, 0x9c, - 0x21, 0x2c, 0x04, 0xce, 0x8d, 0x23, 0x33, 0x7e, 0xed, 0x1d, 0xaa, 0x3d, 0x3d, 0x04, 0xef, 0xed, - 0x69, 0xd5, 0xfe, 0x1c, 0x6a, 0xeb, 0xdd, 0x1d, 0x6e, 0x76, 0xc8, 0x7f, 0x08, 0xda, 0x46, 0x75, - 0xac, 0x8e, 0x18, 0x73, 0xd7, 0x03, 0xc7, 0xc8, 0x2c, 0xb5, 0xec, 0xc3, 0xd4, 0x86, 0xfe, 0x37, - 0xa0, 0x13, 0x33, 0x2a, 0x30, 0x15, 0xa5, 0x30, 0x72, 0x9e, 0x80, 0x2e, 0xb2, 0x48, 0x65, 0xe5, - 0x5d, 0x17, 0xb1, 0x83, 0x2e, 0x95, 0xfb, 0xcf, 0x40, 0xf7, 0x25, 0xe6, 0xe4, 0x15, 0xb1, 0x6a, - 0x84, 0xfb, 0x29, 0x38, 0x36, 0x7a, 0x85, 0xe7, 0x0c, 0xea, 0xa7, 0xad, 0x51, 0x4f, 0x3f, 0x35, - 0x66, 0x34, 0xcc, 0x33, 0xb1, 0x1e, 0x06, 0x86, 0x9d, 0x5a, 0xaa, 0xff, 0x09, 0xb8, 0x15, 0x33, - 0x4a, 0xb1, 0xbe, 0xe4, 0xd7, 0x1b, 0xf9, 0x0c, 0xdc, 0xb2, 0x9e, 0x6d, 0x91, 0x70, 0x07, 0xa0, - 0x85, 0xf6, 0xa1, 0xfe, 0x7b, 0x33, 0x7d, 0x1b, 0x3a, 0xfb, 0xa9, 0xf6, 0xdb, 0xb6, 0xef, 0xbc, - 0xd9, 0xf6, 0x9d, 0xbf, 0xb6, 0x7d, 0xe7, 0xc7, 0x8b, 0xfe, 0xc1, 0x9b, 0x8b, 0xfe, 0xc1, 0x1f, - 0x17, 0xfd, 0x03, 0xd0, 0x47, 0xac, 0x08, 0xae, 0x7e, 0x21, 0xcf, 0x1a, 0x49, 0x86, 0x26, 0x6a, - 0x2b, 0x26, 0xce, 0xf7, 0xe9, 0x9c, 0xc8, 0x45, 0x99, 0x05, 0x88, 0x15, 0x21, 0x62, 0xa2, 0x60, - 0x22, 0xe4, 0x78, 0x09, 0x37, 0x98, 0x87, 0xeb, 0xd1, 0x6e, 0xa9, 0x2f, 0x97, 0x08, 0xaf, 0x7e, - 0x9b, 0xbf, 0x20, 0x19, 0xb2, 0xeb, 0x9f, 0x6b, 0xf5, 0x49, 0x9c, 0xfc, 0x52, 0xeb, 0x4d, 0xac, - 0x84, 0x58, 0x49, 0x48, 0x32, 0x14, 0xbc, 0xac, 0x28, 0xbf, 0xef, 0x93, 0x53, 0x95, 0x9c, 0x26, - 0x19, 0x9a, 0xda, 0xe4, 0xb6, 0xf6, 0xe0, 0xea, 0xe4, 0xf4, 0xd9, 0xe4, 0xec, 0x39, 0x96, 0x30, - 0x87, 0x12, 0xfe, 0x5d, 0xfb, 0xd0, 0x12, 0xa3, 0x48, 0x31, 0xa3, 0x28, 0xc9, 0x50, 0x14, 0x59, - 0x6e, 0x76, 0xa4, 0x0f, 0xfc, 0xf1, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x65, 0x79, 0xa9, 0x19, - 0x55, 0x06, 0x00, 0x00, + 0x14, 0xde, 0x49, 0xb6, 0xbb, 0x1b, 0xa7, 0x49, 0xe8, 0x68, 0x45, 0xa7, 0x41, 0xa4, 0x61, 0xd4, + 0x56, 0x5b, 0x24, 0x66, 0x9a, 0x14, 0x84, 0x34, 0xa8, 0x12, 0xd9, 0xa9, 0x28, 0x73, 0xa8, 0x88, + 0x86, 0xaa, 0x48, 0x28, 0x52, 0xe4, 0xf1, 0xb8, 0x89, 0xd5, 0x8c, 0x1d, 0xd9, 0x9e, 0xac, 0x22, + 0xfe, 0x04, 0x7f, 0x01, 0x8e, 0x9c, 0xf9, 0x11, 0x88, 0x53, 0x8f, 0x48, 0x5c, 0x50, 0xf6, 0xc6, + 0xaf, 0x40, 0xb6, 0xc7, 0x49, 0x03, 0x6c, 0xf7, 0x14, 0xbf, 0xef, 0xfb, 0xde, 0xcb, 0xf7, 0x9e, + 0xdf, 0x18, 0xdc, 0x5b, 0x62, 0x5a, 0x16, 0x19, 0x87, 0x21, 0x62, 0x1c, 0x87, 0x24, 0x43, 0xe1, + 0x6a, 0x00, 0x17, 0xcb, 0x39, 0x1c, 0xa8, 0x20, 0x58, 0x72, 0x26, 0x99, 0xdb, 0xb5, 0xaa, 0x40, + 0xa9, 0x02, 0x45, 0x58, 0x55, 0xf7, 0xe3, 0xfd, 0x0a, 0x88, 0xaf, 0x97, 0x92, 0xed, 0x8a, 0x98, + 0xd8, 0xd4, 0xe9, 0xde, 0x55, 0xf5, 0x8d, 0x6c, 0x41, 0x30, 0x95, 0xe1, 0x6a, 0x50, 0x9d, 0x2a, + 0xc1, 0x9d, 0x19, 0x63, 0xb3, 0x05, 0x0e, 0x75, 0x94, 0x95, 0xaf, 0x42, 0x48, 0xd7, 0x86, 0xf2, + 0xbf, 0x04, 0x8d, 0x24, 0x43, 0x23, 0x24, 0x09, 0xa3, 0xee, 0x63, 0x00, 0x38, 0xbc, 0x98, 0x42, + 0x1d, 0x79, 0x4e, 0xdf, 0x39, 0x6b, 0x0e, 0x4f, 0x03, 0x93, 0x1c, 0xd8, 0xe4, 0x60, 0x44, 0xd7, + 0x69, 0x83, 0xc3, 0x0b, 0x93, 0xe4, 0xff, 0x00, 0x6e, 0x7f, 0x55, 0xd2, 0x19, 0xc9, 0x16, 0xf8, + 0x05, 0x7b, 0x8d, 0xe9, 0x18, 0xa2, 0xd7, 0x58, 0x3e, 0x85, 0x12, 0xba, 0xa7, 0xe0, 0x46, 0x8e, + 0x29, 0x2b, 0x74, 0xa9, 0x46, 0x6a, 0x02, 0xf7, 0x7d, 0x70, 0x04, 0x0b, 0x56, 0x52, 0xe9, 0xd5, + 0x34, 0x5c, 0x45, 0x0a, 0x17, 0x98, 0xe6, 0x98, 0x7b, 0x75, 0x83, 0x9b, 0xc8, 0xed, 0x82, 0x13, + 0x8e, 0x11, 0x26, 0x2b, 0xcc, 0xbd, 0x43, 0xcd, 0x6c, 0x63, 0xff, 0xcf, 0x3a, 0xe8, 0x24, 0x48, + 0x0c, 0x1f, 0x7d, 0x47, 0xe4, 0x3c, 0xe7, 0xf0, 0x02, 0x2e, 0xdc, 0x47, 0xe0, 0x34, 0xc7, 0x42, + 0x12, 0x0a, 0x95, 0xbf, 0x29, 0x9a, 0x43, 0x42, 0xa7, 0x24, 0xaf, 0x4c, 0xb8, 0x6f, 0x71, 0xb1, + 0xa2, 0x92, 0xdc, 0x7d, 0xb2, 0xe7, 0xa8, 0x39, 0xbc, 0x1f, 0xec, 0xdf, 0x4c, 0x35, 0x6d, 0x3b, + 0xfd, 0x60, 0xa4, 0xc5, 0x5b, 0xe3, 0x91, 0x6d, 0xb3, 0xae, 0xb3, 0xef, 0x5d, 0x93, 0xfd, 0x54, + 0x69, 0xed, 0x30, 0x22, 0x70, 0xe7, 0xbf, 0x66, 0x61, 0x9e, 0x73, 0x2c, 0x44, 0xd5, 0xed, 0xed, + 0x7f, 0x3b, 0x1e, 0x19, 0xda, 0x7d, 0x0e, 0xda, 0x1c, 0xcb, 0x92, 0xef, 0x12, 0x6e, 0x68, 0x03, + 0x0f, 0xae, 0xb3, 0x6f, 0xd4, 0x69, 0xcb, 0x64, 0xdb, 0x72, 0xf7, 0x41, 0x5b, 0x92, 0x02, 0xb3, + 0x52, 0x4e, 0xe7, 0x98, 0xcc, 0xe6, 0xd2, 0x3b, 0xea, 0x3b, 0x67, 0x87, 0x69, 0xab, 0x42, 0xbf, + 0xd6, 0xa0, 0xfb, 0x11, 0xb8, 0x69, 0x65, 0xea, 0xd7, 0x3b, 0xd6, 0xa2, 0x66, 0x85, 0xbd, 0x20, + 0x05, 0x76, 0xef, 0x82, 0xa6, 0x60, 0x25, 0x47, 0x78, 0xba, 0x64, 0x5c, 0x7a, 0x27, 0xba, 0x0d, + 0x60, 0xa0, 0x31, 0xe3, 0x52, 0xfd, 0x55, 0x25, 0x40, 0x73, 0x48, 0x29, 0x5e, 0x78, 0x0d, 0xad, + 0x69, 0x19, 0x34, 0x36, 0xa0, 0xff, 0xab, 0x03, 0x40, 0xac, 0x17, 0x59, 0xaf, 0xd3, 0x07, 0xa0, + 0x61, 0xd6, 0x7a, 0x77, 0x9b, 0x27, 0x06, 0x48, 0x72, 0xf7, 0x73, 0x70, 0xb3, 0x22, 0x85, 0x84, + 0x12, 0x57, 0x37, 0xf9, 0xff, 0xdb, 0xdb, 0x34, 0xca, 0x6f, 0x95, 0x50, 0x79, 0x59, 0x72, 0x86, + 0xb0, 0x10, 0x38, 0x37, 0x1d, 0x99, 0xf5, 0x6b, 0x6d, 0x51, 0xdd, 0xd3, 0x43, 0xf0, 0xde, 0x4e, + 0x56, 0xcd, 0xe7, 0x50, 0xb7, 0xde, 0xd9, 0xe2, 0x66, 0x42, 0xfe, 0x43, 0xd0, 0x32, 0xae, 0x63, + 0xb5, 0x1e, 0x98, 0xbb, 0x1e, 0x38, 0x46, 0xe6, 0xa8, 0x6d, 0x1f, 0xa6, 0x36, 0xf4, 0xbf, 0x01, + 0xed, 0x98, 0x51, 0x81, 0xa9, 0x28, 0x85, 0xb1, 0xf3, 0x04, 0x74, 0x90, 0x45, 0xaa, 0x56, 0xde, + 0xf5, 0x21, 0xb6, 0xd1, 0x5e, 0xba, 0xff, 0x0c, 0x74, 0x5e, 0x62, 0x4e, 0x5e, 0x11, 0xeb, 0x46, + 0xb8, 0x9f, 0x82, 0x63, 0xe3, 0x57, 0x78, 0x4e, 0xbf, 0x7e, 0xd6, 0x1c, 0x76, 0xf5, 0x53, 0x63, + 0x56, 0xc3, 0x3c, 0x13, 0xab, 0x41, 0x60, 0xd4, 0xa9, 0x95, 0xfa, 0x9f, 0x80, 0x5b, 0x31, 0xa3, + 0x14, 0xeb, 0x8f, 0xfc, 0xfa, 0x46, 0x3e, 0x03, 0xb7, 0x6c, 0xcf, 0x36, 0x49, 0xb8, 0x7d, 0xd0, + 0x44, 0xbb, 0x50, 0xff, 0x7b, 0x23, 0x7d, 0x1b, 0x3a, 0xff, 0xa9, 0xf6, 0xdb, 0xa6, 0xe7, 0xbc, + 0xd9, 0xf4, 0x9c, 0xbf, 0x36, 0x3d, 0xe7, 0xc7, 0xcb, 0xde, 0xc1, 0x9b, 0xcb, 0xde, 0xc1, 0x1f, + 0x97, 0xbd, 0x03, 0xd0, 0x43, 0xac, 0x08, 0xae, 0x7e, 0x21, 0xcf, 0x4f, 0x92, 0x0c, 0x8d, 0xd5, + 0x28, 0xc6, 0xce, 0xf7, 0xe9, 0x8c, 0xc8, 0x79, 0x99, 0x05, 0x88, 0x15, 0x21, 0x62, 0xa2, 0x60, + 0x22, 0xe4, 0x78, 0x01, 0xd7, 0x98, 0x87, 0xab, 0xe1, 0xf6, 0xa8, 0x3f, 0x2e, 0x11, 0x5e, 0xfd, + 0x36, 0x7f, 0x41, 0x32, 0x64, 0xcf, 0x3f, 0xd7, 0xea, 0xe3, 0x38, 0xf9, 0xa5, 0xd6, 0x1d, 0x5b, + 0x0b, 0xb1, 0xb2, 0x90, 0x64, 0x28, 0x78, 0x59, 0x49, 0x7e, 0xdf, 0x91, 0x13, 0x45, 0x4e, 0x92, + 0x0c, 0x4d, 0x2c, 0xb9, 0xa9, 0x3d, 0xb8, 0x9a, 0x9c, 0x3c, 0x1b, 0x9f, 0x3f, 0xc7, 0x12, 0xe6, + 0x50, 0xc2, 0xbf, 0x6b, 0x1f, 0x5a, 0x61, 0x14, 0x29, 0x65, 0x14, 0x25, 0x19, 0x8a, 0x22, 0xab, + 0xcd, 0x8e, 0xf4, 0x85, 0x3f, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x96, 0x37, 0xa5, 0x55, + 0x06, 0x00, 0x00, } func (m *IbcAction) Marshal() (dAtA []byte, err error) { @@ -795,9 +795,9 @@ func (m *Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if m.Amount != nil { + if m.Denom != nil { { - size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -807,9 +807,9 @@ func (m *Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if m.Denom != nil { + if m.Amount != nil { { - size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1102,14 +1102,14 @@ func (m *Ics20Withdrawal) Size() (n int) { if l > 0 { n += 1 + l + sovIbc(uint64(l)) } - if m.Denom != nil { - l = m.Denom.Size() - n += 1 + l + sovIbc(uint64(l)) - } if m.Amount != nil { l = m.Amount.Size() n += 1 + l + sovIbc(uint64(l)) } + if m.Denom != nil { + l = m.Denom.Size() + n += 1 + l + sovIbc(uint64(l)) + } l = len(m.DestinationChainAddress) if l > 0 { n += 1 + l + sovIbc(uint64(l)) @@ -1559,7 +1559,7 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1586,16 +1586,16 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Denom == nil { - m.Denom = &v1alpha1.Denom{} + if m.Amount == nil { + m.Amount = &v1alpha1.Amount{} } - if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1622,10 +1622,10 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Amount == nil { - m.Amount = &v1alpha1.Amount{} + if m.Denom == nil { + m.Denom = &v1alpha1.Denom{} } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go index c7031205e..e11591783 100644 --- a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go +++ b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go @@ -2450,6 +2450,7 @@ type ActionPlan struct { // *ActionPlan_ValidatorVote // *ActionPlan_DelegatorVote // *ActionPlan_ProposalDepositClaim + // *ActionPlan_Withdrawal // *ActionPlan_PositionOpen // *ActionPlan_PositionClose // *ActionPlan_PositionWithdraw @@ -2535,6 +2536,9 @@ type ActionPlan_DelegatorVote struct { type ActionPlan_ProposalDepositClaim struct { ProposalDepositClaim *v1alpha14.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof" json:"proposal_deposit_claim,omitempty"` } +type ActionPlan_Withdrawal struct { + Withdrawal *v1alpha13.Ics20Withdrawal `protobuf:"bytes,23,opt,name=withdrawal,proto3,oneof" json:"withdrawal,omitempty"` +} type ActionPlan_PositionOpen struct { PositionOpen *v1alpha11.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof" json:"position_open,omitempty"` } @@ -2577,6 +2581,7 @@ func (*ActionPlan_ProposalWithdraw) isActionPlan_Action() {} func (*ActionPlan_ValidatorVote) isActionPlan_Action() {} func (*ActionPlan_DelegatorVote) isActionPlan_Action() {} func (*ActionPlan_ProposalDepositClaim) isActionPlan_Action() {} +func (*ActionPlan_Withdrawal) isActionPlan_Action() {} func (*ActionPlan_PositionOpen) isActionPlan_Action() {} func (*ActionPlan_PositionClose) isActionPlan_Action() {} func (*ActionPlan_PositionWithdraw) isActionPlan_Action() {} @@ -2672,6 +2677,13 @@ func (m *ActionPlan) GetProposalDepositClaim() *v1alpha14.ProposalDepositClaim { return nil } +func (m *ActionPlan) GetWithdrawal() *v1alpha13.Ics20Withdrawal { + if x, ok := m.GetAction().(*ActionPlan_Withdrawal); ok { + return x.Withdrawal + } + return nil +} + func (m *ActionPlan) GetPositionOpen() *v1alpha11.PositionOpen { if x, ok := m.GetAction().(*ActionPlan_PositionOpen); ok { return x.PositionOpen @@ -2756,6 +2768,7 @@ func (*ActionPlan) XXX_OneofWrappers() []interface{} { (*ActionPlan_ValidatorVote)(nil), (*ActionPlan_DelegatorVote)(nil), (*ActionPlan_ProposalDepositClaim)(nil), + (*ActionPlan_Withdrawal)(nil), (*ActionPlan_PositionOpen)(nil), (*ActionPlan_PositionClose)(nil), (*ActionPlan_PositionWithdraw)(nil), @@ -3356,171 +3369,172 @@ func init() { } var fileDescriptor_cd20ea79758052c4 = []byte{ - // 2618 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x4f, 0x6f, 0x1c, 0x49, - 0x15, 0x9f, 0x9e, 0xb1, 0xc7, 0xf6, 0x9b, 0xf1, 0xbf, 0x8a, 0x37, 0x0c, 0x16, 0xf2, 0x46, 0xbd, - 0x49, 0x70, 0x12, 0x76, 0x9c, 0xd8, 0xce, 0x46, 0xf2, 0x06, 0x58, 0x8f, 0xbd, 0xd9, 0x71, 0xb2, - 0x8e, 0x67, 0x3b, 0xc1, 0x51, 0x82, 0xd9, 0xa6, 0xa6, 0xbb, 0xec, 0x69, 0xb9, 0xa7, 0xbb, 0xe9, - 0xee, 0x19, 0xc7, 0xfb, 0x05, 0x80, 0x0b, 0x5a, 0x24, 0x0e, 0x08, 0x21, 0x21, 0x71, 0x41, 0xe2, - 0xc0, 0x81, 0x23, 0x88, 0x33, 0x2b, 0x90, 0x50, 0x24, 0x2e, 0x48, 0x2b, 0x24, 0x48, 0x4e, 0x20, - 0x2e, 0x7c, 0x01, 0x84, 0xaa, 0xba, 0xfa, 0xef, 0xb4, 0x33, 0x3d, 0xb6, 0x03, 0xda, 0x4d, 0x4e, - 0x53, 0xf5, 0xe6, 0xbd, 0x5f, 0x55, 0xbd, 0xf7, 0xaa, 0xea, 0xbd, 0x57, 0x0d, 0xcb, 0x16, 0x31, - 0x3a, 0xed, 0xa6, 0x8d, 0x17, 0x14, 0xd3, 0x26, 0x0b, 0xae, 0x8d, 0x0d, 0x07, 0x2b, 0xae, 0x66, - 0x1a, 0x0b, 0xdd, 0x6b, 0x58, 0xb7, 0x5a, 0xf8, 0x5a, 0x94, 0x58, 0xb5, 0x6c, 0xd3, 0x35, 0x91, - 0xe8, 0x4b, 0x55, 0xa9, 0x54, 0x35, 0xca, 0xe0, 0x4b, 0xcd, 0x5e, 0x8e, 0x23, 0x2b, 0xf6, 0xa1, - 0xe5, 0x9a, 0x21, 0xa8, 0xd7, 0xf7, 0xf0, 0x66, 0xe7, 0xe3, 0xbc, 0x8e, 0x8b, 0xf7, 0x49, 0xc8, - 0xca, 0xba, 0x9c, 0xf3, 0x7c, 0x9c, 0x53, 0x6b, 0x2a, 0x21, 0x9f, 0xd6, 0x54, 0xd2, 0xb9, 0x54, - 0xf2, 0x38, 0xe4, 0x52, 0xc9, 0x63, 0xce, 0xb5, 0x18, 0xe7, 0xda, 0x33, 0xbb, 0xc4, 0x36, 0xb0, - 0xa1, 0x44, 0x86, 0x0e, 0x69, 0x9e, 0x8c, 0xf8, 0x1b, 0x01, 0x4a, 0xf7, 0xc3, 0xe5, 0xa2, 0xf7, - 0x60, 0xa8, 0x69, 0xaa, 0x87, 0x15, 0xe1, 0x9c, 0x30, 0x5f, 0x5a, 0x5c, 0xaa, 0xf6, 0x57, 0x4c, - 0x35, 0x22, 0x5e, 0x33, 0xd5, 0x43, 0x89, 0x01, 0xa0, 0xd7, 0xa1, 0xd4, 0xd4, 0x0c, 0x55, 0x33, - 0xf6, 0x64, 0x47, 0xdb, 0xab, 0xe4, 0xcf, 0x09, 0xf3, 0x65, 0x09, 0x38, 0xe9, 0x9e, 0xb6, 0x87, - 0x56, 0xa1, 0x88, 0x0d, 0xa5, 0x65, 0xda, 0x95, 0x02, 0x1b, 0xeb, 0x52, 0x62, 0x2c, 0xae, 0xd0, - 0x60, 0x98, 0x4d, 0x62, 0xef, 0xeb, 0x44, 0x32, 0x4d, 0x57, 0xe2, 0x82, 0x62, 0x05, 0xf2, 0x1b, - 0x2a, 0x42, 0x30, 0xd4, 0xc2, 0x4e, 0x8b, 0x4d, 0xb9, 0x2c, 0xb1, 0xb6, 0x28, 0x02, 0xbc, 0xbb, - 0xbb, 0x4b, 0x14, 0xb7, 0x8e, 0x9d, 0x16, 0x9a, 0x81, 0x61, 0xcd, 0x30, 0x88, 0xcd, 0x59, 0xbc, - 0x8e, 0xf8, 0xa7, 0x3c, 0x4c, 0x26, 0xe6, 0x8e, 0xd6, 0x61, 0xc4, 0xeb, 0x39, 0x15, 0xe1, 0x5c, - 0x61, 0xbe, 0xb4, 0x78, 0x39, 0x8b, 0x06, 0x56, 0x59, 0x5f, 0xf2, 0x45, 0xd1, 0x1b, 0x30, 0x4e, - 0x1e, 0x5b, 0x9a, 0x7d, 0x28, 0xb7, 0x88, 0xb6, 0xd7, 0x72, 0xd9, 0xea, 0x87, 0xa4, 0xb2, 0x47, - 0xac, 0x33, 0x1a, 0xfa, 0x22, 0x8c, 0x2a, 0x2d, 0xac, 0x19, 0xb2, 0xa6, 0x32, 0x0d, 0x8c, 0x49, - 0x23, 0xac, 0xbf, 0xa1, 0xa2, 0x65, 0x28, 0xec, 0x12, 0x52, 0x19, 0x62, 0x7a, 0x11, 0xfb, 0xe8, - 0xe5, 0x16, 0x21, 0x12, 0x65, 0x47, 0xef, 0xc0, 0xd8, 0x6e, 0x5b, 0x95, 0x15, 0xbd, 0x43, 0x9c, - 0xca, 0x30, 0x9b, 0xfd, 0x1b, 0x7d, 0x64, 0xd7, 0xf4, 0x0e, 0x91, 0x46, 0x77, 0xdb, 0x2a, 0x6d, - 0x38, 0xe8, 0x32, 0x4c, 0x10, 0x83, 0xf1, 0x10, 0x55, 0x6e, 0x93, 0xb6, 0x59, 0x29, 0x52, 0x85, - 0xd5, 0x73, 0xd2, 0x78, 0x40, 0xdf, 0x24, 0x6d, 0xf3, 0x7b, 0x82, 0x50, 0x9b, 0x86, 0x49, 0x39, - 0xce, 0x2c, 0xfe, 0x79, 0x02, 0x8a, 0x9e, 0x2a, 0xd0, 0x2a, 0x0c, 0x3b, 0x16, 0x31, 0x54, 0xee, - 0x47, 0x97, 0xb2, 0x68, 0xf1, 0x1e, 0x15, 0xa8, 0xe7, 0x24, 0x4f, 0x12, 0xad, 0x43, 0xd1, 0xec, - 0xb8, 0x56, 0xc7, 0xd3, 0x5e, 0x46, 0x4b, 0x6c, 0x31, 0x89, 0x7a, 0x4e, 0xe2, 0xb2, 0xe8, 0x2d, - 0x18, 0x72, 0x0e, 0xb0, 0xc5, 0x7d, 0xec, 0x5c, 0x02, 0x83, 0xee, 0x9d, 0x70, 0xfc, 0x03, 0x6c, - 0xd5, 0x73, 0x12, 0xe3, 0x47, 0xb7, 0x00, 0xe8, 0xaf, 0xac, 0xe8, 0x58, 0x6b, 0x73, 0x4b, 0x5c, - 0xe8, 0x27, 0xbd, 0x46, 0x99, 0xeb, 0x39, 0x69, 0xcc, 0xf1, 0x3b, 0x68, 0x17, 0x66, 0xba, 0x58, - 0xd7, 0x54, 0xec, 0x9a, 0xb6, 0xac, 0x92, 0x5d, 0xcd, 0xd0, 0xe8, 0x8c, 0x2b, 0x53, 0x0c, 0xf1, - 0x5a, 0x02, 0xd1, 0x3b, 0x19, 0x02, 0xcc, 0x6d, 0x5f, 0x72, 0x3d, 0x10, 0xac, 0xe7, 0xa4, 0x33, - 0xdd, 0x5e, 0x32, 0x9d, 0xaf, 0xd6, 0x54, 0x64, 0x4f, 0x1f, 0x95, 0xe9, 0xd4, 0xf9, 0xd2, 0xf3, - 0x24, 0xc0, 0xde, 0x68, 0x2a, 0x9e, 0xad, 0xe8, 0x7c, 0x35, 0xbf, 0x83, 0x76, 0x60, 0xd2, 0xb2, - 0x4d, 0xcb, 0x74, 0xb0, 0x2e, 0x3b, 0x9d, 0x66, 0x5b, 0x73, 0x2b, 0x28, 0x75, 0xaa, 0x91, 0x93, - 0x24, 0xc0, 0x6c, 0x70, 0xc9, 0x7b, 0x4c, 0xb0, 0x9e, 0x93, 0x26, 0xac, 0x18, 0x05, 0x35, 0x61, - 0x3a, 0x40, 0x3f, 0xd0, 0xdc, 0x96, 0x6a, 0xe3, 0x83, 0xca, 0x99, 0xd4, 0xa3, 0xe6, 0x79, 0xf8, - 0x0f, 0xb8, 0x68, 0x3d, 0x27, 0x4d, 0x59, 0x09, 0x1a, 0x7a, 0x08, 0x13, 0xa1, 0xc6, 0xbb, 0xa6, - 0x4b, 0x2a, 0x33, 0x6c, 0x80, 0xab, 0x19, 0x06, 0x08, 0x14, 0xbe, 0x6d, 0xba, 0x84, 0xba, 0x7d, - 0x37, 0x4a, 0xa0, 0xd0, 0x2a, 0xd1, 0xc9, 0x5e, 0x08, 0xfd, 0x5a, 0x66, 0xe8, 0x75, 0x5f, 0xd0, - 0x87, 0x56, 0xa3, 0x04, 0x64, 0xc2, 0xd9, 0x40, 0x33, 0x2a, 0xb1, 0x4c, 0x47, 0x73, 0xb9, 0xef, - 0x9d, 0x65, 0x43, 0xdc, 0x18, 0x40, 0x3d, 0xeb, 0x9e, 0xbc, 0xef, 0x8d, 0x33, 0x56, 0x0a, 0x1d, - 0x6d, 0xc1, 0x38, 0xeb, 0x69, 0xa6, 0x21, 0x9b, 0x16, 0x31, 0x2a, 0x73, 0x6c, 0x9c, 0xf9, 0xe7, - 0xf9, 0x78, 0x83, 0x0b, 0x6c, 0x59, 0x84, 0xba, 0x4d, 0xd9, 0x8a, 0xf4, 0x91, 0x04, 0x13, 0x01, - 0xa0, 0xa2, 0x9b, 0x0e, 0xa9, 0xbc, 0x9e, 0xba, 0xf7, 0x53, 0x11, 0xd7, 0xa8, 0x00, 0xd5, 0x8a, - 0x15, 0x25, 0xa0, 0x6f, 0xc2, 0x74, 0x80, 0x19, 0xf8, 0xcb, 0x39, 0x06, 0xfb, 0x95, 0x2c, 0xb0, - 0x31, 0x47, 0x49, 0xd0, 0x10, 0x81, 0xd7, 0x02, 0x70, 0x9b, 0x1c, 0x60, 0x5b, 0xe5, 0x1a, 0x17, - 0xd9, 0x00, 0x0b, 0x59, 0x06, 0x90, 0x98, 0x9c, 0xaf, 0xe9, 0x33, 0x56, 0x2f, 0x19, 0xad, 0xc3, - 0x28, 0x37, 0x35, 0xa9, 0xcc, 0x33, 0xe4, 0x8b, 0xcf, 0xdf, 0xf5, 0xdc, 0x53, 0xa8, 0x3a, 0x02, - 0x49, 0x74, 0x1b, 0xa0, 0x63, 0x04, 0x38, 0x97, 0x52, 0x6d, 0x95, 0xc0, 0xf9, 0x46, 0xc0, 0x5f, - 0xcf, 0x49, 0x11, 0x69, 0xf4, 0x08, 0xa6, 0xc2, 0x1e, 0x5f, 0xf3, 0x65, 0x86, 0xf8, 0x66, 0x56, - 0x44, 0x7f, 0xc5, 0x93, 0x9d, 0x38, 0x09, 0xdd, 0x86, 0x31, 0x15, 0x9b, 0xb2, 0x77, 0xf8, 0x2f, - 0x32, 0xd0, 0x2b, 0x59, 0x76, 0x07, 0x36, 0xfd, 0xe3, 0x7f, 0x54, 0xe5, 0x6d, 0xb4, 0x09, 0x40, - 0xb1, 0xf8, 0x2d, 0xb0, 0x94, 0x6a, 0xf6, 0x23, 0xc0, 0x82, 0x7b, 0x80, 0xce, 0xc6, 0xeb, 0xa0, - 0x06, 0x94, 0x28, 0x1c, 0xdf, 0x5d, 0x95, 0xe5, 0xd4, 0x15, 0x1f, 0x81, 0xc7, 0xb7, 0x0e, 0x55, - 0xa4, 0x1a, 0xf4, 0xd0, 0x43, 0x98, 0xd2, 0x14, 0x67, 0xf1, 0x6a, 0xe0, 0x9b, 0x58, 0xaf, 0x7c, - 0x22, 0xa4, 0x2e, 0x3a, 0x7e, 0xf6, 0x52, 0xa1, 0x07, 0x81, 0x0c, 0xd5, 0xa3, 0x16, 0x27, 0xd5, - 0x46, 0xa1, 0xe8, 0x9d, 0xe5, 0xe2, 0xaf, 0x0b, 0x70, 0x36, 0x12, 0xa6, 0x34, 0x88, 0xed, 0x58, - 0x44, 0x71, 0xb5, 0x2e, 0x41, 0x32, 0x94, 0x2d, 0x7c, 0xa8, 0x9b, 0x58, 0x95, 0xf7, 0xc9, 0xa1, - 0x1f, 0xb2, 0xdc, 0xcc, 0x72, 0x51, 0x36, 0x3c, 0xb9, 0x3b, 0xe4, 0x90, 0x0e, 0xba, 0x66, 0xb6, - 0xdb, 0x9a, 0xdb, 0x26, 0x86, 0x2b, 0x95, 0xac, 0xe0, 0x1f, 0x07, 0x7d, 0x1b, 0xa6, 0x98, 0x25, - 0x65, 0xa3, 0xa3, 0xeb, 0xda, 0xae, 0x46, 0x6c, 0xa7, 0x92, 0x67, 0x83, 0x5c, 0xcf, 0x32, 0xc8, - 0x5d, 0x5f, 0x8a, 0x8e, 0x71, 0xd7, 0x74, 0x89, 0x34, 0xc9, 0xe0, 0x02, 0xba, 0x83, 0x6e, 0x41, - 0x19, 0xab, 0x5d, 0x4d, 0x21, 0xb2, 0x61, 0xba, 0xc4, 0xa9, 0x14, 0x32, 0xc5, 0x2d, 0x0c, 0xab, - 0xe4, 0x09, 0xd2, 0xb6, 0x43, 0x8f, 0x33, 0xac, 0xaa, 0x36, 0x71, 0x1c, 0xb9, 0xab, 0x91, 0x03, - 0xa7, 0x32, 0x94, 0x1a, 0xbe, 0x25, 0x81, 0x56, 0x3d, 0x99, 0x6d, 0x8d, 0x1c, 0x48, 0x65, 0x1c, - 0x76, 0x1c, 0x74, 0x13, 0x8a, 0x2a, 0x31, 0xcc, 0xb6, 0x1f, 0x4a, 0x9d, 0xef, 0x83, 0xb4, 0x4e, - 0x99, 0x25, 0x2e, 0x43, 0xe3, 0xcf, 0x50, 0xc3, 0x47, 0xc4, 0x9f, 0xbf, 0x15, 0xa0, 0x72, 0x94, - 0x19, 0xd0, 0x16, 0x94, 0x22, 0xa6, 0xe5, 0x61, 0x54, 0x75, 0x30, 0xcb, 0x4a, 0x10, 0xda, 0x12, - 0xdd, 0x05, 0x50, 0x02, 0x78, 0x1e, 0x52, 0x55, 0xfb, 0xac, 0xe9, 0x9e, 0x4b, 0xf7, 0x75, 0xe8, - 0x1b, 0x11, 0x04, 0xf1, 0x47, 0x02, 0x4c, 0xf7, 0xd8, 0x17, 0xdd, 0x82, 0xb1, 0xc0, 0x55, 0xf8, - 0xa4, 0xe7, 0xfb, 0xd9, 0xd2, 0xe7, 0x97, 0x42, 0x51, 0x74, 0x03, 0x86, 0xa8, 0x3f, 0xf0, 0x79, - 0x66, 0x72, 0x07, 0x26, 0x20, 0xfe, 0x51, 0x88, 0x05, 0xf5, 0xd4, 0x96, 0xe8, 0x3e, 0x8c, 0xd1, - 0x94, 0x84, 0x39, 0x06, 0x9f, 0xd4, 0x8d, 0x63, 0x24, 0x36, 0xcc, 0x49, 0x46, 0x9b, 0xbc, 0xf5, - 0x3f, 0x49, 0x70, 0xfe, 0x93, 0x87, 0x33, 0x29, 0xb3, 0x40, 0x1f, 0x40, 0xd9, 0xa3, 0x70, 0x67, - 0xf7, 0x36, 0x7e, 0x35, 0x7b, 0xae, 0xc2, 0xd6, 0x52, 0x0a, 0x75, 0xf4, 0xd9, 0xcd, 0x59, 0xee, - 0xc2, 0x18, 0x4d, 0x3e, 0x3c, 0xe3, 0x16, 0x53, 0xef, 0x88, 0x54, 0x3d, 0xd0, 0x3c, 0x86, 0xae, - 0x9c, 0xde, 0x38, 0x6d, 0xde, 0xa6, 0x79, 0x4d, 0x19, 0x40, 0x0e, 0x00, 0xc5, 0x7f, 0x4f, 0x00, - 0x84, 0x1a, 0x43, 0xef, 0xc6, 0xd3, 0x9a, 0x37, 0x33, 0xa7, 0x35, 0x7c, 0x24, 0x9e, 0xda, 0xd4, - 0x13, 0xa9, 0x4d, 0x35, 0x7b, 0x6a, 0xc3, 0x81, 0xfc, 0xf4, 0x66, 0x25, 0x96, 0xde, 0x9c, 0xef, - 0x97, 0xa0, 0x70, 0x69, 0x2f, 0xc5, 0xb9, 0x9d, 0x92, 0xe2, 0x5c, 0xca, 0x94, 0xe2, 0x70, 0x98, - 0x57, 0x69, 0xce, 0xe7, 0x33, 0xcd, 0xf9, 0xf0, 0x88, 0x34, 0x27, 0xd3, 0x9d, 0x1f, 0xcb, 0x73, - 0xb8, 0xa3, 0xbc, 0xca, 0x75, 0x5e, 0xc2, 0x5c, 0xe7, 0xd2, 0x29, 0xe5, 0x3a, 0x97, 0x4f, 0x94, - 0xeb, 0xbc, 0x54, 0xf9, 0x48, 0x5a, 0x62, 0x77, 0xe5, 0x94, 0x12, 0xbb, 0x17, 0x98, 0xeb, 0x8c, - 0x43, 0x29, 0x12, 0xcd, 0x88, 0x3f, 0x2c, 0xc0, 0x58, 0x70, 0x69, 0xa2, 0x0f, 0x60, 0xa4, 0xab, - 0x39, 0x5a, 0x53, 0x27, 0xfc, 0xd2, 0xbd, 0x3e, 0xd0, 0xa5, 0x5b, 0xdd, 0xf6, 0x84, 0xeb, 0x39, - 0xc9, 0xc7, 0x41, 0x77, 0xa1, 0x68, 0x5a, 0xf8, 0x3b, 0x1d, 0x3f, 0xbc, 0x5c, 0x1e, 0x0c, 0x71, - 0x8b, 0xc9, 0xb2, 0x4b, 0x98, 0xb5, 0x66, 0xbf, 0x2b, 0xc0, 0x08, 0x1f, 0x06, 0x7d, 0xfd, 0xb8, - 0x85, 0x4f, 0x3f, 0x36, 0x78, 0x3b, 0x16, 0xf9, 0x7e, 0x39, 0x43, 0xe4, 0xcb, 0x62, 0x39, 0x26, - 0x34, 0xbb, 0x01, 0x45, 0x6f, 0x76, 0x27, 0x9e, 0x07, 0x8d, 0x83, 0xbc, 0xd4, 0x8f, 0xd9, 0xe4, - 0xaf, 0x05, 0x98, 0xee, 0x39, 0xd9, 0xd1, 0xc3, 0xa4, 0x6d, 0xbe, 0x7a, 0xac, 0x1b, 0x22, 0xcd, - 0x46, 0xdb, 0x09, 0x1b, 0xdd, 0x3c, 0x1e, 0x72, 0x8f, 0xad, 0x7e, 0x16, 0xb1, 0xd5, 0x83, 0x9e, - 0x7b, 0x4e, 0x38, 0x5e, 0x39, 0x2f, 0x79, 0xc1, 0x9d, 0xc8, 0x86, 0x38, 0xb0, 0xe1, 0x8b, 0x9a, - 0x5f, 0x6d, 0x2a, 0x09, 0x2c, 0xfe, 0xab, 0x00, 0x10, 0x06, 0x98, 0x48, 0x4a, 0x1a, 0xf6, 0xad, - 0xc1, 0x22, 0xd4, 0x34, 0x8b, 0x6e, 0x25, 0x2c, 0x7a, 0x7d, 0x40, 0xc8, 0x1e, 0x53, 0x7e, 0x1a, - 0x31, 0x65, 0x2d, 0x88, 0xa8, 0x85, 0x41, 0x1f, 0x0b, 0x82, 0x58, 0xfa, 0x24, 0x56, 0x4b, 0xe6, - 0xeb, 0x85, 0x93, 0xe6, 0xeb, 0xb3, 0xef, 0x07, 0x6e, 0x70, 0x0a, 0x6b, 0xa3, 0x47, 0xac, 0xd7, - 0xf2, 0xb6, 0xf3, 0xa7, 0x02, 0x0c, 0x7b, 0x77, 0xda, 0x6a, 0xec, 0xbd, 0x2f, 0x7b, 0x42, 0x13, - 0x79, 0xe9, 0x7b, 0x1f, 0x46, 0x71, 0xc7, 0x6d, 0x05, 0x59, 0x70, 0x6f, 0x10, 0xdd, 0x53, 0x57, - 0xa0, 0x08, 0xab, 0x1d, 0xb7, 0x75, 0x4f, 0xdb, 0x33, 0xb0, 0xdb, 0xb1, 0x89, 0x34, 0x82, 0xbd, - 0x2e, 0x5a, 0x85, 0x61, 0xcb, 0x36, 0xcd, 0x5d, 0xae, 0xc2, 0x2b, 0x7d, 0xa0, 0x1e, 0xdd, 0x61, - 0x60, 0x0d, 0x2a, 0x22, 0x79, 0x92, 0xe2, 0x4f, 0x04, 0x7e, 0x81, 0xb0, 0x27, 0x3d, 0x19, 0x50, - 0x13, 0xeb, 0x74, 0x77, 0xc8, 0x91, 0x02, 0x48, 0xfa, 0x4e, 0x4a, 0xa2, 0xd7, 0x3c, 0xc1, 0x48, - 0x09, 0x64, 0xba, 0x99, 0x24, 0xa1, 0x2f, 0x45, 0x6b, 0x1e, 0x05, 0x56, 0x06, 0x88, 0x54, 0x32, - 0x26, 0x20, 0x6f, 0xef, 0xb3, 0xec, 0xaa, 0x2c, 0xe5, 0xed, 0x7d, 0xf1, 0x63, 0x01, 0x8a, 0x3c, - 0x00, 0xa8, 0xc5, 0x74, 0x3f, 0x40, 0x12, 0x18, 0x51, 0x7e, 0xcd, 0x57, 0x57, 0x3e, 0x35, 0x1c, - 0xe9, 0x55, 0x97, 0x87, 0x10, 0xd3, 0xd7, 0x0f, 0xf2, 0xfe, 0xe6, 0x67, 0x0a, 0xdb, 0x84, 0x32, - 0x75, 0x69, 0x99, 0x3b, 0xe3, 0x11, 0x5e, 0x97, 0xb6, 0x1f, 0xb8, 0x2b, 0x4b, 0x25, 0x23, 0xec, - 0x1c, 0xa1, 0xff, 0xfc, 0xe9, 0xe9, 0x7f, 0x1e, 0xa6, 0x0e, 0x6c, 0x6c, 0x59, 0xfc, 0x19, 0x32, - 0xd8, 0x7f, 0x65, 0x69, 0x82, 0xd3, 0x69, 0xae, 0x7f, 0x87, 0x1c, 0xa2, 0x8b, 0x30, 0x69, 0x76, - 0xf7, 0x65, 0x9f, 0x9b, 0x32, 0x7a, 0x86, 0x19, 0x37, 0xbb, 0xfb, 0x0f, 0x3c, 0xea, 0x1d, 0x72, - 0x28, 0xfe, 0x38, 0x0f, 0xd3, 0xd4, 0x3d, 0x4d, 0x5b, 0xfb, 0x08, 0x53, 0x03, 0xac, 0x63, 0x17, - 0xa3, 0xdb, 0x50, 0x22, 0xec, 0x4d, 0x59, 0x0e, 0x9e, 0x9b, 0xfb, 0x17, 0x75, 0xc2, 0x57, 0x68, - 0x09, 0x48, 0xf8, 0x22, 0x2d, 0x41, 0xc9, 0xbb, 0x5d, 0xa9, 0xdb, 0xfb, 0x35, 0xd5, 0x63, 0x6c, - 0x1b, 0xef, 0x8e, 0xa6, 0x34, 0x07, 0x29, 0x30, 0x13, 0x3f, 0xd5, 0x39, 0x78, 0xe1, 0xb8, 0xe0, - 0x28, 0x76, 0x6b, 0xb0, 0x41, 0xc4, 0xdf, 0x09, 0x50, 0x7a, 0xa0, 0xb9, 0x06, 0x71, 0x1c, 0xa6, - 0x94, 0xb0, 0xc8, 0x25, 0x1c, 0xb3, 0xc8, 0x85, 0xf6, 0xe1, 0x0b, 0x8e, 0xcb, 0x02, 0xd6, 0xc0, - 0xa6, 0x32, 0x73, 0x4c, 0x5f, 0x2f, 0x4b, 0x83, 0x95, 0x29, 0x3d, 0xdf, 0x7e, 0xcd, 0x49, 0xa1, - 0x3a, 0xe2, 0x3f, 0xe2, 0x8f, 0xfe, 0x0d, 0x1d, 0x1b, 0xa8, 0x9e, 0x7c, 0xf4, 0x1f, 0xa0, 0x90, - 0x46, 0x01, 0xfe, 0xdf, 0x0f, 0xff, 0x77, 0x00, 0x14, 0xbd, 0x43, 0x64, 0x4b, 0xc7, 0x86, 0x5f, - 0x45, 0xcb, 0x54, 0x03, 0x5b, 0xd3, 0x3b, 0x84, 0x2d, 0x60, 0x4c, 0xe1, 0x2d, 0x07, 0x6d, 0xf0, - 0x7a, 0x1a, 0x05, 0x1b, 0xb4, 0x9e, 0xc6, 0xb0, 0x58, 0x35, 0x8d, 0xb6, 0xc4, 0x9f, 0x06, 0xc5, - 0x33, 0xa6, 0xe6, 0x63, 0x17, 0xcf, 0xa8, 0xf4, 0xa9, 0x14, 0xcf, 0x38, 0xd0, 0x31, 0x8b, 0x67, - 0x5c, 0xfa, 0xa4, 0xc5, 0x33, 0x0e, 0xf3, 0xaa, 0x78, 0xf6, 0xf9, 0x2c, 0x9e, 0x7d, 0xeb, 0x88, - 0xe2, 0xd9, 0xf2, 0xa0, 0x41, 0x3b, 0xf7, 0x93, 0x57, 0xb5, 0xb3, 0x0c, 0xb5, 0x33, 0xf9, 0xe8, - 0xda, 0xd9, 0xd5, 0x41, 0x6a, 0x67, 0x5c, 0xe7, 0xbd, 0xf5, 0x33, 0xed, 0xf9, 0xf5, 0xb3, 0xa5, - 0x01, 0xeb, 0x67, 0x7c, 0x9c, 0xcf, 0xc8, 0xf7, 0x02, 0x1f, 0x1e, 0xf9, 0xbd, 0xc0, 0xb5, 0x81, - 0xca, 0x4a, 0x7c, 0xd5, 0x2f, 0xf5, 0x37, 0x03, 0x91, 0x87, 0xfd, 0xef, 0x0b, 0x30, 0xea, 0xdf, - 0xc0, 0xe8, 0x1d, 0x18, 0xe1, 0xcf, 0xcf, 0xfc, 0x7a, 0xbc, 0x98, 0xed, 0xe5, 0x5a, 0xf2, 0xc5, - 0xd0, 0x0c, 0x0c, 0xdb, 0x0e, 0x21, 0x2a, 0x7f, 0x89, 0xf4, 0x3a, 0xe8, 0x02, 0x4c, 0x58, 0x36, - 0x51, 0x34, 0x87, 0x7a, 0x6e, 0x53, 0x73, 0x1d, 0x76, 0xdb, 0x0d, 0x49, 0xe3, 0x01, 0xb5, 0xa6, - 0xb9, 0x8e, 0xd8, 0x86, 0x51, 0xff, 0x02, 0x47, 0x5b, 0x30, 0x66, 0xe9, 0x58, 0x33, 0x5c, 0xf2, - 0xd8, 0xcf, 0x93, 0xae, 0x0d, 0x10, 0x01, 0x78, 0x82, 0x52, 0x88, 0x81, 0xa6, 0xa0, 0x40, 0x43, - 0x6d, 0x6f, 0x5e, 0xb4, 0x29, 0x5e, 0x84, 0x09, 0xca, 0xbd, 0xa6, 0x59, 0x2d, 0x62, 0x33, 0x9e, - 0xf4, 0x27, 0x72, 0x05, 0xc6, 0x63, 0xa8, 0xe8, 0x6b, 0x50, 0x74, 0x88, 0xa1, 0x06, 0x8f, 0xcb, - 0x59, 0xb5, 0xc4, 0xa5, 0x10, 0x82, 0x21, 0xb6, 0xac, 0x3c, 0x8b, 0xbb, 0x58, 0x5b, 0xfc, 0x7d, - 0xc1, 0x5b, 0x3c, 0xab, 0x7c, 0x34, 0x92, 0x95, 0x8f, 0xe5, 0x41, 0x1e, 0x13, 0xd3, 0xea, 0x1e, - 0x9b, 0x89, 0xba, 0xc7, 0xd2, 0x40, 0x80, 0x3d, 0x55, 0x8f, 0x5f, 0x45, 0xaa, 0x1e, 0x12, 0x80, - 0x12, 0xa8, 0x90, 0xcf, 0x77, 0x31, 0x2b, 0x7c, 0xa8, 0x7c, 0x29, 0x82, 0x12, 0xb7, 0x7e, 0xfe, - 0xe4, 0xd6, 0x9f, 0xdd, 0x09, 0x0a, 0x19, 0x2f, 0x60, 0xba, 0xb5, 0x52, 0xe4, 0xf9, 0x57, 0xfc, - 0x85, 0x9f, 0xf8, 0x33, 0x3f, 0xf6, 0xbf, 0x21, 0x10, 0x06, 0xfc, 0x86, 0x00, 0xcd, 0xc2, 0xa8, - 0x7f, 0x30, 0xf3, 0x00, 0x3e, 0xe8, 0xa3, 0x39, 0x00, 0x1b, 0x1b, 0xaa, 0xd9, 0xd6, 0x3e, 0x0a, - 0xb2, 0xfd, 0x08, 0x85, 0xee, 0xb7, 0x2e, 0xa6, 0xc1, 0x78, 0x53, 0xf7, 0xbe, 0x04, 0xf0, 0x33, - 0x4c, 0x46, 0xad, 0x71, 0xa2, 0xf8, 0x44, 0xf0, 0x53, 0x6e, 0x36, 0xd5, 0x15, 0x18, 0x66, 0xff, - 0xf3, 0xb9, 0xf6, 0xfb, 0xd6, 0x64, 0x9b, 0xf2, 0x4a, 0x9e, 0x08, 0xda, 0x80, 0xb2, 0x4a, 0x1c, - 0x57, 0xf6, 0x8f, 0x8f, 0xfc, 0x40, 0x1b, 0xa3, 0x44, 0x65, 0x57, 0x93, 0x47, 0x48, 0x21, 0x71, - 0x84, 0x64, 0x58, 0x52, 0xed, 0xef, 0xf9, 0x4f, 0x9e, 0xce, 0x09, 0x4f, 0x9e, 0xce, 0x09, 0x7f, - 0x7b, 0x3a, 0x27, 0x7c, 0xfc, 0x6c, 0x2e, 0xf7, 0xe4, 0xd9, 0x5c, 0xee, 0x2f, 0xcf, 0xe6, 0x72, - 0x70, 0x51, 0x31, 0xdb, 0x19, 0xec, 0x5c, 0x9b, 0x8a, 0x66, 0x66, 0xb6, 0xe9, 0x9a, 0x0d, 0xe1, - 0x51, 0x73, 0x4f, 0x73, 0x5b, 0x9d, 0x66, 0x55, 0x31, 0xdb, 0x0b, 0x8a, 0xe9, 0xb4, 0x4d, 0x67, - 0xc1, 0x26, 0x3a, 0x3e, 0x24, 0xf6, 0x42, 0x77, 0x31, 0x68, 0xb2, 0x04, 0xca, 0x59, 0xe8, 0xff, - 0xf1, 0xff, 0xdb, 0x11, 0xa2, 0x4f, 0xfb, 0x79, 0xbe, 0xd0, 0x58, 0xbb, 0xff, 0xcb, 0xbc, 0xd8, - 0xf0, 0xa7, 0xb8, 0x46, 0xa7, 0x18, 0x99, 0x4c, 0x75, 0x9b, 0xb3, 0xfe, 0x21, 0x64, 0xda, 0xa1, - 0x4c, 0x3b, 0x11, 0xa6, 0x1d, 0x9f, 0xe9, 0x69, 0xbe, 0xda, 0x9f, 0x69, 0xe7, 0xbd, 0x46, 0x6d, - 0x93, 0xb8, 0x58, 0xc5, 0x2e, 0xfe, 0x67, 0xfe, 0x82, 0x2f, 0xb0, 0xb2, 0x42, 0x25, 0x56, 0x56, - 0x22, 0x22, 0x2b, 0x2b, 0xbe, 0x4c, 0xb3, 0xc8, 0x3e, 0xda, 0x5f, 0xfa, 0x6f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xbd, 0x8d, 0x72, 0x3a, 0xe6, 0x30, 0x00, 0x00, + // 2631 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0x9f, 0x9e, 0xb1, 0xc7, 0xf6, 0x9b, 0xf1, 0x57, 0xc5, 0x9b, 0x1d, 0x2c, 0xe4, 0x8d, 0x7a, + 0x93, 0xe0, 0x24, 0xec, 0x38, 0xb1, 0x9d, 0x8d, 0xe4, 0x0d, 0xb0, 0x1e, 0x7b, 0xb3, 0xe3, 0x64, + 0x1d, 0xcf, 0x76, 0x82, 0xa3, 0x04, 0xb3, 0x4d, 0x4d, 0x77, 0xd9, 0xd3, 0x72, 0x4f, 0x77, 0xd3, + 0xdd, 0x33, 0x8e, 0xf7, 0x1f, 0x00, 0x2e, 0x68, 0x91, 0x38, 0x20, 0x2e, 0x48, 0x5c, 0x90, 0x38, + 0x70, 0xe0, 0x08, 0xe2, 0xcc, 0x0a, 0x24, 0x14, 0x89, 0x0b, 0xd2, 0x0a, 0x09, 0x92, 0x13, 0x1f, + 0x17, 0xfe, 0x01, 0x84, 0xaa, 0xba, 0xfa, 0x73, 0xda, 0x99, 0x1e, 0x3b, 0x61, 0x95, 0x4d, 0x4e, + 0xae, 0x7a, 0x7e, 0xef, 0x57, 0x55, 0xef, 0xbd, 0xaa, 0x7a, 0xef, 0x55, 0x0f, 0x2c, 0x5b, 0xc4, + 0xe8, 0xb4, 0x9b, 0x36, 0x5e, 0x50, 0x4c, 0x9b, 0x2c, 0xb8, 0x36, 0x36, 0x1c, 0xac, 0xb8, 0x9a, + 0x69, 0x2c, 0x74, 0xaf, 0x60, 0xdd, 0x6a, 0xe1, 0x2b, 0x51, 0x62, 0xd5, 0xb2, 0x4d, 0xd7, 0x44, + 0xa2, 0x2f, 0x55, 0xa5, 0x52, 0xd5, 0x28, 0x83, 0x2f, 0x35, 0x7b, 0x31, 0x8e, 0xac, 0xd8, 0x87, + 0x96, 0x6b, 0x86, 0xa0, 0x5e, 0xdf, 0xc3, 0x9b, 0x9d, 0x8f, 0xf3, 0x3a, 0x2e, 0xde, 0x27, 0x21, + 0x2b, 0xeb, 0x72, 0xce, 0xb3, 0x71, 0x4e, 0xad, 0xa9, 0x84, 0x7c, 0x5a, 0x53, 0x49, 0xe7, 0x52, + 0xc9, 0xc3, 0x90, 0x4b, 0x25, 0x0f, 0x39, 0xd7, 0x62, 0x9c, 0x6b, 0xcf, 0xec, 0x12, 0xdb, 0xc0, + 0x86, 0x12, 0x19, 0x3a, 0xa4, 0x79, 0x32, 0xe2, 0x6f, 0x04, 0x28, 0xdd, 0x0d, 0x97, 0x8b, 0xde, + 0x87, 0xa1, 0xa6, 0xa9, 0x1e, 0x56, 0x84, 0x33, 0xc2, 0x7c, 0x69, 0x71, 0xa9, 0xda, 0x5f, 0x31, + 0xd5, 0x88, 0x78, 0xcd, 0x54, 0x0f, 0x25, 0x06, 0x80, 0xde, 0x80, 0x52, 0x53, 0x33, 0x54, 0xcd, + 0xd8, 0x93, 0x1d, 0x6d, 0xaf, 0x92, 0x3f, 0x23, 0xcc, 0x97, 0x25, 0xe0, 0xa4, 0x3b, 0xda, 0x1e, + 0x5a, 0x85, 0x22, 0x36, 0x94, 0x96, 0x69, 0x57, 0x0a, 0x6c, 0xac, 0x0b, 0x89, 0xb1, 0xb8, 0x42, + 0x83, 0x61, 0x36, 0x89, 0xbd, 0xaf, 0x13, 0xc9, 0x34, 0x5d, 0x89, 0x0b, 0x8a, 0x15, 0xc8, 0x6f, + 0xa8, 0x08, 0xc1, 0x50, 0x0b, 0x3b, 0x2d, 0x36, 0xe5, 0xb2, 0xc4, 0xda, 0xa2, 0x08, 0xf0, 0xde, + 0xee, 0x2e, 0x51, 0xdc, 0x3a, 0x76, 0x5a, 0x68, 0x06, 0x86, 0x35, 0xc3, 0x20, 0x36, 0x67, 0xf1, + 0x3a, 0xe2, 0x9f, 0xf2, 0x30, 0x99, 0x98, 0x3b, 0x5a, 0x87, 0x11, 0xaf, 0xe7, 0x54, 0x84, 0x33, + 0x85, 0xf9, 0xd2, 0xe2, 0xc5, 0x2c, 0x1a, 0x58, 0x65, 0x7d, 0xc9, 0x17, 0x45, 0x6f, 0xc2, 0x38, + 0x79, 0x68, 0x69, 0xf6, 0xa1, 0xdc, 0x22, 0xda, 0x5e, 0xcb, 0x65, 0xab, 0x1f, 0x92, 0xca, 0x1e, + 0xb1, 0xce, 0x68, 0xe8, 0x4b, 0x30, 0xaa, 0xb4, 0xb0, 0x66, 0xc8, 0x9a, 0xca, 0x34, 0x30, 0x26, + 0x8d, 0xb0, 0xfe, 0x86, 0x8a, 0x96, 0xa1, 0xb0, 0x4b, 0x48, 0x65, 0x88, 0xe9, 0x45, 0xec, 0xa3, + 0x97, 0x1b, 0x84, 0x48, 0x94, 0x1d, 0xbd, 0x0b, 0x63, 0xbb, 0x6d, 0x55, 0x56, 0xf4, 0x0e, 0x71, + 0x2a, 0xc3, 0x6c, 0xf6, 0x6f, 0xf6, 0x91, 0x5d, 0xd3, 0x3b, 0x44, 0x1a, 0xdd, 0x6d, 0xab, 0xb4, + 0xe1, 0xa0, 0x8b, 0x30, 0x41, 0x0c, 0xc6, 0x43, 0x54, 0xb9, 0x4d, 0xda, 0x66, 0xa5, 0x48, 0x15, + 0x56, 0xcf, 0x49, 0xe3, 0x01, 0x7d, 0x93, 0xb4, 0xcd, 0xef, 0x0b, 0x42, 0x6d, 0x1a, 0x26, 0xe5, + 0x38, 0xb3, 0xf8, 0xe7, 0x09, 0x28, 0x7a, 0xaa, 0x40, 0xab, 0x30, 0xec, 0x58, 0xc4, 0x50, 0xb9, + 0x1f, 0x5d, 0xc8, 0xa2, 0xc5, 0x3b, 0x54, 0xa0, 0x9e, 0x93, 0x3c, 0x49, 0xb4, 0x0e, 0x45, 0xb3, + 0xe3, 0x5a, 0x1d, 0x4f, 0x7b, 0x19, 0x2d, 0xb1, 0xc5, 0x24, 0xea, 0x39, 0x89, 0xcb, 0xa2, 0xb7, + 0x61, 0xc8, 0x39, 0xc0, 0x16, 0xf7, 0xb1, 0x33, 0x09, 0x0c, 0xba, 0x77, 0xc2, 0xf1, 0x0f, 0xb0, + 0x55, 0xcf, 0x49, 0x8c, 0x1f, 0xdd, 0x00, 0xa0, 0x7f, 0x65, 0x45, 0xc7, 0x5a, 0x9b, 0x5b, 0xe2, + 0x5c, 0x3f, 0xe9, 0x35, 0xca, 0x5c, 0xcf, 0x49, 0x63, 0x8e, 0xdf, 0x41, 0xbb, 0x30, 0xd3, 0xc5, + 0xba, 0xa6, 0x62, 0xd7, 0xb4, 0x65, 0x95, 0xec, 0x6a, 0x86, 0x46, 0x67, 0x5c, 0x99, 0x62, 0x88, + 0x57, 0x12, 0x88, 0xde, 0xc9, 0x10, 0x60, 0x6e, 0xfb, 0x92, 0xeb, 0x81, 0x60, 0x3d, 0x27, 0x9d, + 0xea, 0xf6, 0x92, 0xe9, 0x7c, 0xb5, 0xa6, 0x22, 0x7b, 0xfa, 0xa8, 0x4c, 0xa7, 0xce, 0x97, 0x9e, + 0x27, 0x01, 0xf6, 0x46, 0x53, 0xf1, 0x6c, 0x45, 0xe7, 0xab, 0xf9, 0x1d, 0xb4, 0x03, 0x93, 0x96, + 0x6d, 0x5a, 0xa6, 0x83, 0x75, 0xd9, 0xe9, 0x34, 0xdb, 0x9a, 0x5b, 0x41, 0xa9, 0x53, 0x8d, 0x9c, + 0x24, 0x01, 0x66, 0x83, 0x4b, 0xde, 0x61, 0x82, 0xf5, 0x9c, 0x34, 0x61, 0xc5, 0x28, 0xa8, 0x09, + 0xd3, 0x01, 0xfa, 0x81, 0xe6, 0xb6, 0x54, 0x1b, 0x1f, 0x54, 0x4e, 0xa5, 0x1e, 0x35, 0x4f, 0xc3, + 0xbf, 0xc7, 0x45, 0xeb, 0x39, 0x69, 0xca, 0x4a, 0xd0, 0xd0, 0x7d, 0x98, 0x08, 0x35, 0xde, 0x35, + 0x5d, 0x52, 0x99, 0x61, 0x03, 0x5c, 0xce, 0x30, 0x40, 0xa0, 0xf0, 0x6d, 0xd3, 0x25, 0xd4, 0xed, + 0xbb, 0x51, 0x02, 0x85, 0x56, 0x89, 0x4e, 0xf6, 0x42, 0xe8, 0xd7, 0x32, 0x43, 0xaf, 0xfb, 0x82, + 0x3e, 0xb4, 0x1a, 0x25, 0x20, 0x13, 0x4e, 0x07, 0x9a, 0x51, 0x89, 0x65, 0x3a, 0x9a, 0xcb, 0x7d, + 0xef, 0x34, 0x1b, 0xe2, 0xda, 0x00, 0xea, 0x59, 0xf7, 0xe4, 0x7d, 0x6f, 0x9c, 0xb1, 0x52, 0xe8, + 0x68, 0x0b, 0xc6, 0x59, 0x4f, 0x33, 0x0d, 0xd9, 0xb4, 0x88, 0x51, 0x99, 0x63, 0xe3, 0xcc, 0x3f, + 0xcd, 0xc7, 0x1b, 0x5c, 0x60, 0xcb, 0x22, 0xd4, 0x6d, 0xca, 0x56, 0xa4, 0x8f, 0x24, 0x98, 0x08, + 0x00, 0x15, 0xdd, 0x74, 0x48, 0xe5, 0x8d, 0xd4, 0xbd, 0x9f, 0x8a, 0xb8, 0x46, 0x05, 0xa8, 0x56, + 0xac, 0x28, 0x01, 0x7d, 0x0b, 0xa6, 0x03, 0xcc, 0xc0, 0x5f, 0xce, 0x30, 0xd8, 0xaf, 0x66, 0x81, + 0x8d, 0x39, 0x4a, 0x82, 0x86, 0x08, 0xbc, 0x16, 0x80, 0xdb, 0xe4, 0x00, 0xdb, 0x2a, 0xd7, 0xb8, + 0xc8, 0x06, 0x58, 0xc8, 0x32, 0x80, 0xc4, 0xe4, 0x7c, 0x4d, 0x9f, 0xb2, 0x7a, 0xc9, 0x68, 0x1d, + 0x46, 0xb9, 0xa9, 0x49, 0x65, 0x9e, 0x21, 0x9f, 0x7f, 0xfa, 0xae, 0xe7, 0x9e, 0x42, 0xd5, 0x11, + 0x48, 0xa2, 0x9b, 0x00, 0x1d, 0x23, 0xc0, 0xb9, 0x90, 0x6a, 0xab, 0x04, 0xce, 0x37, 0x03, 0xfe, + 0x7a, 0x4e, 0x8a, 0x48, 0xa3, 0x07, 0x30, 0x15, 0xf6, 0xf8, 0x9a, 0x2f, 0x32, 0xc4, 0xb7, 0xb2, + 0x22, 0xfa, 0x2b, 0x9e, 0xec, 0xc4, 0x49, 0xe8, 0x26, 0x8c, 0xa9, 0xd8, 0x94, 0xbd, 0xc3, 0x7f, + 0x91, 0x81, 0x5e, 0xca, 0xb2, 0x3b, 0xb0, 0xe9, 0x1f, 0xff, 0xa3, 0x2a, 0x6f, 0xa3, 0x4d, 0x00, + 0x8a, 0xc5, 0x6f, 0x81, 0xa5, 0x54, 0xb3, 0x1f, 0x01, 0x16, 0xdc, 0x03, 0x74, 0x36, 0x5e, 0x07, + 0x35, 0xa0, 0x44, 0xe1, 0xf8, 0xee, 0xaa, 0x2c, 0xa7, 0xae, 0xf8, 0x08, 0x3c, 0xbe, 0x75, 0xa8, + 0x22, 0xd5, 0xa0, 0x87, 0xee, 0xc3, 0x94, 0xa6, 0x38, 0x8b, 0x97, 0x03, 0xdf, 0xc4, 0x7a, 0xe5, + 0x53, 0x21, 0x75, 0xd1, 0xf1, 0xb3, 0x97, 0x0a, 0xdd, 0x0b, 0x64, 0xa8, 0x1e, 0xb5, 0x38, 0xa9, + 0x36, 0x0a, 0x45, 0xef, 0x2c, 0x17, 0x7f, 0x5d, 0x80, 0xd3, 0x91, 0x30, 0xa5, 0x41, 0x6c, 0xc7, + 0x22, 0x8a, 0xab, 0x75, 0x09, 0x92, 0xa1, 0x6c, 0xe1, 0x43, 0xdd, 0xc4, 0xaa, 0xbc, 0x4f, 0x0e, + 0xfd, 0x90, 0xe5, 0x7a, 0x96, 0x8b, 0xb2, 0xe1, 0xc9, 0xdd, 0x22, 0x87, 0x74, 0xd0, 0x35, 0xb3, + 0xdd, 0xd6, 0xdc, 0x36, 0x31, 0x5c, 0xa9, 0x64, 0x05, 0xff, 0x71, 0xd0, 0x77, 0x60, 0x8a, 0x59, + 0x52, 0x36, 0x3a, 0xba, 0xae, 0xed, 0x6a, 0xc4, 0x76, 0x2a, 0x79, 0x36, 0xc8, 0xd5, 0x2c, 0x83, + 0xdc, 0xf6, 0xa5, 0xe8, 0x18, 0xb7, 0x4d, 0x97, 0x48, 0x93, 0x0c, 0x2e, 0xa0, 0x3b, 0xe8, 0x06, + 0x94, 0xb1, 0xda, 0xd5, 0x14, 0x22, 0x1b, 0xa6, 0x4b, 0x9c, 0x4a, 0x21, 0x53, 0xdc, 0xc2, 0xb0, + 0x4a, 0x9e, 0x20, 0x6d, 0x3b, 0xf4, 0x38, 0xc3, 0xaa, 0x6a, 0x13, 0xc7, 0x91, 0xbb, 0x1a, 0x39, + 0x70, 0x2a, 0x43, 0xa9, 0xe1, 0x5b, 0x12, 0x68, 0xd5, 0x93, 0xd9, 0xd6, 0xc8, 0x81, 0x54, 0xc6, + 0x61, 0xc7, 0x41, 0xd7, 0xa1, 0xa8, 0x12, 0xc3, 0x6c, 0xfb, 0xa1, 0xd4, 0xd9, 0x3e, 0x48, 0xeb, + 0x94, 0x59, 0xe2, 0x32, 0x34, 0xfe, 0x0c, 0x35, 0x7c, 0x44, 0xfc, 0xf9, 0x5b, 0x01, 0x2a, 0x47, + 0x99, 0x01, 0x6d, 0x41, 0x29, 0x62, 0x5a, 0x1e, 0x46, 0x55, 0x07, 0xb3, 0xac, 0x04, 0xa1, 0x2d, + 0xd1, 0x6d, 0x00, 0x25, 0x80, 0xe7, 0x21, 0x55, 0xb5, 0xcf, 0x9a, 0xee, 0xb8, 0x74, 0x5f, 0x87, + 0xbe, 0x11, 0x41, 0x10, 0x7f, 0x2c, 0xc0, 0x74, 0x8f, 0x7d, 0xd1, 0x0d, 0x18, 0x0b, 0x5c, 0x85, + 0x4f, 0x7a, 0xbe, 0x9f, 0x2d, 0x7d, 0x7e, 0x29, 0x14, 0x45, 0xd7, 0x60, 0x88, 0xfa, 0x03, 0x9f, + 0x67, 0x26, 0x77, 0x60, 0x02, 0xe2, 0x1f, 0x85, 0x58, 0x50, 0x4f, 0x6d, 0x89, 0xee, 0xc2, 0x18, + 0x4d, 0x49, 0x98, 0x63, 0xf0, 0x49, 0x5d, 0x3b, 0x46, 0x62, 0xc3, 0x9c, 0x64, 0xb4, 0xc9, 0x5b, + 0xff, 0x97, 0x04, 0xe7, 0xbf, 0x79, 0x38, 0x95, 0x32, 0x0b, 0xf4, 0x21, 0x94, 0x3d, 0x0a, 0x77, + 0x76, 0x6f, 0xe3, 0x57, 0xb3, 0xe7, 0x2a, 0x6c, 0x2d, 0xa5, 0x50, 0x47, 0x2f, 0x6e, 0xce, 0x72, + 0x1b, 0xc6, 0x68, 0xf2, 0xe1, 0x19, 0xb7, 0x98, 0x7a, 0x47, 0xa4, 0xea, 0x81, 0xe6, 0x31, 0x74, + 0xe5, 0xf4, 0xc6, 0x69, 0xf3, 0x36, 0xcd, 0x6b, 0xca, 0x00, 0x72, 0x00, 0x28, 0xfe, 0x67, 0x02, + 0x20, 0xd4, 0x18, 0x7a, 0x2f, 0x9e, 0xd6, 0xbc, 0x95, 0x39, 0xad, 0xe1, 0x23, 0xf1, 0xd4, 0xa6, + 0x9e, 0x48, 0x6d, 0xaa, 0xd9, 0x53, 0x1b, 0x0e, 0xe4, 0xa7, 0x37, 0x2b, 0xb1, 0xf4, 0xe6, 0x6c, + 0xbf, 0x04, 0x85, 0x4b, 0x7b, 0x29, 0xce, 0xcd, 0x94, 0x14, 0xe7, 0x42, 0xa6, 0x14, 0x87, 0xc3, + 0xbc, 0x4a, 0x73, 0xbe, 0x98, 0x69, 0xce, 0x47, 0x47, 0xa4, 0x39, 0x99, 0xee, 0xfc, 0x58, 0x9e, + 0xc3, 0x1d, 0xe5, 0x55, 0xae, 0xf3, 0x12, 0xe6, 0x3a, 0x17, 0x9e, 0x51, 0xae, 0x73, 0xf1, 0x44, + 0xb9, 0xce, 0x4b, 0x95, 0x8f, 0xa4, 0x25, 0x76, 0x97, 0x9e, 0x51, 0x62, 0xf7, 0x1c, 0x73, 0x9d, + 0x71, 0x28, 0x45, 0xa2, 0x19, 0xf1, 0x47, 0x05, 0x18, 0x0b, 0x2e, 0x4d, 0xf4, 0x21, 0x8c, 0x74, + 0x35, 0x47, 0x6b, 0xea, 0x84, 0x5f, 0xba, 0x57, 0x07, 0xba, 0x74, 0xab, 0xdb, 0x9e, 0x70, 0x3d, + 0x27, 0xf9, 0x38, 0xe8, 0x36, 0x14, 0x4d, 0x0b, 0x7f, 0xb7, 0xe3, 0x87, 0x97, 0xcb, 0x83, 0x21, + 0x6e, 0x31, 0x59, 0x76, 0x09, 0xb3, 0xd6, 0xec, 0xf7, 0x04, 0x18, 0xe1, 0xc3, 0xa0, 0x6f, 0x1c, + 0xb7, 0xf0, 0xe9, 0xc7, 0x06, 0xef, 0xc4, 0x22, 0xdf, 0xaf, 0x64, 0x88, 0x7c, 0x59, 0x2c, 0xc7, + 0x84, 0x66, 0x37, 0xa0, 0xe8, 0xcd, 0xee, 0xc4, 0xf3, 0xa0, 0x71, 0x90, 0x97, 0xfa, 0x31, 0x9b, + 0xfc, 0xb5, 0x00, 0xd3, 0x3d, 0x27, 0x3b, 0xba, 0x9f, 0xb4, 0xcd, 0xd7, 0x8e, 0x75, 0x43, 0xa4, + 0xd9, 0x68, 0x3b, 0x61, 0xa3, 0xeb, 0xc7, 0x43, 0xee, 0xb1, 0xd5, 0xcf, 0x22, 0xb6, 0xba, 0xd7, + 0x73, 0xcf, 0x09, 0xc7, 0x2b, 0xe7, 0x25, 0x2f, 0xb8, 0x13, 0xd9, 0x10, 0x07, 0x36, 0x7c, 0x5e, + 0xf3, 0xab, 0x4d, 0x25, 0x81, 0xc5, 0x7f, 0x17, 0x00, 0xc2, 0x00, 0x13, 0x49, 0x49, 0xc3, 0xbe, + 0x3d, 0x58, 0x84, 0x9a, 0x66, 0xd1, 0xad, 0x84, 0x45, 0xaf, 0x0e, 0x08, 0xd9, 0x63, 0xca, 0xcf, + 0x22, 0xa6, 0xac, 0x05, 0x11, 0xb5, 0x30, 0xe8, 0x63, 0x41, 0x10, 0x4b, 0x9f, 0xc4, 0x6a, 0xc9, + 0x7c, 0xbd, 0x70, 0xd2, 0x7c, 0x7d, 0xf6, 0x83, 0xc0, 0x0d, 0x9e, 0xc1, 0xda, 0xe8, 0x11, 0xeb, + 0xb5, 0xbc, 0xed, 0xfc, 0x99, 0x00, 0xc3, 0xde, 0x9d, 0xb6, 0x1a, 0x7b, 0xef, 0xcb, 0x9e, 0xd0, + 0x44, 0x5e, 0xfa, 0x3e, 0x80, 0x51, 0xdc, 0x71, 0x5b, 0x41, 0x16, 0xdc, 0x1b, 0x44, 0xf7, 0xd4, + 0x15, 0x28, 0xc2, 0x6a, 0xc7, 0x6d, 0xdd, 0xd1, 0xf6, 0x0c, 0xec, 0x76, 0x6c, 0x22, 0x8d, 0x60, + 0xaf, 0x8b, 0x56, 0x61, 0xd8, 0xb2, 0x4d, 0x73, 0x97, 0xab, 0xf0, 0x52, 0x1f, 0xa8, 0x07, 0xb7, + 0x18, 0x58, 0x83, 0x8a, 0x48, 0x9e, 0xa4, 0xf8, 0x53, 0x81, 0x5f, 0x20, 0xec, 0x49, 0x4f, 0x06, + 0xd4, 0xc4, 0x3a, 0xdd, 0x1d, 0x72, 0xa4, 0x00, 0x92, 0xbe, 0x93, 0x92, 0xe8, 0x35, 0x4f, 0x30, + 0x52, 0x02, 0x99, 0x6e, 0x26, 0x49, 0xe8, 0xcb, 0xd1, 0x9a, 0x47, 0x81, 0x95, 0x01, 0x22, 0x95, + 0x8c, 0x09, 0xc8, 0xdb, 0xfb, 0x2c, 0xbb, 0x2a, 0x4b, 0x79, 0x7b, 0x5f, 0xfc, 0x44, 0x80, 0x22, + 0x0f, 0x00, 0x6a, 0x31, 0xdd, 0x0f, 0x90, 0x04, 0x46, 0x94, 0x5f, 0xf3, 0xd5, 0x95, 0x4f, 0x0d, + 0x47, 0x7a, 0xd5, 0xe5, 0x21, 0xc4, 0xf4, 0xf5, 0xc3, 0xbc, 0xbf, 0xf9, 0x99, 0xc2, 0x36, 0xa1, + 0x4c, 0x5d, 0x5a, 0xe6, 0xce, 0x78, 0x84, 0xd7, 0xa5, 0xed, 0x07, 0xee, 0xca, 0x52, 0xc9, 0x08, + 0x3b, 0x47, 0xe8, 0x3f, 0xff, 0xec, 0xf4, 0x3f, 0x0f, 0x53, 0x07, 0x36, 0xb6, 0x2c, 0xfe, 0x0c, + 0x19, 0xec, 0xbf, 0xb2, 0x34, 0xc1, 0xe9, 0x34, 0xd7, 0xbf, 0x45, 0x0e, 0xd1, 0x79, 0x98, 0x34, + 0xbb, 0xfb, 0xb2, 0xcf, 0x4d, 0x19, 0x3d, 0xc3, 0x8c, 0x9b, 0xdd, 0xfd, 0x7b, 0x1e, 0xf5, 0x16, + 0x39, 0x14, 0x7f, 0x92, 0x87, 0x69, 0xea, 0x9e, 0xa6, 0xad, 0x7d, 0x8c, 0xa9, 0x01, 0xd6, 0xb1, + 0x8b, 0xd1, 0x4d, 0x28, 0x11, 0xf6, 0xa6, 0x2c, 0x07, 0xcf, 0xcd, 0xfd, 0x8b, 0x3a, 0xe1, 0x2b, + 0xb4, 0x04, 0x24, 0x7c, 0x91, 0x96, 0xa0, 0xe4, 0xdd, 0xae, 0xd4, 0xed, 0xfd, 0x9a, 0xea, 0x31, + 0xb6, 0x8d, 0x77, 0x47, 0x53, 0x9a, 0x83, 0x14, 0x98, 0x89, 0x9f, 0xea, 0x1c, 0xbc, 0x70, 0x5c, + 0x70, 0x14, 0xbb, 0x35, 0xd8, 0x20, 0xe2, 0xef, 0x04, 0x28, 0xdd, 0xd3, 0x5c, 0x83, 0x38, 0x0e, + 0x53, 0x4a, 0x58, 0xe4, 0x12, 0x8e, 0x59, 0xe4, 0x42, 0xfb, 0xf0, 0xba, 0xe3, 0xb2, 0x80, 0x35, + 0xb0, 0xa9, 0xcc, 0x1c, 0xd3, 0xd7, 0xcb, 0xd2, 0x60, 0x65, 0x4a, 0xcf, 0xb7, 0x5f, 0x73, 0x52, + 0xa8, 0x8e, 0xf8, 0x8f, 0xf8, 0xa3, 0x7f, 0x43, 0xc7, 0x06, 0xaa, 0x27, 0x1f, 0xfd, 0x07, 0x28, + 0xa4, 0x51, 0x80, 0xcf, 0xfb, 0xe1, 0xff, 0x16, 0x80, 0xa2, 0x77, 0x88, 0x6c, 0xe9, 0xd8, 0xf0, + 0xab, 0x68, 0x99, 0x6a, 0x60, 0x6b, 0x7a, 0x87, 0xb0, 0x05, 0x8c, 0x29, 0xbc, 0xe5, 0xa0, 0x0d, + 0x5e, 0x4f, 0xa3, 0x60, 0x83, 0xd6, 0xd3, 0x18, 0x16, 0xab, 0xa6, 0xd1, 0x96, 0xf8, 0xaf, 0xa0, + 0x78, 0xc6, 0xd4, 0x7c, 0xec, 0xe2, 0x19, 0x95, 0x7e, 0x26, 0xc5, 0x33, 0x0e, 0x74, 0xcc, 0xe2, + 0x19, 0x97, 0x3e, 0x69, 0xf1, 0x8c, 0xc3, 0xbc, 0x2a, 0x9e, 0x7d, 0x31, 0x8b, 0x67, 0xdf, 0x3e, + 0xa2, 0x78, 0xb6, 0x3c, 0x68, 0xd0, 0xce, 0xfd, 0xe4, 0xf3, 0xae, 0x9d, 0x6d, 0x02, 0x44, 0x32, + 0xfe, 0xd7, 0x8f, 0x93, 0xf0, 0x47, 0x00, 0x5e, 0x8c, 0x52, 0x9c, 0x7c, 0x74, 0x29, 0xee, 0xf2, + 0x20, 0xa5, 0x38, 0x6e, 0xc2, 0xde, 0x72, 0x9c, 0xf6, 0xf4, 0x72, 0xdc, 0xd2, 0x80, 0xe5, 0x38, + 0x3e, 0xce, 0x0b, 0xf2, 0xf9, 0xc1, 0x47, 0x47, 0x7e, 0x7e, 0x70, 0x65, 0xa0, 0x2a, 0x15, 0x5f, + 0xf5, 0x4b, 0xfd, 0x09, 0x42, 0xe4, 0x3b, 0x81, 0x1f, 0x08, 0x30, 0xea, 0x5f, 0xe8, 0xe8, 0x5d, + 0x18, 0xe1, 0xaf, 0xd9, 0xfc, 0xb6, 0x3d, 0x9f, 0xed, 0x21, 0x5c, 0xf2, 0xc5, 0xd0, 0x0c, 0x0c, + 0xdb, 0x0e, 0x21, 0x2a, 0x7f, 0xd8, 0xf4, 0x3a, 0xe8, 0x1c, 0x4c, 0x58, 0x36, 0x51, 0x34, 0x87, + 0x7a, 0x6e, 0x53, 0x73, 0x1d, 0x76, 0x79, 0x0e, 0x49, 0xe3, 0x01, 0xb5, 0xa6, 0xb9, 0x8e, 0xd8, + 0x86, 0x51, 0x3f, 0x1e, 0x40, 0x5b, 0x30, 0x66, 0xe9, 0x58, 0x33, 0x5c, 0xf2, 0xd0, 0x4f, 0xbb, + 0xae, 0x0c, 0x10, 0x50, 0x78, 0x82, 0x52, 0x88, 0x81, 0xa6, 0xa0, 0x40, 0x23, 0x77, 0x6f, 0x5e, + 0xb4, 0x29, 0x9e, 0x87, 0x09, 0xca, 0xbd, 0xa6, 0x59, 0x2d, 0x62, 0x33, 0x9e, 0xf4, 0x17, 0x77, + 0x05, 0xc6, 0x63, 0xa8, 0xe8, 0xeb, 0x50, 0x74, 0x88, 0xa1, 0x06, 0x6f, 0xd5, 0x59, 0xb5, 0xc4, + 0xa5, 0x10, 0x82, 0x21, 0xb6, 0xac, 0x3c, 0x0b, 0xe3, 0x58, 0x5b, 0xfc, 0x7d, 0xc1, 0x5b, 0x3c, + 0x2b, 0xa4, 0x34, 0x92, 0x85, 0x94, 0xe5, 0x41, 0xde, 0x26, 0xd3, 0xca, 0x28, 0x9b, 0x89, 0x32, + 0xca, 0xd2, 0x40, 0x80, 0x3d, 0x45, 0x94, 0x5f, 0x45, 0x8a, 0x28, 0x12, 0x80, 0x12, 0xa8, 0x90, + 0xcf, 0x77, 0x31, 0x2b, 0x7c, 0xa8, 0x7c, 0x29, 0x82, 0x12, 0xb7, 0x7e, 0xfe, 0xe4, 0xd6, 0x9f, + 0xdd, 0x09, 0xea, 0x22, 0xcf, 0x61, 0xba, 0xb5, 0x52, 0xe4, 0x35, 0x59, 0xfc, 0x85, 0x5f, 0x47, + 0x60, 0x7e, 0xec, 0x7f, 0x92, 0x20, 0x0c, 0xf8, 0x49, 0x02, 0x9a, 0x85, 0x51, 0xff, 0x60, 0xe6, + 0xf9, 0x40, 0xd0, 0x47, 0x73, 0x00, 0x36, 0x36, 0x54, 0xb3, 0xad, 0x7d, 0x1c, 0x14, 0x0f, 0x22, + 0x14, 0xba, 0xdf, 0xba, 0x98, 0xc6, 0xf6, 0x4d, 0xdd, 0xfb, 0xb0, 0xc0, 0x4f, 0x58, 0x19, 0xb5, + 0xc6, 0x89, 0xe2, 0x23, 0xc1, 0xcf, 0xe0, 0xd9, 0x54, 0x57, 0x60, 0x98, 0xfd, 0x9f, 0xcf, 0xb5, + 0xdf, 0xa7, 0x2b, 0xdb, 0x94, 0x57, 0xf2, 0x44, 0xd0, 0x06, 0x94, 0x55, 0xe2, 0xb8, 0xb2, 0x7f, + 0x7c, 0xe4, 0x07, 0xda, 0x18, 0x25, 0x2a, 0xbb, 0x9a, 0x3c, 0x42, 0x0a, 0x89, 0x23, 0x24, 0xc3, + 0x92, 0x6a, 0x7f, 0xcf, 0x7f, 0xfa, 0x78, 0x4e, 0x78, 0xf4, 0x78, 0x4e, 0xf8, 0xdb, 0xe3, 0x39, + 0xe1, 0x93, 0x27, 0x73, 0xb9, 0x47, 0x4f, 0xe6, 0x72, 0x7f, 0x79, 0x32, 0x97, 0x83, 0xf3, 0x8a, + 0xd9, 0xce, 0x60, 0xe7, 0xda, 0x54, 0x34, 0xd1, 0xb3, 0x4d, 0xd7, 0x6c, 0x08, 0x0f, 0x9a, 0x7b, + 0x9a, 0xdb, 0xea, 0x34, 0xab, 0x8a, 0xd9, 0x5e, 0x50, 0x4c, 0xa7, 0x6d, 0x3a, 0x0b, 0x36, 0xd1, + 0xf1, 0x21, 0xb1, 0x17, 0xba, 0x8b, 0x41, 0x93, 0xe5, 0x63, 0xce, 0x42, 0xff, 0xdf, 0x12, 0xbc, + 0x13, 0x21, 0xfa, 0xb4, 0x9f, 0xe7, 0x0b, 0x8d, 0xb5, 0xbb, 0xbf, 0xcc, 0x8b, 0x0d, 0x7f, 0x8a, + 0x6b, 0x74, 0x8a, 0x91, 0xc9, 0x54, 0xb7, 0x39, 0xeb, 0x1f, 0x42, 0xa6, 0x1d, 0xca, 0xb4, 0x13, + 0x61, 0xda, 0xf1, 0x99, 0x1e, 0xe7, 0xab, 0xfd, 0x99, 0x76, 0xde, 0x6f, 0xd4, 0x36, 0x89, 0x8b, + 0x55, 0xec, 0xe2, 0x7f, 0xe6, 0xcf, 0xf9, 0x02, 0x2b, 0x2b, 0x54, 0x62, 0x65, 0x25, 0x22, 0xb2, + 0xb2, 0xe2, 0xcb, 0x34, 0x8b, 0xec, 0x37, 0x00, 0x4b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xa7, + 0x60, 0xeb, 0xa7, 0x35, 0x31, 0x00, 0x00, } func (m *Transaction) Marshal() (dAtA []byte, err error) { @@ -6345,6 +6359,29 @@ func (m *ActionPlan_ProposalDepositClaim) MarshalToSizedBuffer(dAtA []byte) (int } return len(dAtA) - i, nil } +func (m *ActionPlan_Withdrawal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActionPlan_Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Withdrawal != nil { + { + size, err := m.Withdrawal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + return len(dAtA) - i, nil +} func (m *ActionPlan_PositionOpen) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) @@ -8328,6 +8365,18 @@ func (m *ActionPlan_ProposalDepositClaim) Size() (n int) { } return n } +func (m *ActionPlan_Withdrawal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Withdrawal != nil { + l = m.Withdrawal.Size() + n += 2 + l + sovTransaction(uint64(l)) + } + return n +} func (m *ActionPlan_PositionOpen) Size() (n int) { if m == nil { return 0 @@ -14355,6 +14404,41 @@ func (m *ActionPlan) Unmarshal(dAtA []byte) error { } m.Action = &ActionPlan_ProposalDepositClaim{v} iNdEx = postIndex + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Withdrawal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha13.Ics20Withdrawal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Action = &ActionPlan_Withdrawal{v} + iNdEx = postIndex case 30: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PositionOpen", wireType) diff --git a/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go b/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go index da8ab16f7..61dc0d957 100644 --- a/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go +++ b/relayer/chains/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go @@ -6,8 +6,8 @@ package transparent_proofsv1alpha1 import ( fmt "fmt" proto "github.com/cosmos/gogoproto/proto" - v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" - v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" + v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" + v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" io "io" math "math" math_bits "math/bits" @@ -24,115 +24,26 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// A Penumbra transparent Spend Proof. -type SpendProof struct { - // Auxiliary inputs - StateCommitmentProof *v1alpha1.StateCommitmentProof `protobuf:"bytes,1,opt,name=state_commitment_proof,json=stateCommitmentProof,proto3" json:"state_commitment_proof,omitempty"` - // - // @exclude - // From the note being spent - Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` - VBlinding []byte `protobuf:"bytes,6,opt,name=v_blinding,json=vBlinding,proto3" json:"v_blinding,omitempty"` - SpendAuthRandomizer []byte `protobuf:"bytes,9,opt,name=spend_auth_randomizer,json=spendAuthRandomizer,proto3" json:"spend_auth_randomizer,omitempty"` - Ak []byte `protobuf:"bytes,10,opt,name=ak,proto3" json:"ak,omitempty"` - Nk []byte `protobuf:"bytes,11,opt,name=nk,proto3" json:"nk,omitempty"` -} - -func (m *SpendProof) Reset() { *m = SpendProof{} } -func (m *SpendProof) String() string { return proto.CompactTextString(m) } -func (*SpendProof) ProtoMessage() {} -func (*SpendProof) Descriptor() ([]byte, []int) { - return fileDescriptor_1536b20e10cd99e5, []int{0} -} -func (m *SpendProof) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SpendProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_SpendProof.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *SpendProof) XXX_Merge(src proto.Message) { - xxx_messageInfo_SpendProof.Merge(m, src) -} -func (m *SpendProof) XXX_Size() int { - return m.Size() -} -func (m *SpendProof) XXX_DiscardUnknown() { - xxx_messageInfo_SpendProof.DiscardUnknown(m) -} - -var xxx_messageInfo_SpendProof proto.InternalMessageInfo - -func (m *SpendProof) GetStateCommitmentProof() *v1alpha1.StateCommitmentProof { - if m != nil { - return m.StateCommitmentProof - } - return nil -} - -func (m *SpendProof) GetNote() *v1alpha1.Note { - if m != nil { - return m.Note - } - return nil -} - -func (m *SpendProof) GetVBlinding() []byte { - if m != nil { - return m.VBlinding - } - return nil -} - -func (m *SpendProof) GetSpendAuthRandomizer() []byte { - if m != nil { - return m.SpendAuthRandomizer - } - return nil -} - -func (m *SpendProof) GetAk() []byte { - if m != nil { - return m.Ak - } - return nil -} - -func (m *SpendProof) GetNk() []byte { - if m != nil { - return m.Nk - } - return nil -} - // A Penumbra transparent SwapClaimProof. type SwapClaimProof struct { // The swap being claimed - SwapPlaintext *v1alpha11.SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` + SwapPlaintext *v1alpha1.SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` // Inclusion proof for the swap commitment - SwapCommitmentProof *v1alpha1.StateCommitmentProof `protobuf:"bytes,4,opt,name=swap_commitment_proof,json=swapCommitmentProof,proto3" json:"swap_commitment_proof,omitempty"` + SwapCommitmentProof *v1alpha11.StateCommitmentProof `protobuf:"bytes,4,opt,name=swap_commitment_proof,json=swapCommitmentProof,proto3" json:"swap_commitment_proof,omitempty"` // The nullifier key used to derive the swap nullifier Nk []byte `protobuf:"bytes,6,opt,name=nk,proto3" json:"nk,omitempty"` // // @exclude // Describes output amounts - Lambda_1I *v1alpha1.Amount `protobuf:"bytes,20,opt,name=lambda_1_i,json=lambda1I,proto3" json:"lambda_1_i,omitempty"` - Lambda_2I *v1alpha1.Amount `protobuf:"bytes,21,opt,name=lambda_2_i,json=lambda2I,proto3" json:"lambda_2_i,omitempty"` + Lambda_1I *v1alpha11.Amount `protobuf:"bytes,20,opt,name=lambda_1_i,json=lambda1I,proto3" json:"lambda_1_i,omitempty"` + Lambda_2I *v1alpha11.Amount `protobuf:"bytes,21,opt,name=lambda_2_i,json=lambda2I,proto3" json:"lambda_2_i,omitempty"` } func (m *SwapClaimProof) Reset() { *m = SwapClaimProof{} } func (m *SwapClaimProof) String() string { return proto.CompactTextString(m) } func (*SwapClaimProof) ProtoMessage() {} func (*SwapClaimProof) Descriptor() ([]byte, []int) { - return fileDescriptor_1536b20e10cd99e5, []int{1} + return fileDescriptor_1536b20e10cd99e5, []int{0} } func (m *SwapClaimProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -161,14 +72,14 @@ func (m *SwapClaimProof) XXX_DiscardUnknown() { var xxx_messageInfo_SwapClaimProof proto.InternalMessageInfo -func (m *SwapClaimProof) GetSwapPlaintext() *v1alpha11.SwapPlaintext { +func (m *SwapClaimProof) GetSwapPlaintext() *v1alpha1.SwapPlaintext { if m != nil { return m.SwapPlaintext } return nil } -func (m *SwapClaimProof) GetSwapCommitmentProof() *v1alpha1.StateCommitmentProof { +func (m *SwapClaimProof) GetSwapCommitmentProof() *v1alpha11.StateCommitmentProof { if m != nil { return m.SwapCommitmentProof } @@ -182,76 +93,22 @@ func (m *SwapClaimProof) GetNk() []byte { return nil } -func (m *SwapClaimProof) GetLambda_1I() *v1alpha1.Amount { +func (m *SwapClaimProof) GetLambda_1I() *v1alpha11.Amount { if m != nil { return m.Lambda_1I } return nil } -func (m *SwapClaimProof) GetLambda_2I() *v1alpha1.Amount { +func (m *SwapClaimProof) GetLambda_2I() *v1alpha11.Amount { if m != nil { return m.Lambda_2I } return nil } -type UndelegateClaimProof struct { - UnbondingAmount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=unbonding_amount,json=unbondingAmount,proto3" json:"unbonding_amount,omitempty"` - BalanceBlinding []byte `protobuf:"bytes,2,opt,name=balance_blinding,json=balanceBlinding,proto3" json:"balance_blinding,omitempty"` -} - -func (m *UndelegateClaimProof) Reset() { *m = UndelegateClaimProof{} } -func (m *UndelegateClaimProof) String() string { return proto.CompactTextString(m) } -func (*UndelegateClaimProof) ProtoMessage() {} -func (*UndelegateClaimProof) Descriptor() ([]byte, []int) { - return fileDescriptor_1536b20e10cd99e5, []int{2} -} -func (m *UndelegateClaimProof) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *UndelegateClaimProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_UndelegateClaimProof.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *UndelegateClaimProof) XXX_Merge(src proto.Message) { - xxx_messageInfo_UndelegateClaimProof.Merge(m, src) -} -func (m *UndelegateClaimProof) XXX_Size() int { - return m.Size() -} -func (m *UndelegateClaimProof) XXX_DiscardUnknown() { - xxx_messageInfo_UndelegateClaimProof.DiscardUnknown(m) -} - -var xxx_messageInfo_UndelegateClaimProof proto.InternalMessageInfo - -func (m *UndelegateClaimProof) GetUnbondingAmount() *v1alpha1.Amount { - if m != nil { - return m.UnbondingAmount - } - return nil -} - -func (m *UndelegateClaimProof) GetBalanceBlinding() []byte { - if m != nil { - return m.BalanceBlinding - } - return nil -} - func init() { - proto.RegisterType((*SpendProof)(nil), "penumbra.core.transparent_proofs.v1alpha1.SpendProof") proto.RegisterType((*SwapClaimProof)(nil), "penumbra.core.transparent_proofs.v1alpha1.SwapClaimProof") - proto.RegisterType((*UndelegateClaimProof)(nil), "penumbra.core.transparent_proofs.v1alpha1.UndelegateClaimProof") } func init() { @@ -259,121 +116,35 @@ func init() { } var fileDescriptor_1536b20e10cd99e5 = []byte{ - // 609 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x4f, 0x6b, 0xd4, 0x40, - 0x14, 0x6f, 0xd2, 0x52, 0xec, 0x54, 0xdb, 0x92, 0xfe, 0x21, 0x14, 0x0c, 0xa5, 0x2a, 0xb4, 0x8a, - 0x09, 0xbb, 0x15, 0x84, 0x78, 0xea, 0xee, 0x41, 0x7a, 0x50, 0x42, 0x5a, 0x3d, 0xc8, 0x42, 0x78, - 0x49, 0xc6, 0xdd, 0xb0, 0xc9, 0xcc, 0x90, 0x4c, 0xb6, 0xad, 0x9f, 0x42, 0xd0, 0x4f, 0xa0, 0x37, - 0x3f, 0x89, 0x78, 0xea, 0xd1, 0xa3, 0x6c, 0xf1, 0xe2, 0xa7, 0x90, 0x99, 0x24, 0x9b, 0xdd, 0xee, - 0x42, 0x97, 0xde, 0xf2, 0xde, 0xfb, 0xfd, 0x7e, 0xef, 0xbd, 0x5f, 0x66, 0x06, 0xb5, 0x18, 0x26, - 0x79, 0xe2, 0xa7, 0x60, 0x05, 0x34, 0xc5, 0x16, 0x4f, 0x81, 0x64, 0x0c, 0x52, 0x4c, 0xb8, 0xc7, - 0x52, 0x4a, 0x3f, 0x66, 0xd6, 0xa0, 0x01, 0x31, 0xeb, 0x41, 0x63, 0x46, 0xcd, 0x64, 0x29, 0xe5, - 0x54, 0x3b, 0xac, 0x34, 0x4c, 0xa1, 0x61, 0xce, 0xc0, 0x55, 0x1a, 0xbb, 0x4f, 0x27, 0xdb, 0x05, - 0xe9, 0x25, 0xe3, 0xb4, 0x6e, 0x51, 0xc4, 0x85, 0xec, 0xee, 0xe3, 0x49, 0x6c, 0x88, 0x2f, 0x6a, - 0x60, 0x88, 0x2f, 0x0a, 0xd4, 0xfe, 0x77, 0x15, 0xa1, 0x53, 0x86, 0x49, 0xe8, 0x88, 0x56, 0x5a, - 0x84, 0x76, 0x32, 0x0e, 0x1c, 0x7b, 0x01, 0x4d, 0x92, 0x88, 0x27, 0xa3, 0x21, 0x74, 0x65, 0x4f, - 0x39, 0x58, 0x6d, 0x1e, 0x99, 0x93, 0xc3, 0x96, 0x1d, 0x2b, 0x61, 0xf3, 0x54, 0x90, 0xdb, 0x23, - 0xae, 0x14, 0x75, 0xb7, 0xb2, 0x19, 0x59, 0xed, 0x25, 0x5a, 0x22, 0x94, 0x63, 0x5d, 0x95, 0xc2, - 0x8f, 0x6e, 0x11, 0x7e, 0x4b, 0x39, 0x76, 0x25, 0x41, 0x7b, 0x88, 0xd0, 0xc0, 0xf3, 0xe3, 0x88, - 0x84, 0x11, 0xe9, 0xea, 0xcb, 0x7b, 0xca, 0xc1, 0x7d, 0x77, 0x65, 0xd0, 0x2a, 0x13, 0x5a, 0x13, - 0x6d, 0x67, 0x62, 0x21, 0x0f, 0x72, 0xde, 0xf3, 0x52, 0x20, 0x21, 0x4d, 0xa2, 0x4f, 0x38, 0xd5, - 0x57, 0x24, 0x72, 0x53, 0x16, 0x8f, 0x73, 0xde, 0x73, 0x47, 0x25, 0x6d, 0x0d, 0xa9, 0xd0, 0xd7, - 0x91, 0x04, 0xa8, 0xd0, 0x17, 0x31, 0xe9, 0xeb, 0xab, 0x45, 0x4c, 0xfa, 0xfb, 0x7f, 0x55, 0xb4, - 0x76, 0x7a, 0x0e, 0xac, 0x1d, 0x43, 0x94, 0x14, 0xe3, 0x3b, 0x68, 0x2d, 0x3b, 0x07, 0xe6, 0xb1, - 0x18, 0x22, 0xc2, 0xf1, 0x05, 0x2f, 0x1d, 0x3a, 0xbc, 0xb1, 0x88, 0xb0, 0xba, 0xb6, 0xe7, 0x1c, - 0x98, 0x53, 0x11, 0xdc, 0x07, 0xd9, 0x78, 0xa8, 0x75, 0xd1, 0xb6, 0x54, 0x9c, 0xb2, 0x7e, 0xe9, - 0xee, 0xd6, 0x6f, 0x0a, 0xc5, 0x9b, 0xce, 0x17, 0xdb, 0x2d, 0x57, 0xdb, 0x69, 0x6d, 0x84, 0x62, - 0x48, 0xfc, 0x10, 0xbc, 0x86, 0x17, 0xe9, 0x5b, 0xb2, 0xdb, 0x93, 0x5b, 0xba, 0x1d, 0x27, 0x34, - 0x27, 0xdc, 0xbd, 0x57, 0x10, 0x1b, 0x27, 0x63, 0x22, 0x4d, 0x2f, 0xd2, 0xb7, 0xef, 0x20, 0xd2, - 0x3c, 0xd9, 0xff, 0xa2, 0xa0, 0xad, 0x77, 0x24, 0xc4, 0x31, 0xee, 0x8a, 0x65, 0xc6, 0xdd, 0xde, - 0xc8, 0x89, 0x4f, 0xe5, 0x1f, 0xf6, 0x40, 0xd2, 0x4a, 0xbf, 0xe7, 0xec, 0xb1, 0x3e, 0xa2, 0x17, - 0x09, 0xed, 0x10, 0x6d, 0xf8, 0x10, 0x03, 0x09, 0x70, 0x7d, 0x96, 0x54, 0x69, 0xc9, 0x7a, 0x99, - 0xaf, 0x4e, 0x54, 0xeb, 0xeb, 0xe2, 0xcf, 0xa1, 0xa1, 0x5c, 0x0d, 0x0d, 0xe5, 0xcf, 0xd0, 0x50, - 0x3e, 0x5f, 0x1b, 0x0b, 0x57, 0xd7, 0xc6, 0xc2, 0xef, 0x6b, 0x63, 0x01, 0x3d, 0x0f, 0x68, 0x62, - 0xce, 0x7d, 0x7f, 0x5b, 0x3b, 0x67, 0x75, 0x51, 0x2e, 0x96, 0x39, 0xe2, 0x16, 0x3a, 0xca, 0x07, - 0xd6, 0x8d, 0x78, 0x2f, 0xf7, 0xcd, 0x80, 0x26, 0x56, 0x40, 0xb3, 0x84, 0x66, 0x56, 0x8a, 0x63, - 0xb8, 0xc4, 0xa9, 0x35, 0x68, 0x8e, 0x3e, 0x83, 0x1e, 0x44, 0x24, 0xb3, 0xe6, 0x7e, 0x74, 0x5e, - 0x4d, 0xd7, 0xaa, 0xd2, 0x37, 0x75, 0xd1, 0x69, 0x9f, 0xfd, 0x50, 0x0f, 0x9c, 0x6a, 0xfa, 0xb6, - 0x98, 0x7e, 0x6a, 0x40, 0xf3, 0x7d, 0x49, 0xf8, 0x55, 0x43, 0x3b, 0x02, 0xda, 0x99, 0x82, 0x76, - 0x2a, 0xe8, 0x50, 0x7d, 0x31, 0x2f, 0xb4, 0xf3, 0xda, 0x69, 0xbd, 0xc1, 0x1c, 0x42, 0xe0, 0xf0, - 0x4f, 0x7d, 0x56, 0xd1, 0x6c, 0x5b, 0xf0, 0x6c, 0x7b, 0x8a, 0x68, 0xdb, 0x15, 0xd3, 0x5f, 0x96, - 0x2f, 0xd8, 0xd1, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x85, 0x1d, 0x0f, 0xfc, 0x84, 0x05, 0x00, - 0x00, -} - -func (m *SpendProof) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SpendProof) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SpendProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Nk) > 0 { - i -= len(m.Nk) - copy(dAtA[i:], m.Nk) - i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.Nk))) - i-- - dAtA[i] = 0x5a - } - if len(m.Ak) > 0 { - i -= len(m.Ak) - copy(dAtA[i:], m.Ak) - i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.Ak))) - i-- - dAtA[i] = 0x52 - } - if len(m.SpendAuthRandomizer) > 0 { - i -= len(m.SpendAuthRandomizer) - copy(dAtA[i:], m.SpendAuthRandomizer) - i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.SpendAuthRandomizer))) - i-- - dAtA[i] = 0x4a - } - if len(m.VBlinding) > 0 { - i -= len(m.VBlinding) - copy(dAtA[i:], m.VBlinding) - i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.VBlinding))) - i-- - dAtA[i] = 0x32 - } - if m.Note != nil { - { - size, err := m.Note.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.StateCommitmentProof != nil { - { - size, err := m.StateCommitmentProof.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil + // 448 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0x3f, 0x6f, 0xd3, 0x40, + 0x18, 0xc6, 0x63, 0x17, 0x55, 0xe8, 0x80, 0x0c, 0x86, 0x22, 0xab, 0x83, 0x55, 0x21, 0x90, 0x52, + 0x10, 0x67, 0x25, 0x65, 0x32, 0x13, 0xf1, 0x80, 0x3a, 0x20, 0x9d, 0x42, 0xc5, 0x80, 0x22, 0x59, + 0x6f, 0x9c, 0xa3, 0xb1, 0xea, 0xfb, 0xa3, 0xbb, 0x4b, 0x9b, 0x7e, 0x0b, 0x06, 0x3e, 0x01, 0x23, + 0x9f, 0x04, 0x31, 0x75, 0x64, 0x44, 0x89, 0x58, 0xf8, 0x14, 0xe8, 0x9c, 0x5e, 0xdc, 0xd4, 0x91, + 0x88, 0xd8, 0x7c, 0x7e, 0x9f, 0xe7, 0xf7, 0x3c, 0xaf, 0x7c, 0x46, 0x7d, 0x49, 0xf9, 0x94, 0x8d, + 0x14, 0xc4, 0xb9, 0x50, 0x34, 0x36, 0x0a, 0xb8, 0x96, 0xa0, 0x28, 0x37, 0x99, 0x54, 0x42, 0x7c, + 0xd2, 0xf1, 0x79, 0x17, 0x4a, 0x39, 0x81, 0xee, 0x86, 0x19, 0x96, 0x4a, 0x18, 0x11, 0x1c, 0x3a, + 0x06, 0xb6, 0x0c, 0xbc, 0x41, 0xe7, 0x18, 0xfb, 0xcf, 0xd7, 0xe3, 0x72, 0x75, 0x29, 0x8d, 0xa8, + 0x23, 0x96, 0xe7, 0x25, 0x76, 0xff, 0xe9, 0xba, 0x76, 0x4c, 0x67, 0xb5, 0x70, 0x4c, 0x67, 0x4b, + 0xd5, 0x93, 0xdf, 0x3e, 0x6a, 0xbf, 0xbf, 0x00, 0x99, 0x96, 0x50, 0x30, 0x62, 0xe3, 0x02, 0x82, + 0xda, 0xfa, 0x02, 0x64, 0x26, 0x4b, 0x28, 0xb8, 0xa1, 0x33, 0x13, 0x7a, 0x07, 0x5e, 0xe7, 0x5e, + 0xef, 0x10, 0xaf, 0x17, 0xb5, 0x10, 0x47, 0xc4, 0x96, 0x41, 0x9c, 0x61, 0xf0, 0x40, 0xdf, 0x3c, + 0x06, 0xa7, 0x68, 0xaf, 0x22, 0xe6, 0x82, 0xb1, 0xc2, 0xb0, 0xd5, 0x66, 0xe1, 0x9d, 0x0a, 0x7c, + 0x74, 0x0b, 0x7c, 0xbd, 0x46, 0xcd, 0x36, 0x60, 0x68, 0xba, 0xf2, 0x56, 0x2d, 0x07, 0x0f, 0x2d, + 0xf1, 0xd6, 0xcb, 0xa0, 0x8d, 0x7c, 0x7e, 0x16, 0xee, 0x1e, 0x78, 0x9d, 0xfb, 0x03, 0x9f, 0x9f, + 0x05, 0x29, 0x42, 0x25, 0xb0, 0xd1, 0x18, 0xb2, 0x6e, 0x56, 0x84, 0x8f, 0xaa, 0xb4, 0x67, 0xff, + 0x48, 0x7b, 0xc3, 0xc4, 0x94, 0x9b, 0xc1, 0xdd, 0xa5, 0xb1, 0x7b, 0x7c, 0x03, 0xd2, 0xcb, 0x8a, + 0x70, 0xef, 0x3f, 0x20, 0xbd, 0xe3, 0xfe, 0x97, 0x9d, 0xef, 0xf3, 0xc8, 0xbb, 0x9a, 0x47, 0xde, + 0xaf, 0x79, 0xe4, 0x7d, 0x5e, 0x44, 0xad, 0xab, 0x45, 0xd4, 0xfa, 0xb9, 0x88, 0x5a, 0xe8, 0x65, + 0x2e, 0x18, 0xde, 0xfa, 0x0e, 0xf4, 0x1f, 0x9f, 0xd4, 0xc3, 0x6a, 0x6b, 0x4d, 0xec, 0x97, 0x24, + 0xde, 0x47, 0x79, 0x5a, 0x98, 0xc9, 0x74, 0x84, 0x73, 0xc1, 0xe2, 0x5c, 0x68, 0x26, 0x74, 0xac, + 0x68, 0x09, 0x97, 0x54, 0xc5, 0xe7, 0xbd, 0xd5, 0x63, 0x3e, 0x81, 0x82, 0xeb, 0x78, 0xeb, 0x8b, + 0xfb, 0xba, 0x39, 0x73, 0xa3, 0xaf, 0xfe, 0x0e, 0x49, 0x4f, 0xbe, 0xf9, 0x1d, 0xe2, 0xda, 0xa7, + 0xb6, 0x7d, 0xa3, 0x20, 0xfe, 0x70, 0x6d, 0xf8, 0x51, 0x4b, 0x87, 0x56, 0x3a, 0x6c, 0x48, 0x87, + 0x4e, 0x3a, 0xf7, 0x5f, 0x6d, 0x2b, 0x1d, 0xbe, 0x25, 0xfd, 0x77, 0xd4, 0xc0, 0x18, 0x0c, 0xfc, + 0xf1, 0x5f, 0x38, 0x5b, 0x92, 0x58, 0x5f, 0x92, 0x34, 0x8c, 0x49, 0xe2, 0x9c, 0xa3, 0xdd, 0xea, + 0x2f, 0x38, 0xfa, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x7e, 0xa6, 0x57, 0xdf, 0xc8, 0x03, 0x00, 0x00, } func (m *SwapClaimProof) Marshal() (dAtA []byte, err error) { @@ -458,48 +229,6 @@ func (m *SwapClaimProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *UndelegateClaimProof) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *UndelegateClaimProof) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *UndelegateClaimProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.BalanceBlinding) > 0 { - i -= len(m.BalanceBlinding) - copy(dAtA[i:], m.BalanceBlinding) - i = encodeVarintTransparentProofs(dAtA, i, uint64(len(m.BalanceBlinding))) - i-- - dAtA[i] = 0x12 - } - if m.UnbondingAmount != nil { - { - size, err := m.UnbondingAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTransparentProofs(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func encodeVarintTransparentProofs(dAtA []byte, offset int, v uint64) int { offset -= sovTransparentProofs(v) base := offset @@ -511,39 +240,6 @@ func encodeVarintTransparentProofs(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *SpendProof) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.StateCommitmentProof != nil { - l = m.StateCommitmentProof.Size() - n += 1 + l + sovTransparentProofs(uint64(l)) - } - if m.Note != nil { - l = m.Note.Size() - n += 1 + l + sovTransparentProofs(uint64(l)) - } - l = len(m.VBlinding) - if l > 0 { - n += 1 + l + sovTransparentProofs(uint64(l)) - } - l = len(m.SpendAuthRandomizer) - if l > 0 { - n += 1 + l + sovTransparentProofs(uint64(l)) - } - l = len(m.Ak) - if l > 0 { - n += 1 + l + sovTransparentProofs(uint64(l)) - } - l = len(m.Nk) - if l > 0 { - n += 1 + l + sovTransparentProofs(uint64(l)) - } - return n -} - func (m *SwapClaimProof) Size() (n int) { if m == nil { return 0 @@ -573,30 +269,13 @@ func (m *SwapClaimProof) Size() (n int) { return n } -func (m *UndelegateClaimProof) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.UnbondingAmount != nil { - l = m.UnbondingAmount.Size() - n += 1 + l + sovTransparentProofs(uint64(l)) - } - l = len(m.BalanceBlinding) - if l > 0 { - n += 1 + l + sovTransparentProofs(uint64(l)) - } - return n -} - func sovTransparentProofs(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } func sozTransparentProofs(x uint64) (n int) { return sovTransparentProofs(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *SpendProof) Unmarshal(dAtA []byte) error { +func (m *SwapClaimProof) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -619,15 +298,15 @@ func (m *SpendProof) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SpendProof: wiretype end group for non-group") + return fmt.Errorf("proto: SwapClaimProof: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SpendProof: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SwapClaimProof: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StateCommitmentProof", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -654,16 +333,16 @@ func (m *SpendProof) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StateCommitmentProof == nil { - m.StateCommitmentProof = &v1alpha1.StateCommitmentProof{} + if m.SwapPlaintext == nil { + m.SwapPlaintext = &v1alpha1.SwapPlaintext{} } - if err := m.StateCommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitmentProof", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -690,16 +369,16 @@ func (m *SpendProof) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Note == nil { - m.Note = &v1alpha1.Note{} + if m.SwapCommitmentProof == nil { + m.SwapCommitmentProof = &v1alpha11.StateCommitmentProof{} } - if err := m.Note.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SwapCommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VBlinding", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nk", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -726,16 +405,16 @@ func (m *SpendProof) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.VBlinding = append(m.VBlinding[:0], dAtA[iNdEx:postIndex]...) - if m.VBlinding == nil { - m.VBlinding = []byte{} + m.Nk = append(m.Nk[:0], dAtA[iNdEx:postIndex]...) + if m.Nk == nil { + m.Nk = []byte{} } iNdEx = postIndex - case 9: + case 20: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpendAuthRandomizer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1I", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransparentProofs @@ -745,31 +424,33 @@ func (m *SpendProof) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthTransparentProofs } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTransparentProofs } if postIndex > l { return io.ErrUnexpectedEOF } - m.SpendAuthRandomizer = append(m.SpendAuthRandomizer[:0], dAtA[iNdEx:postIndex]...) - if m.SpendAuthRandomizer == nil { - m.SpendAuthRandomizer = []byte{} + if m.Lambda_1I == nil { + m.Lambda_1I = &v1alpha11.Amount{} + } + if err := m.Lambda_1I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 10: + case 21: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ak", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2I", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransparentProofs @@ -779,283 +460,23 @@ func (m *SpendProof) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthTransparentProofs } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTransparentProofs } if postIndex > l { return io.ErrUnexpectedEOF } - m.Ak = append(m.Ak[:0], dAtA[iNdEx:postIndex]...) - if m.Ak == nil { - m.Ak = []byte{} - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nk", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Nk = append(m.Nk[:0], dAtA[iNdEx:postIndex]...) - if m.Nk == nil { - m.Nk = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTransparentProofs(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTransparentProofs - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SwapClaimProof) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SwapClaimProof: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SwapClaimProof: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SwapPlaintext == nil { - m.SwapPlaintext = &v1alpha11.SwapPlaintext{} - } - if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitmentProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SwapCommitmentProof == nil { - m.SwapCommitmentProof = &v1alpha1.StateCommitmentProof{} - } - if err := m.SwapCommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nk", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Nk = append(m.Nk[:0], dAtA[iNdEx:postIndex]...) - if m.Nk == nil { - m.Nk = []byte{} - } - iNdEx = postIndex - case 20: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1I", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Lambda_1I == nil { - m.Lambda_1I = &v1alpha1.Amount{} - } - if err := m.Lambda_1I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 21: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2I", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Lambda_2I == nil { - m.Lambda_2I = &v1alpha1.Amount{} + if m.Lambda_2I == nil { + m.Lambda_2I = &v1alpha11.Amount{} } if err := m.Lambda_2I.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -1082,126 +503,6 @@ func (m *SwapClaimProof) Unmarshal(dAtA []byte) error { } return nil } -func (m *UndelegateClaimProof) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UndelegateClaimProof: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UndelegateClaimProof: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnbondingAmount", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UnbondingAmount == nil { - m.UnbondingAmount = &v1alpha1.Amount{} - } - if err := m.UnbondingAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BalanceBlinding", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransparentProofs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTransparentProofs - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTransparentProofs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BalanceBlinding = append(m.BalanceBlinding[:0], dAtA[iNdEx:postIndex]...) - if m.BalanceBlinding == nil { - m.BalanceBlinding = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTransparentProofs(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTransparentProofs - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func skipTransparentProofs(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/relayer/chains/penumbra/view/v1alpha1/view.pb.go b/relayer/chains/penumbra/view/v1alpha1/view.pb.go index 16d815ff7..5e28b5218 100644 --- a/relayer/chains/penumbra/view/v1alpha1/view.pb.go +++ b/relayer/chains/penumbra/view/v1alpha1/view.pb.go @@ -3122,6 +3122,7 @@ func (m *TransactionPerspectiveRequest) GetTxHash() []byte { type TransactionPerspectiveResponse struct { Txp *v1alpha1.TransactionPerspective `protobuf:"bytes,1,opt,name=txp,proto3" json:"txp,omitempty"` Tx *v1alpha1.Transaction `protobuf:"bytes,2,opt,name=tx,proto3" json:"tx,omitempty"` + Txv *v1alpha1.TransactionView `protobuf:"bytes,3,opt,name=txv,proto3" json:"txv,omitempty"` } func (m *TransactionPerspectiveResponse) Reset() { *m = TransactionPerspectiveResponse{} } @@ -3171,6 +3172,13 @@ func (m *TransactionPerspectiveResponse) GetTx() *v1alpha1.Transaction { return nil } +func (m *TransactionPerspectiveResponse) GetTxv() *v1alpha1.TransactionView { + if m != nil { + return m.Txv + } + return nil +} + type NotesResponse struct { NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` } @@ -3582,179 +3590,180 @@ func init() { func init() { proto.RegisterFile("penumbra/view/v1alpha1/view.proto", fileDescriptor_0aa947b204e6a7c2) } var fileDescriptor_0aa947b204e6a7c2 = []byte{ - // 2751 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcd, 0x73, 0xe4, 0xc4, - 0x15, 0x5f, 0xcd, 0xf8, 0x6b, 0xdf, 0x8c, 0x67, 0xbc, 0xb2, 0xd7, 0x1e, 0x26, 0x60, 0x16, 0xb1, - 0xbb, 0x38, 0x4b, 0x18, 0xef, 0x7a, 0x81, 0x10, 0x03, 0x05, 0x1e, 0x1c, 0x63, 0x17, 0xbb, 0xe0, - 0xc8, 0xac, 0x37, 0x10, 0x13, 0x55, 0x5b, 0x6a, 0x7b, 0x14, 0x6b, 0x24, 0x21, 0xf5, 0xf8, 0x83, - 0x9c, 0xb8, 0x10, 0x8a, 0x53, 0xaa, 0x72, 0x48, 0x72, 0xcd, 0x2d, 0xa9, 0x54, 0x71, 0xca, 0x5f, - 0x90, 0x0b, 0x95, 0x43, 0x8a, 0x03, 0xa9, 0x4a, 0x25, 0x55, 0xa9, 0xd4, 0x72, 0xcb, 0x3f, 0x91, - 0x54, 0x7f, 0x69, 0x24, 0x8d, 0xc4, 0xcc, 0xd8, 0xa6, 0x92, 0x0d, 0x37, 0x75, 0xf7, 0x7b, 0xbf, - 0xf7, 0xfa, 0xbd, 0xee, 0xd7, 0xaf, 0x9f, 0x1a, 0x9e, 0xf0, 0xb1, 0xdb, 0x69, 0xef, 0x06, 0x68, - 0xf1, 0xd0, 0xc6, 0x47, 0x8b, 0x87, 0xb7, 0x90, 0xe3, 0xb7, 0xd0, 0x2d, 0xd6, 0x6a, 0xf8, 0x81, - 0x47, 0x3c, 0x75, 0x56, 0x92, 0x34, 0x58, 0xa7, 0x24, 0xa9, 0x2f, 0x44, 0xac, 0xa6, 0x17, 0xe0, - 0x45, 0xb3, 0x85, 0x6c, 0xb7, 0x0b, 0xc0, 0x9a, 0x1c, 0xa1, 0x7e, 0x23, 0x45, 0x19, 0x9c, 0xf8, - 0xc4, 0x8b, 0x91, 0xb2, 0xb6, 0xa0, 0xbd, 0x9a, 0xa4, 0xb5, 0xf0, 0x71, 0x97, 0xd0, 0xc2, 0xc7, - 0x82, 0xea, 0xd9, 0x24, 0x15, 0x09, 0x90, 0x1b, 0x22, 0x93, 0xd8, 0x5e, 0x4c, 0x83, 0x58, 0x67, - 0x36, 0xb6, 0xbd, 0x6b, 0x76, 0xa9, 0xed, 0x5d, 0x93, 0x53, 0x69, 0xbf, 0x56, 0xe0, 0x5b, 0xcd, - 0xc0, 0x43, 0x96, 0x89, 0x42, 0xf2, 0x76, 0x17, 0x44, 0xc7, 0xef, 0x77, 0x70, 0x48, 0xd4, 0x1f, - 0x40, 0x29, 0x06, 0x5d, 0x53, 0xae, 0x28, 0x0b, 0xa5, 0xa5, 0xc5, 0x46, 0x64, 0x25, 0x8a, 0xdd, - 0x88, 0x0b, 0x97, 0x32, 0x1a, 0x71, 0xb0, 0x38, 0x86, 0xfa, 0x14, 0x54, 0xd1, 0x11, 0xb2, 0x89, - 0x61, 0x61, 0x82, 0x39, 0x6c, 0xe1, 0x8a, 0xb2, 0x30, 0xa1, 0x57, 0x58, 0xf7, 0xaa, 0xec, 0xd5, - 0xb6, 0xe1, 0xd1, 0x6c, 0xd5, 0x42, 0xdf, 0x73, 0x43, 0xac, 0x3e, 0x0f, 0x05, 0xdb, 0x12, 0x2a, - 0x5d, 0x1f, 0x44, 0xa5, 0x0d, 0x4b, 0x2f, 0xd8, 0x96, 0xf6, 0x5b, 0x80, 0x47, 0x62, 0x78, 0x9b, - 0x0e, 0x72, 0x5d, 0x1c, 0xc8, 0x19, 0x3f, 0x09, 0x93, 0xf8, 0xd8, 0xb7, 0x83, 0x13, 0xa3, 0x85, - 0xed, 0xfd, 0x16, 0x61, 0x02, 0x46, 0xf4, 0x32, 0xef, 0x5c, 0x67, 0x7d, 0xea, 0xb3, 0x50, 0xdc, - 0xc3, 0x98, 0xe9, 0x5d, 0x5a, 0xd2, 0x52, 0xb2, 0x85, 0x8b, 0x23, 0xb1, 0x6b, 0x18, 0xeb, 0x94, - 0x5c, 0x55, 0x61, 0xa4, 0x8d, 0xdb, 0x5e, 0xad, 0x78, 0x45, 0x59, 0xb8, 0xa8, 0xb3, 0x6f, 0x75, - 0x07, 0xa6, 0x90, 0x69, 0x7a, 0x1d, 0x97, 0x18, 0xfb, 0x81, 0xd7, 0xf1, 0x0d, 0xdb, 0xaa, 0x55, - 0x18, 0xec, 0x33, 0x7d, 0x60, 0x57, 0x38, 0xdb, 0xeb, 0x94, 0x6b, 0xc3, 0x5a, 0xbf, 0xa0, 0x57, - 0x50, 0xa2, 0xe7, 0x63, 0x45, 0x51, 0x5f, 0x85, 0x51, 0xe2, 0x1d, 0x60, 0xb7, 0x56, 0x65, 0x90, - 0xd7, 0x1a, 0xd9, 0xcb, 0xbb, 0xb1, 0x6d, 0xe3, 0xa3, 0x95, 0x0e, 0x69, 0xbd, 0x4d, 0x89, 0xd7, - 0x15, 0x9d, 0x73, 0x51, 0x04, 0x1d, 0xc6, 0xbd, 0x0e, 0xf1, 0x3b, 0x24, 0xac, 0xcd, 0x5c, 0x29, - 0x2e, 0x94, 0x96, 0x5e, 0xc8, 0xc3, 0xc8, 0x35, 0x69, 0xe3, 0x2d, 0x06, 0xa0, 0x4b, 0x20, 0xf5, - 0x0e, 0x8c, 0x86, 0x47, 0xc8, 0x0f, 0x6b, 0xf3, 0x0c, 0xf1, 0xf9, 0xe1, 0x11, 0xb7, 0x8e, 0x90, - 0xaf, 0x73, 0x10, 0x75, 0x07, 0x4a, 0x16, 0x76, 0xf0, 0x3e, 0xa2, 0x74, 0x61, 0x6d, 0x81, 0x61, - 0x2e, 0x0f, 0x8f, 0xb9, 0xca, 0x41, 0xb0, 0x1e, 0x87, 0x53, 0x77, 0x61, 0xb2, 0xe3, 0xc6, 0xf1, - 0x97, 0x18, 0xfe, 0x4b, 0xc3, 0xe3, 0xdf, 0x93, 0x30, 0x58, 0x4f, 0x42, 0xaa, 0x6b, 0x50, 0xb2, - 0x77, 0x4d, 0x83, 0x73, 0x85, 0xb5, 0x97, 0x98, 0x84, 0x6b, 0x29, 0xf7, 0xd3, 0x3d, 0xdb, 0x5d, - 0xc9, 0xbb, 0xe6, 0x0a, 0xdf, 0x0c, 0x60, 0xcb, 0xcf, 0xb0, 0xfe, 0x91, 0x02, 0x63, 0xdc, 0xd6, - 0xea, 0x32, 0x8c, 0x1e, 0x22, 0xa7, 0x83, 0xc5, 0xf6, 0xb8, 0xda, 0x67, 0x2d, 0x6d, 0x53, 0x5a, - 0x9d, 0xb3, 0xa8, 0xaf, 0xc2, 0x38, 0xb2, 0xac, 0x00, 0x87, 0xa1, 0x58, 0xe0, 0xd7, 0xfb, 0xad, - 0x44, 0x4e, 0xad, 0x4b, 0xb6, 0xfa, 0x1f, 0x15, 0x18, 0xa1, 0x2e, 0x3a, 0x93, 0x1a, 0x1b, 0x50, - 0x26, 0x28, 0xd8, 0xc7, 0xc4, 0x40, 0x61, 0x88, 0xc9, 0xa0, 0xba, 0x50, 0xda, 0x0d, 0x4b, 0x2f, - 0x71, 0x5e, 0xd6, 0x94, 0xdb, 0xb5, 0x38, 0xd4, 0x76, 0xad, 0xff, 0x4a, 0x81, 0x09, 0xb9, 0x28, - 0xd4, 0x97, 0x61, 0x0c, 0xb5, 0xe9, 0xee, 0x12, 0x53, 0xb9, 0xd6, 0x4f, 0x0f, 0x46, 0xac, 0x0b, - 0x26, 0xf5, 0x2e, 0x94, 0x6d, 0x0b, 0xbb, 0xc4, 0x26, 0x27, 0xc6, 0x01, 0x3e, 0x11, 0x93, 0xb9, - 0xd1, 0x07, 0x64, 0x43, 0xb0, 0xbc, 0x81, 0x4f, 0xf4, 0x92, 0xdd, 0x6d, 0xd4, 0xd7, 0x01, 0xba, - 0xcb, 0xe9, 0x2c, 0x56, 0x6e, 0x4e, 0xc3, 0x25, 0x23, 0x1d, 0x80, 0x9a, 0x13, 0x30, 0x66, 0xb0, - 0x08, 0xa0, 0x61, 0xa8, 0x67, 0xad, 0x68, 0x11, 0x81, 0x5f, 0x87, 0x11, 0xdf, 0x41, 0xf2, 0x58, - 0xb8, 0x3d, 0xe4, 0xb1, 0x40, 0xd1, 0x74, 0x06, 0xa0, 0xd9, 0x70, 0x59, 0x2c, 0xa2, 0xe6, 0xc9, - 0x86, 0x6b, 0xe1, 0x63, 0x19, 0x8d, 0x37, 0x61, 0x52, 0x2c, 0x2a, 0xc3, 0xa6, 0xfd, 0x42, 0xd4, - 0xd3, 0x83, 0xad, 0x48, 0x0e, 0x55, 0x46, 0xb1, 0x96, 0xf6, 0x2e, 0xcc, 0xa6, 0x45, 0x89, 0xd9, - 0xc4, 0xd6, 0xbd, 0x72, 0xaa, 0x75, 0xaf, 0xbd, 0x03, 0x97, 0x19, 0x64, 0xf3, 0x44, 0x0e, 0x89, - 0x69, 0x9c, 0x1d, 0xfa, 0x43, 0x05, 0x66, 0xd3, 0xd8, 0x42, 0xef, 0x7b, 0x67, 0xb7, 0xd1, 0xfa, - 0x85, 0xa4, 0x95, 0x3e, 0x56, 0x94, 0xe6, 0x14, 0x54, 0x8c, 0x04, 0xae, 0x76, 0x00, 0x73, 0xdf, - 0xf7, 0x5b, 0xb8, 0x8d, 0x03, 0xe4, 0xa4, 0x26, 0x78, 0xfe, 0x7e, 0xda, 0x81, 0x5a, 0xaf, 0xb0, - 0x73, 0xf3, 0xd4, 0x8f, 0x60, 0xae, 0x89, 0x1c, 0xe4, 0x9a, 0xf8, 0x6b, 0xf0, 0xd5, 0x2f, 0x15, - 0xa8, 0xf5, 0xa2, 0x0b, 0xdd, 0x5f, 0x82, 0x51, 0x1e, 0xcf, 0x94, 0xa1, 0xe2, 0x19, 0x67, 0x8a, - 0x85, 0xa1, 0xc2, 0x29, 0xc2, 0x90, 0x76, 0x0d, 0x26, 0x13, 0x47, 0xbd, 0x3a, 0x03, 0xa3, 0x36, - 0xdd, 0xd2, 0x4c, 0x9b, 0xb2, 0xce, 0x1b, 0x9a, 0x0e, 0x55, 0x49, 0x26, 0xad, 0xf2, 0x0a, 0x14, - 0xf7, 0x0e, 0x0f, 0x84, 0xd2, 0xfd, 0x52, 0x93, 0xb5, 0x8e, 0xe3, 0x50, 0x00, 0xdb, 0xdd, 0xa7, - 0xa1, 0x8b, 0x72, 0x6a, 0x6f, 0xc1, 0x54, 0x17, 0x53, 0xd8, 0xe2, 0x45, 0x99, 0x9e, 0x28, 0x43, - 0xa4, 0x27, 0x22, 0x39, 0xd1, 0xfe, 0xac, 0xc0, 0xe4, 0x16, 0x41, 0xa4, 0x13, 0x79, 0xee, 0x7f, - 0x3c, 0x97, 0xea, 0x17, 0x6b, 0x75, 0xa8, 0xc8, 0xf9, 0x08, 0xfb, 0x3c, 0x0e, 0xa5, 0xf0, 0xc4, - 0x35, 0x93, 0x99, 0x28, 0xd0, 0x2e, 0x91, 0x87, 0x3e, 0x0e, 0x25, 0x13, 0x11, 0xb3, 0x65, 0xbb, - 0xfb, 0x46, 0xc7, 0x17, 0x79, 0x34, 0xc8, 0xae, 0x7b, 0xbe, 0xf6, 0x85, 0x02, 0xd3, 0x1c, 0x74, - 0x8b, 0x04, 0x18, 0xb5, 0xff, 0x4f, 0x4c, 0x15, 0xc0, 0x4c, 0x72, 0x56, 0xc2, 0x60, 0xdf, 0x83, - 0x47, 0x1c, 0x44, 0x70, 0x48, 0x8c, 0x03, 0xd7, 0x3b, 0x72, 0x8d, 0x5d, 0xc7, 0x33, 0x0f, 0x92, - 0xe6, 0x9b, 0xe5, 0x04, 0x6f, 0xd0, 0xf1, 0x26, 0x1d, 0xee, 0x9a, 0x32, 0x6e, 0xeb, 0x42, 0xda, - 0xd6, 0xda, 0xa7, 0x45, 0x28, 0xbf, 0xe9, 0x11, 0x1c, 0xc6, 0x6e, 0x0a, 0xb6, 0x6b, 0x3a, 0x1d, - 0x0b, 0x1b, 0xa1, 0x8f, 0xc5, 0x96, 0x9c, 0xd0, 0xcb, 0xa2, 0x73, 0x8b, 0xf6, 0xa9, 0x2b, 0x30, - 0xc1, 0x76, 0x2e, 0x35, 0x70, 0x71, 0xa8, 0x1d, 0x3f, 0x8e, 0xf8, 0x47, 0x6f, 0x6c, 0x1d, 0x39, - 0x63, 0x6c, 0x55, 0xaf, 0x43, 0x95, 0x07, 0x04, 0x83, 0x78, 0x4c, 0x77, 0xab, 0x36, 0xca, 0xe6, - 0x3b, 0xc9, 0xbb, 0xdf, 0xf6, 0xa8, 0xf2, 0xd6, 0xc3, 0xbe, 0x4a, 0xbe, 0x28, 0xc0, 0x65, 0xe6, - 0xb1, 0x35, 0x2f, 0xd8, 0xf6, 0x88, 0xed, 0xee, 0x4b, 0xd7, 0xdd, 0x80, 0x4b, 0x87, 0x1e, 0x41, - 0xbb, 0x0e, 0x36, 0x10, 0x49, 0xae, 0x8f, 0xaa, 0x18, 0x58, 0x21, 0x62, 0x61, 0xf4, 0x98, 0xbf, - 0x78, 0x56, 0xf3, 0x3f, 0xe4, 0x66, 0xfd, 0xa4, 0x08, 0x95, 0xfb, 0x36, 0x71, 0x63, 0x67, 0xe6, - 0x3b, 0x30, 0xe5, 0x7a, 0x04, 0x1b, 0xa6, 0xd7, 0x6e, 0xdb, 0xa4, 0x8d, 0x5d, 0x42, 0xef, 0x0e, - 0xf4, 0x1a, 0xd3, 0xe8, 0x33, 0x23, 0xba, 0x8d, 0xf1, 0x6b, 0x11, 0x9b, 0x5e, 0xa5, 0x38, 0xdd, - 0x76, 0xa8, 0xfe, 0x18, 0xa6, 0x62, 0x89, 0xa4, 0xc1, 0xf2, 0xcd, 0xe2, 0xe9, 0xf3, 0xcd, 0x2a, - 0x49, 0x76, 0x3c, 0xec, 0xce, 0xc0, 0x50, 0x8d, 0x7c, 0x21, 0x82, 0xa0, 0x0e, 0xe5, 0x23, 0xde, - 0x65, 0x58, 0x88, 0xa0, 0x61, 0x8a, 0x36, 0x02, 0x6a, 0x15, 0x11, 0xa4, 0x97, 0x8e, 0xba, 0x0d, - 0xed, 0x1f, 0x0a, 0xcc, 0x8a, 0xc1, 0x15, 0xd7, 0x6a, 0x76, 0x6c, 0xc7, 0x92, 0xbe, 0xcf, 0x72, - 0x90, 0x72, 0x8e, 0x0e, 0xb2, 0x40, 0x45, 0x1d, 0xd2, 0xf2, 0x02, 0xfb, 0x03, 0x76, 0x5f, 0xe6, - 0x93, 0xe2, 0xe9, 0xcf, 0x73, 0x83, 0x48, 0x58, 0x89, 0x73, 0xb3, 0xa9, 0x5d, 0x42, 0xe9, 0x2e, - 0xcd, 0x81, 0xb9, 0x9e, 0xf9, 0x09, 0x7b, 0x9e, 0x7f, 0x0d, 0x4c, 0xfb, 0x7d, 0x11, 0x26, 0x59, - 0x9c, 0x8f, 0x76, 0x50, 0x1d, 0x26, 0xf6, 0x6c, 0x87, 0xe0, 0x00, 0xf3, 0x92, 0xd6, 0x84, 0x1e, - 0xb5, 0xd5, 0x9f, 0xc0, 0x7c, 0xec, 0xa0, 0x31, 0xed, 0x3d, 0xdb, 0x34, 0x2c, 0xec, 0x7a, 0x6d, - 0xdb, 0x15, 0x45, 0x09, 0xbe, 0xd7, 0xfa, 0x5d, 0xfc, 0x56, 0x29, 0x8f, 0xfe, 0x68, 0xf7, 0x7c, - 0x62, 0x50, 0xab, 0x71, 0x24, 0x75, 0x19, 0x1e, 0x91, 0xb2, 0xba, 0x25, 0x0a, 0xbe, 0xd6, 0x42, - 0xb6, 0xef, 0x26, 0xf4, 0x39, 0x41, 0xb0, 0x1a, 0x8d, 0xb3, 0x55, 0x1b, 0xaa, 0x2f, 0x40, 0x4d, - 0xf2, 0x76, 0xdc, 0x5d, 0xcf, 0xb5, 0x68, 0x5a, 0x22, 0x58, 0x47, 0x18, 0xeb, 0xac, 0x18, 0xbf, - 0x27, 0x87, 0x05, 0xe7, 0x75, 0xa8, 0x4a, 0x4e, 0xc7, 0x37, 0xdc, 0x3d, 0x12, 0xb2, 0x03, 0x69, - 0x42, 0x97, 0x27, 0xec, 0x1d, 0xff, 0xcd, 0x3d, 0x12, 0xaa, 0x4b, 0x70, 0x59, 0xd2, 0xf9, 0x81, - 0xe7, 0x7b, 0x21, 0x72, 0x38, 0xf5, 0x18, 0xa3, 0x9e, 0x16, 0x83, 0x9b, 0x62, 0x8c, 0xf1, 0xac, - 0xc0, 0x63, 0x92, 0xe7, 0x90, 0x1d, 0x02, 0x46, 0x80, 0x4d, 0x6c, 0xfb, 0x44, 0xaa, 0x36, 0xce, - 0x78, 0xeb, 0x82, 0x48, 0x1e, 0x14, 0x8c, 0x84, 0xab, 0xa7, 0xdd, 0x81, 0x8a, 0xf4, 0x96, 0x58, - 0x13, 0xcb, 0xc9, 0x2c, 0xfe, 0xea, 0x20, 0x67, 0xba, 0xc8, 0xe1, 0xb5, 0x1a, 0xcc, 0xbe, 0xd6, - 0x42, 0xb6, 0xbb, 0x89, 0x02, 0xd4, 0xc6, 0x04, 0x07, 0x72, 0x11, 0x68, 0x2d, 0x98, 0xeb, 0x19, - 0x11, 0x02, 0xef, 0x02, 0xf8, 0x51, 0x6f, 0x5e, 0x1a, 0xce, 0xca, 0xd0, 0x91, 0xd0, 0x34, 0x54, - 0x0c, 0x40, 0x9b, 0x85, 0x99, 0xb5, 0xbb, 0xab, 0xbd, 0x1a, 0x58, 0x70, 0x39, 0xd5, 0x2f, 0xe4, - 0xbf, 0x91, 0x21, 0xff, 0xe9, 0xaf, 0x96, 0xbf, 0xd6, 0xb6, 0x72, 0xa4, 0xff, 0xad, 0x00, 0x73, - 0xf4, 0x60, 0x6e, 0x9e, 0xc4, 0x22, 0xbf, 0xd8, 0x08, 0xf7, 0xa1, 0x9a, 0x3a, 0x4a, 0xc4, 0x5e, - 0x1f, 0xf6, 0x24, 0xa9, 0x24, 0x4f, 0x92, 0xac, 0xba, 0x73, 0x31, 0xab, 0xee, 0xfc, 0xb0, 0x9f, - 0x08, 0x2e, 0xd4, 0x7a, 0x6d, 0x1b, 0x1d, 0x0d, 0x15, 0x96, 0xee, 0xb1, 0xcc, 0x87, 0xda, 0xa7, - 0xd7, 0x93, 0x49, 0x2d, 0xb6, 0x24, 0x35, 0x85, 0xd4, 0xb1, 0xe9, 0x05, 0x96, 0x3e, 0x19, 0xc6, - 0x3b, 0x99, 0x33, 0xb7, 0x8e, 0x90, 0x9f, 0xe3, 0xcc, 0xf0, 0x08, 0xf9, 0xe7, 0xe0, 0x4c, 0x0a, - 0xf3, 0x0d, 0x74, 0xa6, 0x0e, 0xb5, 0x5e, 0xdb, 0x46, 0xff, 0x3f, 0x46, 0xa8, 0x55, 0x84, 0x0b, - 0xb5, 0x5c, 0x17, 0x1e, 0x21, 0x5f, 0x78, 0x8e, 0xd1, 0x6b, 0x9f, 0x15, 0x60, 0xf6, 0xcd, 0x8e, - 0xe3, 0xd8, 0x7b, 0x36, 0x0e, 0x92, 0x37, 0xe8, 0x35, 0xb8, 0xe8, 0xca, 0x11, 0xe1, 0xa9, 0x85, - 0x3e, 0x66, 0x8a, 0x90, 0xf4, 0x2e, 0xeb, 0x37, 0xc6, 0x3d, 0x8b, 0x30, 0xd7, 0x63, 0x49, 0xe1, - 0x9d, 0x19, 0x18, 0xe5, 0xb7, 0x42, 0x7e, 0x9a, 0xf3, 0x86, 0xf6, 0x91, 0x02, 0xb5, 0x58, 0x56, - 0xb0, 0x8e, 0xc2, 0x56, 0xf7, 0x42, 0x79, 0x1d, 0xca, 0x21, 0x41, 0x41, 0xf2, 0x42, 0xb2, 0x7e, - 0x41, 0x2f, 0xb1, 0x5e, 0x7e, 0x1d, 0xa1, 0xd3, 0xd2, 0x00, 0xb0, 0x6b, 0x25, 0x6e, 0xaa, 0xeb, - 0x8a, 0x7e, 0x11, 0xbb, 0x56, 0x44, 0xd3, 0xac, 0xc2, 0xa4, 0x11, 0x07, 0x6b, 0x4e, 0x42, 0xc9, - 0xe8, 0x72, 0x69, 0xf7, 0x13, 0xff, 0xc0, 0xa4, 0x1e, 0x42, 0xf7, 0x27, 0xa0, 0x9c, 0x71, 0x73, - 0x2e, 0xed, 0xc6, 0xae, 0xcb, 0x73, 0x30, 0x4e, 0x8e, 0x8d, 0x16, 0x0a, 0x5b, 0x4c, 0x81, 0xb2, - 0x3e, 0x46, 0x8e, 0x29, 0x8a, 0x76, 0x3b, 0x31, 0xc1, 0xe6, 0x09, 0xed, 0x94, 0x13, 0x8c, 0x31, - 0x29, 0x09, 0xa6, 0x9d, 0x84, 0x36, 0x92, 0x49, 0x68, 0xf3, 0x0a, 0x14, 0xc8, 0xf1, 0x69, 0xd3, - 0xae, 0x02, 0x39, 0xd6, 0x3e, 0x54, 0x60, 0x3a, 0xd6, 0xf7, 0x5f, 0xb1, 0xf7, 0x2f, 0x14, 0x98, - 0x49, 0xea, 0x70, 0x76, 0x5b, 0x0b, 0xcb, 0x14, 0x4f, 0x6f, 0x99, 0x17, 0xe0, 0xb1, 0x78, 0xfe, - 0x8d, 0x03, 0x9a, 0x5f, 0x12, 0xfb, 0x10, 0xf7, 0xf5, 0xd8, 0xa7, 0x0a, 0xcc, 0xe7, 0xb1, 0x8a, - 0x99, 0xdd, 0x81, 0x22, 0x39, 0x96, 0xe1, 0x69, 0x79, 0xd8, 0xbb, 0x40, 0x0c, 0x90, 0xc2, 0x88, - 0xb9, 0x16, 0x4e, 0x3f, 0xd7, 0xf7, 0x60, 0x52, 0x94, 0x6f, 0x22, 0xfd, 0x4a, 0x2c, 0xd3, 0x08, - 0x58, 0x70, 0x3c, 0xcd, 0x49, 0x08, 0x6e, 0xf4, 0xad, 0xfd, 0x41, 0x81, 0xd9, 0x74, 0xb1, 0xe1, - 0xeb, 0x10, 0x74, 0xce, 0xbf, 0x92, 0xb4, 0x7f, 0x17, 0x61, 0x3a, 0x43, 0x64, 0x56, 0x1e, 0xa6, - 0x9c, 0x4b, 0x1e, 0xf6, 0x5d, 0x18, 0x61, 0x99, 0x07, 0xd7, 0xfb, 0xc9, 0x7e, 0xc7, 0x0b, 0xd5, - 0x88, 0x31, 0x7c, 0x0d, 0x85, 0x98, 0xc4, 0x71, 0x37, 0x72, 0xfa, 0xe3, 0xee, 0x1a, 0x54, 0xf8, - 0xee, 0x35, 0xcc, 0x00, 0x23, 0x82, 0xa3, 0x72, 0x1a, 0xef, 0x7d, 0x8d, 0x77, 0xd2, 0x78, 0x23, - 0xc8, 0xf8, 0xc9, 0x30, 0x26, 0xe3, 0x0d, 0xef, 0x65, 0x05, 0x43, 0x1a, 0x6f, 0xea, 0x30, 0xe1, - 0x7b, 0xa1, 0xcd, 0x8e, 0xcd, 0x71, 0x06, 0x14, 0xb5, 0xd5, 0x57, 0x61, 0x2c, 0xf4, 0x3a, 0x81, - 0x89, 0x6b, 0x13, 0xd9, 0xfa, 0x26, 0x73, 0x70, 0x6a, 0xbe, 0x2d, 0x46, 0xaf, 0x0b, 0x3e, 0x16, - 0xa9, 0xe2, 0x6a, 0x68, 0x7f, 0x2f, 0x02, 0x74, 0x93, 0x84, 0xac, 0x9c, 0x4d, 0x39, 0x97, 0x9c, - 0xed, 0x65, 0x91, 0xaf, 0x70, 0xc7, 0x7f, 0x3b, 0x85, 0x66, 0xe1, 0xe3, 0x64, 0xce, 0xb2, 0xe9, - 0x20, 0xdb, 0x25, 0xf8, 0x98, 0xf0, 0xb4, 0x25, 0x61, 0x95, 0x62, 0xca, 0x2a, 0xe7, 0xe5, 0xc8, - 0x4d, 0x28, 0xf1, 0x47, 0x0a, 0xbc, 0xc8, 0x30, 0x9a, 0x19, 0x6d, 0x12, 0x9a, 0x36, 0x11, 0x31, - 0x5b, 0x54, 0x5d, 0xfe, 0xe3, 0x9d, 0x95, 0x17, 0xc0, 0x8b, 0xbe, 0xd5, 0x1b, 0xdd, 0xa5, 0xe1, - 0x20, 0xbb, 0x8d, 0xad, 0xc8, 0xeb, 0x72, 0x71, 0xf0, 0x6e, 0x9e, 0xae, 0x48, 0xdf, 0x8e, 0x9f, - 0xd2, 0xb7, 0x97, 0xa0, 0x6a, 0x24, 0xc5, 0x2d, 0xfd, 0x65, 0x1a, 0xa6, 0x69, 0x7e, 0xb3, 0x19, - 0x78, 0xc4, 0x33, 0x3d, 0x67, 0x0b, 0x07, 0x87, 0xb6, 0x89, 0xd5, 0xfb, 0x30, 0xc6, 0x33, 0x16, - 0x35, 0x37, 0x2d, 0x4a, 0xe4, 0x86, 0xf5, 0xeb, 0xfd, 0xc8, 0x44, 0xb4, 0x3b, 0x80, 0x72, 0xbc, - 0x36, 0xaf, 0x3e, 0xfd, 0xd5, 0x7c, 0x89, 0xff, 0x12, 0xf5, 0xef, 0x0c, 0x46, 0xcc, 0x45, 0xdd, - 0x54, 0xd4, 0x6d, 0x18, 0x65, 0x41, 0x57, 0xbd, 0x9a, 0xc7, 0x18, 0x2f, 0xd9, 0xd7, 0xaf, 0xf5, - 0xa1, 0x8a, 0x70, 0xdf, 0x87, 0x4a, 0x32, 0x98, 0xab, 0xcf, 0x7c, 0x25, 0x6b, 0xba, 0xc2, 0x5c, - 0x6f, 0x0c, 0x4a, 0x1e, 0x89, 0x7c, 0x17, 0xc6, 0x45, 0x05, 0x4a, 0xcd, 0x35, 0x75, 0xb2, 0xec, - 0x5a, 0x7f, 0xaa, 0x2f, 0x9d, 0xf0, 0x49, 0x10, 0x55, 0x09, 0x65, 0x75, 0x4b, 0x6d, 0xf4, 0xe1, - 0x4d, 0x95, 0xf9, 0xea, 0x8b, 0x03, 0xd3, 0x0b, 0x99, 0xef, 0xc0, 0x18, 0x2f, 0x9a, 0xe4, 0x2f, - 0xb0, 0x44, 0x09, 0x2c, 0x7f, 0x81, 0x25, 0x6b, 0x2f, 0x37, 0x15, 0x3a, 0x9d, 0x54, 0x71, 0x23, - 0x7f, 0x3a, 0xd9, 0xa5, 0x96, 0xfc, 0xe9, 0xe4, 0x15, 0x60, 0x1c, 0x98, 0x4c, 0x54, 0x46, 0xd4, - 0xdc, 0xa5, 0x9a, 0x55, 0x58, 0xa9, 0x3f, 0x33, 0x20, 0xb5, 0x90, 0xe6, 0x41, 0x25, 0xf9, 0x4a, - 0x21, 0x7f, 0xfd, 0x65, 0x3e, 0x9c, 0xc8, 0x5f, 0x7f, 0x39, 0x8f, 0x1f, 0x3c, 0xa8, 0x24, 0x9f, - 0x17, 0xe4, 0x0b, 0xcc, 0x7c, 0xe2, 0x90, 0x2f, 0x30, 0xe7, 0xd5, 0x42, 0x07, 0xa6, 0xd2, 0xff, - 0xf7, 0xd5, 0x5c, 0xa7, 0xe4, 0x3c, 0x3b, 0xa8, 0xdf, 0x1c, 0x9c, 0x41, 0x88, 0x3d, 0x82, 0xa9, - 0xf4, 0xaf, 0xf9, 0x7c, 0xb1, 0x39, 0x4f, 0x04, 0xf2, 0xc5, 0xe6, 0xfd, 0xf5, 0xbf, 0xa9, 0xd0, - 0xf9, 0xa6, 0xcb, 0x32, 0xf9, 0x82, 0x73, 0x8a, 0x63, 0xf9, 0x82, 0x73, 0x2b, 0x3e, 0x1d, 0x98, - 0x4a, 0x17, 0x10, 0xf2, 0xc5, 0xe6, 0x94, 0x71, 0xf2, 0xc5, 0xe6, 0xd6, 0x26, 0x02, 0xa8, 0xa6, - 0x2e, 0xc6, 0xf9, 0x3b, 0x34, 0xbb, 0x16, 0x91, 0xbf, 0x43, 0xf3, 0x6e, 0xdc, 0x1f, 0xc0, 0xa5, - 0x9e, 0x2b, 0xad, 0x7a, 0x73, 0x80, 0x87, 0x7a, 0x89, 0x5b, 0x78, 0xfd, 0xd6, 0x10, 0x1c, 0x91, - 0x77, 0x8f, 0x13, 0xb2, 0xf9, 0x05, 0x76, 0x20, 0xd9, 0x89, 0x0b, 0xf2, 0x40, 0xb2, 0x53, 0xb7, - 0xe3, 0x03, 0x28, 0xc7, 0xef, 0x95, 0xf9, 0xc7, 0x6d, 0xc6, 0x0d, 0x38, 0xff, 0xb8, 0xcd, 0xba, - 0xaa, 0xde, 0x54, 0xd4, 0x9f, 0x29, 0x30, 0x9b, 0x7d, 0x49, 0x53, 0x9f, 0x1b, 0xe4, 0x45, 0x64, - 0xcf, 0x05, 0xb3, 0xfe, 0xfc, 0xb0, 0x6c, 0x62, 0xda, 0x3f, 0x05, 0xb5, 0xf7, 0x61, 0x9a, 0x7a, - 0x6b, 0xe8, 0x67, 0x99, 0xf5, 0xa5, 0x61, 0x58, 0x84, 0xf0, 0x0f, 0x15, 0x98, 0xc9, 0x7a, 0x9a, - 0xac, 0xde, 0xce, 0x0d, 0x0c, 0xf9, 0x6f, 0xac, 0xeb, 0xcf, 0x0e, 0xc7, 0xc4, 0x75, 0x58, 0xf2, - 0xbb, 0x6f, 0x74, 0x64, 0x4a, 0xf7, 0x1e, 0x4c, 0xc8, 0x2e, 0xf5, 0xa9, 0x7e, 0xb5, 0x2e, 0x29, - 0x7d, 0xa1, 0x3f, 0x21, 0x97, 0xd8, 0xfc, 0xa4, 0xf0, 0xd9, 0x83, 0x79, 0xe5, 0xf3, 0x07, 0xf3, - 0xca, 0x3f, 0x1f, 0xcc, 0x2b, 0x3f, 0xff, 0x72, 0xfe, 0xc2, 0xe7, 0x5f, 0xce, 0x5f, 0xf8, 0xeb, - 0x97, 0xf3, 0x17, 0xa0, 0x6e, 0x7a, 0xed, 0x1c, 0x9c, 0xe6, 0xc5, 0x28, 0xfb, 0xdc, 0x54, 0xde, - 0x7d, 0x6b, 0xdf, 0x26, 0xad, 0xce, 0x6e, 0xc3, 0xf4, 0xda, 0x8b, 0xa6, 0x17, 0xb6, 0xbd, 0x70, - 0x31, 0xc0, 0x0e, 0x3a, 0xc1, 0xc1, 0xe2, 0xe1, 0x52, 0xf4, 0xc9, 0x12, 0xdd, 0x70, 0x31, 0xfb, - 0xb9, 0xfe, 0x8b, 0xb4, 0x25, 0x1b, 0xbf, 0x29, 0x14, 0x37, 0xb7, 0x7f, 0xf8, 0xbb, 0xc2, 0xec, - 0xa6, 0x14, 0x4e, 0xa5, 0x35, 0xb6, 0xc5, 0xf0, 0x9f, 0xba, 0x03, 0x3b, 0x74, 0x60, 0x47, 0x0e, - 0x3c, 0x28, 0x68, 0xd9, 0x03, 0x3b, 0xaf, 0x6f, 0x36, 0xef, 0x62, 0x82, 0x68, 0xfe, 0xff, 0xaf, - 0x42, 0x4d, 0x12, 0x2d, 0x2f, 0x53, 0xaa, 0xe5, 0x65, 0x49, 0xb6, 0x3b, 0xc6, 0xde, 0xcf, 0xdf, - 0xfe, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xe5, 0x09, 0xfc, 0x54, 0x30, 0x00, 0x00, + // 2768 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcf, 0x73, 0xe4, 0xc4, + 0xf5, 0x5f, 0xcd, 0xf8, 0xd7, 0xbe, 0x19, 0xcf, 0x78, 0x65, 0xaf, 0x3d, 0xcc, 0x17, 0xcc, 0x22, + 0x76, 0x17, 0x7f, 0x97, 0x30, 0xde, 0xf5, 0x02, 0x21, 0x06, 0x0a, 0x3c, 0x18, 0x63, 0x17, 0xbb, + 0xe0, 0xc8, 0xac, 0x37, 0x10, 0x13, 0x55, 0x5b, 0x6a, 0x7b, 0x14, 0x6b, 0x24, 0x21, 0xf5, 0xf8, + 0x07, 0x39, 0x71, 0x21, 0x14, 0xa7, 0x54, 0xe5, 0x90, 0xe4, 0x9a, 0x5b, 0x52, 0xa9, 0xca, 0x29, + 0x7f, 0x41, 0x2e, 0x54, 0x0e, 0x29, 0x0e, 0xa4, 0x2a, 0x95, 0x54, 0xa5, 0x52, 0xcb, 0x2d, 0x7f, + 0x40, 0xae, 0x49, 0xf5, 0x2f, 0x8d, 0xa4, 0x91, 0x98, 0x19, 0xdb, 0x54, 0xb2, 0xe1, 0x36, 0xea, + 0x7e, 0xef, 0xf3, 0x5e, 0xbf, 0xd7, 0xfd, 0xfa, 0xbd, 0x37, 0x0d, 0x4f, 0xf8, 0xd8, 0xed, 0xb4, + 0x77, 0x03, 0xb4, 0x78, 0x68, 0xe3, 0xa3, 0xc5, 0xc3, 0x5b, 0xc8, 0xf1, 0x5b, 0xe8, 0x16, 0xfb, + 0x6a, 0xf8, 0x81, 0x47, 0x3c, 0x75, 0x56, 0x92, 0x34, 0xd8, 0xa0, 0x24, 0xa9, 0x2f, 0x44, 0xac, + 0xa6, 0x17, 0xe0, 0x45, 0xb3, 0x85, 0x6c, 0xb7, 0x0b, 0xc0, 0x3e, 0x39, 0x42, 0xfd, 0x46, 0x8a, + 0x32, 0x38, 0xf1, 0x89, 0x17, 0x23, 0x65, 0xdf, 0x82, 0xf6, 0x6a, 0x92, 0xd6, 0xc2, 0xc7, 0x5d, + 0x42, 0x0b, 0x1f, 0x0b, 0xaa, 0x67, 0x93, 0x54, 0x24, 0x40, 0x6e, 0x88, 0x4c, 0x62, 0x7b, 0x31, + 0x0d, 0x62, 0x83, 0xd9, 0xd8, 0xf6, 0xae, 0xd9, 0xa5, 0xb6, 0x77, 0x4d, 0x4e, 0xa5, 0xfd, 0x42, + 0x81, 0xff, 0x6b, 0x06, 0x1e, 0xb2, 0x4c, 0x14, 0x92, 0x77, 0xba, 0x20, 0x3a, 0xfe, 0xa0, 0x83, + 0x43, 0xa2, 0x7e, 0x17, 0x4a, 0x31, 0xe8, 0x9a, 0x72, 0x45, 0x59, 0x28, 0x2d, 0x2d, 0x36, 0x22, + 0x2b, 0x51, 0xec, 0x46, 0x5c, 0xb8, 0x94, 0xd1, 0x88, 0x83, 0xc5, 0x31, 0xd4, 0xa7, 0xa0, 0x8a, + 0x8e, 0x90, 0x4d, 0x0c, 0x0b, 0x13, 0xcc, 0x61, 0x0b, 0x57, 0x94, 0x85, 0x09, 0xbd, 0xc2, 0x86, + 0x57, 0xe5, 0xa8, 0xb6, 0x0d, 0x8f, 0x66, 0xab, 0x16, 0xfa, 0x9e, 0x1b, 0x62, 0xf5, 0x79, 0x28, + 0xd8, 0x96, 0x50, 0xe9, 0xfa, 0x20, 0x2a, 0x6d, 0x58, 0x7a, 0xc1, 0xb6, 0xb4, 0x5f, 0x01, 0x3c, + 0x12, 0xc3, 0xdb, 0x74, 0x90, 0xeb, 0xe2, 0x40, 0xae, 0xf8, 0x49, 0x98, 0xc4, 0xc7, 0xbe, 0x1d, + 0x9c, 0x18, 0x2d, 0x6c, 0xef, 0xb7, 0x08, 0x13, 0x30, 0xa2, 0x97, 0xf9, 0xe0, 0x3a, 0x1b, 0x53, + 0x9f, 0x85, 0xe2, 0x1e, 0xc6, 0x4c, 0xef, 0xd2, 0x92, 0x96, 0x92, 0x2d, 0x5c, 0x1c, 0x89, 0x5d, + 0xc3, 0x58, 0xa7, 0xe4, 0xaa, 0x0a, 0x23, 0x6d, 0xdc, 0xf6, 0x6a, 0xc5, 0x2b, 0xca, 0xc2, 0x45, + 0x9d, 0xfd, 0x56, 0x77, 0x60, 0x0a, 0x99, 0xa6, 0xd7, 0x71, 0x89, 0xb1, 0x1f, 0x78, 0x1d, 0xdf, + 0xb0, 0xad, 0x5a, 0x85, 0xc1, 0x3e, 0xd3, 0x07, 0x76, 0x85, 0xb3, 0xbd, 0x41, 0xb9, 0x36, 0xac, + 0xf5, 0x0b, 0x7a, 0x05, 0x25, 0x46, 0x3e, 0x51, 0x14, 0xf5, 0x55, 0x18, 0x25, 0xde, 0x01, 0x76, + 0x6b, 0x55, 0x06, 0x79, 0xad, 0x91, 0xbd, 0xbd, 0x1b, 0xdb, 0x36, 0x3e, 0x5a, 0xe9, 0x90, 0xd6, + 0x3b, 0x94, 0x78, 0x5d, 0xd1, 0x39, 0x17, 0x45, 0xd0, 0x61, 0xdc, 0xeb, 0x10, 0xbf, 0x43, 0xc2, + 0xda, 0xcc, 0x95, 0xe2, 0x42, 0x69, 0xe9, 0x85, 0x3c, 0x8c, 0x5c, 0x93, 0x36, 0xde, 0x66, 0x00, + 0xba, 0x04, 0x52, 0xef, 0xc0, 0x68, 0x78, 0x84, 0xfc, 0xb0, 0x36, 0xcf, 0x10, 0x9f, 0x1f, 0x1e, + 0x71, 0xeb, 0x08, 0xf9, 0x3a, 0x07, 0x51, 0x77, 0xa0, 0x64, 0x61, 0x07, 0xef, 0x23, 0x4a, 0x17, + 0xd6, 0x16, 0x18, 0xe6, 0xf2, 0xf0, 0x98, 0xab, 0x1c, 0x04, 0xeb, 0x71, 0x38, 0x75, 0x17, 0x26, + 0x3b, 0x6e, 0x1c, 0x7f, 0x89, 0xe1, 0xbf, 0x34, 0x3c, 0xfe, 0x3d, 0x09, 0x83, 0xf5, 0x24, 0xa4, + 0xba, 0x06, 0x25, 0x7b, 0xd7, 0x34, 0x38, 0x57, 0x58, 0x7b, 0x89, 0x49, 0xb8, 0x96, 0x72, 0x3f, + 0x3d, 0xb3, 0xdd, 0x9d, 0xbc, 0x6b, 0xae, 0xf0, 0xc3, 0x00, 0xb6, 0xfc, 0x19, 0xd6, 0x3f, 0x56, + 0x60, 0x8c, 0xdb, 0x5a, 0x5d, 0x86, 0xd1, 0x43, 0xe4, 0x74, 0xb0, 0x38, 0x1e, 0x57, 0xfb, 0xec, + 0xa5, 0x6d, 0x4a, 0xab, 0x73, 0x16, 0xf5, 0x55, 0x18, 0x47, 0x96, 0x15, 0xe0, 0x30, 0x14, 0x1b, + 0xfc, 0x7a, 0xbf, 0x9d, 0xc8, 0xa9, 0x75, 0xc9, 0x56, 0xff, 0xbd, 0x02, 0x23, 0xd4, 0x45, 0x67, + 0x52, 0x63, 0x03, 0xca, 0x04, 0x05, 0xfb, 0x98, 0x18, 0x28, 0x0c, 0x31, 0x19, 0x54, 0x17, 0x4a, + 0xbb, 0x61, 0xe9, 0x25, 0xce, 0xcb, 0x3e, 0xe5, 0x71, 0x2d, 0x0e, 0x75, 0x5c, 0xeb, 0x3f, 0x57, + 0x60, 0x42, 0x6e, 0x0a, 0xf5, 0x65, 0x18, 0x43, 0x6d, 0x7a, 0xba, 0xc4, 0x52, 0xae, 0xf5, 0xd3, + 0x83, 0x11, 0xeb, 0x82, 0x49, 0xbd, 0x0b, 0x65, 0xdb, 0xc2, 0x2e, 0xb1, 0xc9, 0x89, 0x71, 0x80, + 0x4f, 0xc4, 0x62, 0x6e, 0xf4, 0x01, 0xd9, 0x10, 0x2c, 0x6f, 0xe2, 0x13, 0xbd, 0x64, 0x77, 0x3f, + 0xea, 0xeb, 0x00, 0xdd, 0xed, 0x74, 0x16, 0x2b, 0x37, 0xa7, 0xe1, 0x92, 0x91, 0x0e, 0x40, 0xcd, + 0x09, 0x18, 0x33, 0x58, 0x04, 0xd0, 0x30, 0xd4, 0xb3, 0x76, 0xb4, 0x88, 0xc0, 0x6f, 0xc0, 0x88, + 0xef, 0x20, 0x79, 0x2d, 0xdc, 0x1e, 0xf2, 0x5a, 0xa0, 0x68, 0x3a, 0x03, 0xd0, 0x6c, 0xb8, 0x2c, + 0x36, 0x51, 0xf3, 0x64, 0xc3, 0xb5, 0xf0, 0xb1, 0x8c, 0xc6, 0x9b, 0x30, 0x29, 0x36, 0x95, 0x61, + 0xd3, 0x71, 0x21, 0xea, 0xe9, 0xc1, 0x76, 0x24, 0x87, 0x2a, 0xa3, 0xd8, 0x97, 0xf6, 0x1e, 0xcc, + 0xa6, 0x45, 0x89, 0xd5, 0xc4, 0xf6, 0xbd, 0x72, 0xaa, 0x7d, 0xaf, 0xbd, 0x0b, 0x97, 0x19, 0x64, + 0xf3, 0x44, 0x4e, 0x89, 0x65, 0x9c, 0x1d, 0xfa, 0x23, 0x05, 0x66, 0xd3, 0xd8, 0x42, 0xef, 0x7b, + 0x67, 0xb7, 0xd1, 0xfa, 0x85, 0xa4, 0x95, 0x3e, 0x51, 0x94, 0xe6, 0x14, 0x54, 0x8c, 0x04, 0xae, + 0x76, 0x00, 0x73, 0xaf, 0xfb, 0x2d, 0xdc, 0xc6, 0x01, 0x72, 0x52, 0x0b, 0x3c, 0x7f, 0x3f, 0xed, + 0x40, 0xad, 0x57, 0xd8, 0xb9, 0x79, 0xea, 0xfb, 0x30, 0xd7, 0x44, 0x0e, 0x72, 0x4d, 0xfc, 0x35, + 0xf8, 0xea, 0x67, 0x0a, 0xd4, 0x7a, 0xd1, 0x85, 0xee, 0x2f, 0xc1, 0x28, 0x8f, 0x67, 0xca, 0x50, + 0xf1, 0x8c, 0x33, 0xc5, 0xc2, 0x50, 0xe1, 0x14, 0x61, 0x48, 0xbb, 0x06, 0x93, 0x89, 0xab, 0x5e, + 0x9d, 0x81, 0x51, 0x9b, 0x1e, 0x69, 0xa6, 0x4d, 0x59, 0xe7, 0x1f, 0x9a, 0x0e, 0x55, 0x49, 0x26, + 0xad, 0xf2, 0x0a, 0x14, 0xf7, 0x0e, 0x0f, 0x84, 0xd2, 0xfd, 0x52, 0x93, 0xb5, 0x8e, 0xe3, 0x50, + 0x00, 0xdb, 0xdd, 0xa7, 0xa1, 0x8b, 0x72, 0x6a, 0x6f, 0xc3, 0x54, 0x17, 0x53, 0xd8, 0xe2, 0x45, + 0x99, 0x9e, 0x28, 0x43, 0xa4, 0x27, 0x22, 0x39, 0xd1, 0xfe, 0xa8, 0xc0, 0xe4, 0x16, 0x41, 0xa4, + 0x13, 0x79, 0xee, 0xbf, 0x3c, 0x97, 0xea, 0x17, 0x6b, 0x75, 0xa8, 0xc8, 0xf5, 0x08, 0xfb, 0x3c, + 0x0e, 0xa5, 0xf0, 0xc4, 0x35, 0x93, 0x99, 0x28, 0xd0, 0x21, 0x91, 0x87, 0x3e, 0x0e, 0x25, 0x13, + 0x11, 0xb3, 0x65, 0xbb, 0xfb, 0x46, 0xc7, 0x17, 0x79, 0x34, 0xc8, 0xa1, 0x7b, 0xbe, 0xf6, 0x85, + 0x02, 0xd3, 0x1c, 0x74, 0x8b, 0x04, 0x18, 0xb5, 0xff, 0x47, 0x4c, 0x15, 0xc0, 0x4c, 0x72, 0x55, + 0xc2, 0x60, 0xdf, 0x81, 0x47, 0x1c, 0x44, 0x70, 0x48, 0x8c, 0x03, 0xd7, 0x3b, 0x72, 0x8d, 0x5d, + 0xc7, 0x33, 0x0f, 0x92, 0xe6, 0x9b, 0xe5, 0x04, 0x6f, 0xd2, 0xf9, 0x26, 0x9d, 0xee, 0x9a, 0x32, + 0x6e, 0xeb, 0x42, 0xda, 0xd6, 0xda, 0x6f, 0x8b, 0x50, 0x7e, 0xcb, 0x23, 0x38, 0x8c, 0x55, 0x0a, + 0xb6, 0x6b, 0x3a, 0x1d, 0x0b, 0x1b, 0xa1, 0x8f, 0xc5, 0x91, 0x9c, 0xd0, 0xcb, 0x62, 0x70, 0x8b, + 0x8e, 0xa9, 0x2b, 0x30, 0xc1, 0x4e, 0x2e, 0x35, 0x70, 0x71, 0xa8, 0x13, 0x3f, 0x8e, 0xf8, 0x8f, + 0xde, 0xd8, 0x3a, 0x72, 0xc6, 0xd8, 0xaa, 0x5e, 0x87, 0x2a, 0x0f, 0x08, 0x06, 0xf1, 0x98, 0xee, + 0x56, 0x6d, 0x94, 0xad, 0x77, 0x92, 0x0f, 0xbf, 0xe3, 0x51, 0xe5, 0xad, 0x87, 0x7d, 0x97, 0x7c, + 0x51, 0x80, 0xcb, 0xcc, 0x63, 0x6b, 0x5e, 0xb0, 0xed, 0x11, 0xdb, 0xdd, 0x97, 0xae, 0xbb, 0x01, + 0x97, 0x0e, 0x3d, 0x82, 0x76, 0x1d, 0x6c, 0x20, 0x92, 0xdc, 0x1f, 0x55, 0x31, 0xb1, 0x42, 0xc4, + 0xc6, 0xe8, 0x31, 0x7f, 0xf1, 0xac, 0xe6, 0x7f, 0xc8, 0xcd, 0xfa, 0x69, 0x11, 0x2a, 0xf7, 0x6d, + 0xe2, 0xc6, 0xee, 0xcc, 0x77, 0x61, 0xca, 0xf5, 0x08, 0x36, 0x4c, 0xaf, 0xdd, 0xb6, 0x49, 0x1b, + 0xbb, 0x84, 0xd6, 0x0e, 0xb4, 0x8c, 0x69, 0xf4, 0x59, 0x11, 0x3d, 0xc6, 0xf8, 0xb5, 0x88, 0x4d, + 0xaf, 0x52, 0x9c, 0xee, 0x77, 0xa8, 0xfe, 0x00, 0xa6, 0x62, 0x89, 0xa4, 0xc1, 0xf2, 0xcd, 0xe2, + 0xe9, 0xf3, 0xcd, 0x2a, 0x49, 0x0e, 0x3c, 0xec, 0xce, 0xc0, 0x50, 0x8d, 0x7c, 0x21, 0x82, 0xa0, + 0x0e, 0xe5, 0x23, 0x3e, 0x64, 0x58, 0x88, 0xa0, 0x61, 0x9a, 0x36, 0x02, 0x6a, 0x15, 0x11, 0xa4, + 0x97, 0x8e, 0xba, 0x1f, 0xda, 0xdf, 0x14, 0x98, 0x15, 0x93, 0x2b, 0xae, 0xd5, 0xec, 0xd8, 0x8e, + 0x25, 0x7d, 0x9f, 0xe5, 0x20, 0xe5, 0x1c, 0x1d, 0x64, 0x81, 0x8a, 0x3a, 0xa4, 0xe5, 0x05, 0xf6, + 0x87, 0xac, 0x5e, 0xe6, 0x8b, 0xe2, 0xe9, 0xcf, 0x73, 0x83, 0x48, 0x58, 0x89, 0x73, 0xb3, 0xa5, + 0x5d, 0x42, 0xe9, 0x21, 0xcd, 0x81, 0xb9, 0x9e, 0xf5, 0x09, 0x7b, 0x9e, 0x7f, 0x0f, 0x4c, 0xfb, + 0x4d, 0x11, 0x26, 0x59, 0x9c, 0x8f, 0x4e, 0x50, 0x1d, 0x26, 0xf6, 0x6c, 0x87, 0xe0, 0x00, 0xf3, + 0x96, 0xd6, 0x84, 0x1e, 0x7d, 0xab, 0x3f, 0x84, 0xf9, 0xd8, 0x45, 0x63, 0xda, 0x7b, 0xb6, 0x69, + 0x58, 0xd8, 0xf5, 0xda, 0xb6, 0x2b, 0x9a, 0x12, 0xfc, 0xac, 0xf5, 0x2b, 0xfc, 0x56, 0x29, 0x8f, + 0xfe, 0x68, 0xf7, 0x7e, 0x62, 0x50, 0xab, 0x71, 0x24, 0x75, 0x19, 0x1e, 0x91, 0xb2, 0xba, 0x2d, + 0x0a, 0xbe, 0xd7, 0x42, 0x76, 0xee, 0x26, 0xf4, 0x39, 0x41, 0xb0, 0x1a, 0xcd, 0xb3, 0x5d, 0x1b, + 0xaa, 0x2f, 0x40, 0x4d, 0xf2, 0x76, 0xdc, 0x5d, 0xcf, 0xb5, 0x68, 0x5a, 0x22, 0x58, 0x47, 0x18, + 0xeb, 0xac, 0x98, 0xbf, 0x27, 0xa7, 0x05, 0xe7, 0x75, 0xa8, 0x4a, 0x4e, 0xc7, 0x37, 0xdc, 0x3d, + 0x12, 0xb2, 0x0b, 0x69, 0x42, 0x97, 0x37, 0xec, 0x1d, 0xff, 0xad, 0x3d, 0x12, 0xaa, 0x4b, 0x70, + 0x59, 0xd2, 0xf9, 0x81, 0xe7, 0x7b, 0x21, 0x72, 0x38, 0xf5, 0x18, 0xa3, 0x9e, 0x16, 0x93, 0x9b, + 0x62, 0x8e, 0xf1, 0xac, 0xc0, 0x63, 0x92, 0xe7, 0x90, 0x5d, 0x02, 0x46, 0x80, 0x4d, 0x6c, 0xfb, + 0x44, 0xaa, 0x36, 0xce, 0x78, 0xeb, 0x82, 0x48, 0x5e, 0x14, 0x8c, 0x84, 0xab, 0xa7, 0xdd, 0x81, + 0x8a, 0xf4, 0x96, 0xd8, 0x13, 0xcb, 0xc9, 0x2c, 0xfe, 0xea, 0x20, 0x77, 0xba, 0xc8, 0xe1, 0xb5, + 0x1a, 0xcc, 0xbe, 0xd6, 0x42, 0xb6, 0xbb, 0x89, 0x02, 0xd4, 0xc6, 0x04, 0x07, 0x72, 0x13, 0x68, + 0x2d, 0x98, 0xeb, 0x99, 0x11, 0x02, 0xef, 0x02, 0xf8, 0xd1, 0x68, 0x5e, 0x1a, 0xce, 0xda, 0xd0, + 0x91, 0xd0, 0x34, 0x54, 0x0c, 0x40, 0x9b, 0x85, 0x99, 0xb5, 0xbb, 0xab, 0xbd, 0x1a, 0x58, 0x70, + 0x39, 0x35, 0x2e, 0xe4, 0xbf, 0x99, 0x21, 0xff, 0xe9, 0xaf, 0x96, 0xbf, 0xd6, 0xb6, 0x72, 0xa4, + 0xff, 0xa5, 0x00, 0x73, 0xf4, 0x62, 0x6e, 0x9e, 0xc4, 0x22, 0xbf, 0x38, 0x08, 0xf7, 0xa1, 0x9a, + 0xba, 0x4a, 0xc4, 0x59, 0x1f, 0xf6, 0x26, 0xa9, 0x24, 0x6f, 0x92, 0xac, 0xbe, 0x73, 0x31, 0xab, + 0xef, 0xfc, 0xb0, 0xdf, 0x08, 0x2e, 0xd4, 0x7a, 0x6d, 0x1b, 0x5d, 0x0d, 0x15, 0x96, 0xee, 0xb1, + 0xcc, 0x87, 0xda, 0xa7, 0xd7, 0x93, 0x49, 0x2d, 0xb6, 0x24, 0x35, 0x85, 0xd4, 0xb1, 0xe9, 0x05, + 0x96, 0x3e, 0x19, 0xc6, 0x07, 0x99, 0x33, 0xb7, 0x8e, 0x90, 0x9f, 0xe3, 0xcc, 0xf0, 0x08, 0xf9, + 0xe7, 0xe0, 0x4c, 0x0a, 0xf3, 0x0d, 0x74, 0xa6, 0x0e, 0xb5, 0x5e, 0xdb, 0x46, 0xff, 0x7f, 0x8c, + 0x50, 0xab, 0x08, 0x17, 0x6a, 0xb9, 0x2e, 0x3c, 0x42, 0xbe, 0xf0, 0x1c, 0xa3, 0xd7, 0x3e, 0x2b, + 0xc0, 0xec, 0x5b, 0x1d, 0xc7, 0xb1, 0xf7, 0x6c, 0x1c, 0x24, 0x2b, 0xe8, 0x35, 0xb8, 0xe8, 0xca, + 0x19, 0xe1, 0xa9, 0x85, 0x3e, 0x66, 0x8a, 0x90, 0xf4, 0x2e, 0xeb, 0x37, 0xc6, 0x3d, 0x8b, 0x30, + 0xd7, 0x63, 0x49, 0xe1, 0x9d, 0x19, 0x18, 0xe5, 0x55, 0x21, 0xbf, 0xcd, 0xf9, 0x87, 0xf6, 0xb1, + 0x02, 0xb5, 0x58, 0x56, 0xb0, 0x8e, 0xc2, 0x56, 0xb7, 0xa0, 0xbc, 0x0e, 0xe5, 0x90, 0xa0, 0x20, + 0x59, 0x90, 0xac, 0x5f, 0xd0, 0x4b, 0x6c, 0x94, 0x97, 0x23, 0x74, 0x59, 0x1a, 0x00, 0x76, 0xad, + 0x44, 0xa5, 0xba, 0xae, 0xe8, 0x17, 0xb1, 0x6b, 0x45, 0x34, 0xcd, 0x2a, 0x4c, 0x1a, 0x71, 0xb0, + 0xe6, 0x24, 0x94, 0x8c, 0x2e, 0x97, 0x76, 0x3f, 0xf1, 0x1f, 0x98, 0xd4, 0x43, 0xe8, 0xfe, 0x04, + 0x94, 0x33, 0x2a, 0xe7, 0xd2, 0x6e, 0xac, 0x5c, 0x9e, 0x83, 0x71, 0x72, 0x6c, 0xb4, 0x50, 0xd8, + 0x62, 0x0a, 0x94, 0xf5, 0x31, 0x72, 0x4c, 0x51, 0xb4, 0xdb, 0x89, 0x05, 0x36, 0x4f, 0xe8, 0xa0, + 0x5c, 0x60, 0x8c, 0x49, 0x49, 0x30, 0xed, 0x24, 0xb4, 0x91, 0x4c, 0x42, 0x9b, 0x57, 0xa0, 0x40, + 0x8e, 0x4f, 0x9b, 0x76, 0x15, 0xc8, 0xb1, 0xf6, 0x91, 0x02, 0xd3, 0xb1, 0xb1, 0xff, 0x88, 0xbd, + 0x7f, 0xaa, 0xc0, 0x4c, 0x52, 0x87, 0xb3, 0xdb, 0x5a, 0x58, 0xa6, 0x78, 0x7a, 0xcb, 0xbc, 0x00, + 0x8f, 0xc5, 0xf3, 0x6f, 0x1c, 0xd0, 0xfc, 0x92, 0xd8, 0x87, 0xb8, 0xaf, 0xc7, 0xfe, 0xa9, 0xc0, + 0x7c, 0x1e, 0xab, 0x58, 0xd9, 0x1d, 0x28, 0x92, 0x63, 0x19, 0x9e, 0x96, 0x87, 0xad, 0x05, 0x62, + 0x80, 0x14, 0x46, 0xac, 0xb5, 0x70, 0xea, 0xb5, 0xaa, 0xaf, 0x53, 0x75, 0x0e, 0x4f, 0x59, 0x3b, + 0xd2, 0x08, 0x41, 0xf5, 0x38, 0xd4, 0xde, 0x87, 0x49, 0xd1, 0x05, 0x8a, 0x96, 0x59, 0x62, 0x09, + 0x4b, 0xc0, 0x62, 0xec, 0x69, 0x2e, 0x54, 0x70, 0xa3, 0xdf, 0xda, 0xef, 0x14, 0x98, 0x4d, 0xf7, + 0x2c, 0xbe, 0x0e, 0x41, 0xe7, 0xfc, 0x8f, 0x94, 0xf6, 0xaf, 0x22, 0x4c, 0x67, 0x88, 0xcc, 0x4a, + 0xe7, 0x94, 0x73, 0x49, 0xe7, 0xbe, 0x0d, 0x23, 0x2c, 0x81, 0xe1, 0x7a, 0x3f, 0xd9, 0xef, 0x96, + 0xa2, 0x1a, 0x31, 0x86, 0xaf, 0xa1, 0x9f, 0x93, 0xb8, 0x35, 0x47, 0x4e, 0x7f, 0x6b, 0x5e, 0x83, + 0x0a, 0x0f, 0x02, 0x86, 0x19, 0x60, 0x44, 0x70, 0xd4, 0x95, 0xe3, 0xa3, 0xaf, 0xf1, 0x41, 0x1a, + 0xb6, 0x04, 0x19, 0xbf, 0x60, 0xc6, 0x64, 0xd8, 0xe2, 0xa3, 0xac, 0xef, 0x48, 0xc3, 0x56, 0x1d, + 0x26, 0x7c, 0x2f, 0xb4, 0xd9, 0xed, 0x3b, 0xce, 0x80, 0xa2, 0x6f, 0xf5, 0x55, 0x18, 0x0b, 0xbd, + 0x4e, 0x60, 0xe2, 0xda, 0x44, 0xb6, 0xbe, 0xc9, 0x54, 0x9e, 0x9a, 0x6f, 0x8b, 0xd1, 0xeb, 0x82, + 0x8f, 0x05, 0xbc, 0xb8, 0x1a, 0xda, 0x5f, 0x8b, 0x00, 0xdd, 0x5c, 0x23, 0x2b, 0xf5, 0x53, 0xce, + 0x25, 0xf5, 0x7b, 0x59, 0xa4, 0x3d, 0xdc, 0xf1, 0xff, 0x9f, 0x42, 0xb3, 0xf0, 0x71, 0x32, 0xf5, + 0xd9, 0x74, 0x90, 0xed, 0x12, 0x7c, 0x4c, 0x78, 0xf6, 0x93, 0xb0, 0x4a, 0x31, 0x65, 0x95, 0xf3, + 0x72, 0xe4, 0x26, 0x94, 0xf8, 0x5b, 0x07, 0xde, 0xab, 0x18, 0xcd, 0x0c, 0x5a, 0x09, 0x4d, 0x9b, + 0x88, 0x98, 0x2d, 0xaa, 0x2e, 0xff, 0xff, 0x9e, 0x75, 0x29, 0xc0, 0x8b, 0x7e, 0xab, 0x37, 0xba, + 0x5b, 0xc3, 0x41, 0x76, 0x1b, 0x5b, 0x91, 0xd7, 0xe5, 0xe6, 0xe0, 0xc3, 0x3c, 0xeb, 0x91, 0xbe, + 0x1d, 0x3f, 0xa5, 0x6f, 0x2f, 0x41, 0xd5, 0x48, 0x8a, 0x5b, 0xfa, 0xd3, 0x34, 0x4c, 0xd3, 0x20, + 0xb8, 0x19, 0x78, 0xc4, 0x33, 0x3d, 0x67, 0x0b, 0x07, 0x87, 0xb6, 0x89, 0xd5, 0xfb, 0x30, 0xc6, + 0x13, 0x1f, 0x35, 0x37, 0xbb, 0x4a, 0xa4, 0x98, 0xf5, 0xeb, 0xfd, 0xc8, 0x44, 0xb4, 0x3b, 0x80, + 0x72, 0xbc, 0xc5, 0xaf, 0x3e, 0xfd, 0xd5, 0x7c, 0x89, 0xbf, 0x37, 0xea, 0xdf, 0x1a, 0x8c, 0x98, + 0x8b, 0xba, 0xa9, 0xa8, 0xdb, 0x30, 0xca, 0x82, 0xae, 0x7a, 0x35, 0x8f, 0x31, 0xde, 0xf9, 0xaf, + 0x5f, 0xeb, 0x43, 0x15, 0xe1, 0x7e, 0x00, 0x95, 0x64, 0x30, 0x57, 0x9f, 0xf9, 0x4a, 0xd6, 0x74, + 0xa3, 0xba, 0xde, 0x18, 0x94, 0x3c, 0x12, 0xf9, 0x1e, 0x8c, 0x8b, 0x46, 0x96, 0x9a, 0x6b, 0xea, + 0x64, 0xf7, 0xb6, 0xfe, 0x54, 0x5f, 0x3a, 0xe1, 0x93, 0x20, 0x6a, 0x36, 0xca, 0x26, 0x99, 0xda, + 0xe8, 0xc3, 0x9b, 0xea, 0x16, 0xd6, 0x17, 0x07, 0xa6, 0x17, 0x32, 0xdf, 0x85, 0x31, 0xde, 0x7b, + 0xc9, 0xdf, 0x60, 0x89, 0x4e, 0x5a, 0xfe, 0x06, 0x4b, 0xb6, 0x70, 0x6e, 0x2a, 0x74, 0x39, 0xa9, + 0x1e, 0x49, 0xfe, 0x72, 0xb2, 0x3b, 0x36, 0xf9, 0xcb, 0xc9, 0xeb, 0xe3, 0x38, 0x30, 0x99, 0x68, + 0xb0, 0xa8, 0xb9, 0x5b, 0x35, 0xab, 0x3f, 0x53, 0x7f, 0x66, 0x40, 0x6a, 0x21, 0xcd, 0x83, 0x4a, + 0xf2, 0xb1, 0x43, 0xfe, 0xfe, 0xcb, 0x7c, 0x7f, 0x91, 0xbf, 0xff, 0x72, 0xde, 0x50, 0x78, 0x50, + 0x49, 0xbe, 0x52, 0xc8, 0x17, 0x98, 0xf9, 0x52, 0x22, 0x5f, 0x60, 0xce, 0xe3, 0x87, 0x0e, 0x4c, + 0xa5, 0x9f, 0x09, 0xa8, 0xb9, 0x4e, 0xc9, 0x79, 0xbd, 0x50, 0xbf, 0x39, 0x38, 0x83, 0x10, 0x7b, + 0x04, 0x53, 0xe9, 0x7f, 0xf8, 0xf3, 0xc5, 0xe6, 0xbc, 0x34, 0xc8, 0x17, 0x9b, 0xf7, 0x78, 0xe0, + 0xa6, 0x42, 0xd7, 0x9b, 0xee, 0xee, 0xe4, 0x0b, 0xce, 0xe9, 0xb1, 0xe5, 0x0b, 0xce, 0x6d, 0x1c, + 0x75, 0x60, 0x2a, 0xdd, 0x87, 0xc8, 0x17, 0x9b, 0xd3, 0x0d, 0xca, 0x17, 0x9b, 0xdb, 0xe2, 0x08, + 0xa0, 0x9a, 0xaa, 0xaf, 0xf3, 0x4f, 0x68, 0x76, 0x4b, 0x23, 0xff, 0x84, 0xe6, 0x15, 0xee, 0x1f, + 0xc2, 0xa5, 0x9e, 0xca, 0x58, 0xbd, 0x39, 0xc0, 0x7b, 0xbf, 0x44, 0x31, 0x5f, 0xbf, 0x35, 0x04, + 0x47, 0xe4, 0xdd, 0xe3, 0x84, 0x6c, 0x5e, 0x07, 0x0f, 0x24, 0x3b, 0x51, 0x67, 0x0f, 0x24, 0x3b, + 0x55, 0x64, 0x1f, 0x40, 0x39, 0x5e, 0x9e, 0xe6, 0x5f, 0xb7, 0x19, 0x85, 0x74, 0xfe, 0x75, 0x9b, + 0x55, 0xf1, 0xde, 0x54, 0xd4, 0x1f, 0x2b, 0x30, 0x9b, 0x5d, 0xeb, 0xa9, 0xcf, 0x0d, 0xf2, 0xb0, + 0xb2, 0xa7, 0x4e, 0xad, 0x3f, 0x3f, 0x2c, 0x9b, 0x58, 0xf6, 0x8f, 0x40, 0xed, 0x7d, 0xdf, 0xa6, + 0xde, 0x1a, 0xfa, 0x75, 0x67, 0x7d, 0x69, 0x18, 0x16, 0x21, 0xfc, 0x23, 0x05, 0x66, 0xb2, 0x5e, + 0x38, 0xab, 0xb7, 0x73, 0x03, 0x43, 0xfe, 0x53, 0xed, 0xfa, 0xb3, 0xc3, 0x31, 0x71, 0x1d, 0x96, + 0xfc, 0xee, 0x53, 0x1f, 0x99, 0xd2, 0xbd, 0x0f, 0x13, 0x72, 0x48, 0x7d, 0xaa, 0x5f, 0xcb, 0x4c, + 0x4a, 0x5f, 0xe8, 0x4f, 0xc8, 0x25, 0x36, 0x3f, 0x2d, 0x7c, 0xf6, 0x60, 0x5e, 0xf9, 0xfc, 0xc1, + 0xbc, 0xf2, 0xf7, 0x07, 0xf3, 0xca, 0x4f, 0xbe, 0x9c, 0xbf, 0xf0, 0xf9, 0x97, 0xf3, 0x17, 0xfe, + 0xfc, 0xe5, 0xfc, 0x05, 0xa8, 0x9b, 0x5e, 0x3b, 0x07, 0xa7, 0x79, 0x31, 0xca, 0x3e, 0x37, 0x95, + 0xf7, 0xde, 0xde, 0xb7, 0x49, 0xab, 0xb3, 0xdb, 0x30, 0xbd, 0xf6, 0xa2, 0xe9, 0x85, 0x6d, 0x2f, + 0x5c, 0x0c, 0xb0, 0x83, 0x4e, 0x70, 0xb0, 0x78, 0xb8, 0x14, 0xfd, 0x64, 0x89, 0x6e, 0xb8, 0x98, + 0xfd, 0xea, 0xff, 0x45, 0xfa, 0x25, 0x3f, 0x7e, 0x59, 0x28, 0x6e, 0x6e, 0x7f, 0xef, 0xd7, 0x85, + 0xd9, 0x4d, 0x29, 0x9c, 0x4a, 0x6b, 0x6c, 0x8b, 0xe9, 0x3f, 0x74, 0x27, 0x76, 0xe8, 0xc4, 0x8e, + 0x9c, 0x78, 0x50, 0xd0, 0xb2, 0x27, 0x76, 0xde, 0xd8, 0x6c, 0xde, 0xc5, 0x04, 0xd1, 0xfc, 0xff, + 0x1f, 0x85, 0x9a, 0x24, 0x5a, 0x5e, 0xa6, 0x54, 0xcb, 0xcb, 0x92, 0x6c, 0x77, 0x8c, 0x3d, 0xc3, + 0xbf, 0xfd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbd, 0x21, 0xb6, 0x6c, 0x9b, 0x30, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -7483,6 +7492,18 @@ func (m *TransactionPerspectiveResponse) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.Txv != nil { + { + size, err := m.Txv.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } if m.Tx != nil { { size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) @@ -8894,6 +8915,10 @@ func (m *TransactionPerspectiveResponse) Size() (n int) { l = m.Tx.Size() n += 1 + l + sovView(uint64(l)) } + if m.Txv != nil { + l = m.Txv.Size() + n += 1 + l + sovView(uint64(l)) + } return n } @@ -14563,6 +14588,42 @@ func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Txv", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Txv == nil { + m.Txv = &v1alpha1.TransactionView{} + } + if err := m.Txv.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index 9c2cf5427..725d881a7 100755 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -21,6 +21,7 @@ buf generate --template proto/buf.gen.penumbra.yaml buf.build/penumbra-zone/penu # # Note: Proto files are suffixed with the current binary version. -rm -rf github.com/cosmos/relayer/v2/relayer/chains/penumbra/client +rm -r github.com/cosmos/relayer/v2/relayer/chains/penumbra/client +rm -r github.com/cosmos/relayer/v2/relayer/chains/penumbra/narsil cp -r github.com/cosmos/relayer/v2/* ./ rm -rf github.com From e594d2a0c9f54c3e7f5c25cd6372a904bba5214f Mon Sep 17 00:00:00 2001 From: Justin Tieri <37750742+jtieri@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:32:20 -0500 Subject: [PATCH 25/46] chore: add path name to logs in message processor (#1171) --- relayer/processor/message_processor.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/relayer/processor/message_processor.go b/relayer/processor/message_processor.go index 55b1a9adf..7a4f3fe1c 100644 --- a/relayer/processor/message_processor.go +++ b/relayer/processor/message_processor.go @@ -332,6 +332,7 @@ func (mp *messageProcessor) sendClientUpdate( if err := dst.chainProvider.SendMessagesToMempool(broadcastCtx, msgs, mp.memo, ctx, nil); err != nil { mp.log.Error("Error sending client update message", + zap.String("path_name", src.info.PathName), zap.String("src_chain_id", src.info.ChainID), zap.String("dst_chain_id", dst.info.ChainID), zap.String("src_client_id", src.info.ClientID), @@ -388,6 +389,7 @@ func (mp *messageProcessor) sendBatchMessages( if err := dst.chainProvider.SendMessagesToMempool(broadcastCtx, msgs, mp.memo, ctx, callback); err != nil { errFields := []zapcore.Field{ + zap.String("path_name", src.info.PathName), zap.String("src_chain_id", src.info.ChainID), zap.String("dst_chain_id", dst.info.ChainID), zap.String("src_client_id", src.info.ClientID), @@ -442,6 +444,7 @@ func (mp *messageProcessor) sendSingleMessage( err := dst.chainProvider.SendMessagesToMempool(broadcastCtx, msgs, mp.memo, ctx, callback) if err != nil { errFields := []zapcore.Field{ + zap.String("path_name", src.info.PathName), zap.String("src_chain_id", src.info.ChainID), zap.String("dst_chain_id", dst.info.ChainID), zap.String("src_client_id", src.info.ClientID), From 4aa0d3c025d57bc2edfc8b0a5858cb68622e38dc Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Tue, 18 Apr 2023 17:46:12 -0600 Subject: [PATCH 26/46] Fix multiple conn open init (#1173) --- relayer/processor/path_end_runtime.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index 9796ade1c..f7c9ffa3f 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -525,7 +525,7 @@ func (pathEnd *pathEndRuntime) removePacketRetention( func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBCMessage, counterparty *pathEndRuntime) bool { eventType := message.eventType k := ConnectionInfoConnectionKey(message.info) - if eventType != chantypes.EventTypeChannelOpenInit { + if eventType != conntypes.EventTypeConnectionOpenInit { k = k.Counterparty() } if message.info.Height >= counterparty.latestBlock.Height { From 591c136dcb159601d723e87423ca3995c6bbd474 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Fri, 21 Apr 2023 22:03:25 +0800 Subject: [PATCH 27/46] allow register with extra_codecs (#1175) --- cregistry/chain_info.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cregistry/chain_info.go b/cregistry/chain_info.go index 509b13271..20a51d484 100644 --- a/cregistry/chain_info.go +++ b/cregistry/chain_info.go @@ -83,6 +83,7 @@ type ChainInfo struct { Provider string `json:"provider"` } `json:"rest"` } `json:"apis"` + ExtraCodecs []string `json:"extra_codecs"` } // NewChainInfo returns a ChainInfo that is uninitialized other than the provided zap.Logger. @@ -266,5 +267,6 @@ func (c ChainInfo) GetChainConfig(ctx context.Context) (*cosmos.CosmosProviderCo SignModeStr: "direct", Slip44: c.Slip44, SigningAlgorithm: c.SigningAlgorithm, + ExtraCodecs: c.ExtraCodecs, }, nil } From 3a14f8c511cc950d393650b00d1a7236b6049a9c Mon Sep 17 00:00:00 2001 From: Cosmos-Harry <110472914+Cosmos-Harry@users.noreply.github.com> Date: Mon, 24 Apr 2023 22:26:26 -0400 Subject: [PATCH 28/46] Harry/fee middleware (#1174) * Register Counterparty relayer cmd and fee middleware test * debugging the command * debugging and finalizing the fee_middleware_test. * debugging and finalizing the fee_middleware_test. * merged with updated repo * clear out some commanded code * nits and suggestions post review * more nits * added one val no fullnode as chainspec --------- Co-authored-by: Harry --- cmd/config.go | 4 +- cmd/tx.go | 37 +++ go.work | 6 + go.work.sum | 442 ++++++++++++++++++++++++++ interchaintest/fee_middleware_test.go | 202 ++++++++++++ interchaintest/relayer.go | 17 +- internal/relayertest/system.go | 5 +- relayer/chains/cosmos/codec.go | 2 + relayer/chains/cosmos/tx.go | 7 + relayer/chains/penumbra/tx.go | 7 +- relayer/provider/provider.go | 3 + 11 files changed, 712 insertions(+), 20 deletions(-) create mode 100644 go.work create mode 100644 go.work.sum create mode 100644 interchaintest/fee_middleware_test.go diff --git a/cmd/config.go b/cmd/config.go index 1487d27b3..aca1061bc 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -28,7 +28,7 @@ import ( "reflect" "strings" "time" - + "github.com/cosmos/relayer/v2/relayer" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" "github.com/cosmos/relayer/v2/relayer/chains/penumbra" @@ -668,4 +668,4 @@ func (c *Config) ValidateConnection(ctx context.Context, chain *relayer.Chain, h } return nil -} +} \ No newline at end of file diff --git a/cmd/tx.go b/cmd/tx.go index 1913fd34f..6e9244527 100644 --- a/cmd/tx.go +++ b/cmd/tx.go @@ -49,6 +49,7 @@ Most of these commands take a [path] argument. Make sure: createChannelCmd(a), closeChannelCmd(a), lineBreakCommand(), + registerCounterpartyCmd(a), ) return cmd @@ -1037,3 +1038,39 @@ func ensureKeysExist(chains map[string]*relayer.Chain) error { return nil } + +// MsgRegisterCounterpartyPayee registers the counterparty_payee +func registerCounterpartyCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "register-counterparty chain_name channel_id port_id relay_addr counterparty_payee", + Aliases: []string{"reg-cpt"}, + Short: "register the counterparty relayer address for ics-29 fee middleware", + Args: withUsage(cobra.MatchAll(cobra.ExactArgs(5))), + Example: strings.TrimSpace(fmt.Sprintf(` +$ %s register-counterparty channel-1 transfer cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk juno1g0ny488ws4064mjjxk4keenwfjrthn503ngjxd +$ %s reg-cpt channel-1 cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk juno1g0ny488ws4064mjjxk4keenwfjrthn503ngjxd`, + appName, appName)), + RunE: func(cmd *cobra.Command, args []string) error { + + chain, ok := a.config.Chains[args[0]] + if !ok { + return errChainNotFound(args[0]) + } + + channelID := args[1] + portID := args[2] + + relayerAddr := args[3] + counterpartyPayee := args[4] + + msg, err := chain.ChainProvider.MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee) + if err != nil { + return err + } + res, success, err := chain.ChainProvider.SendMessage(cmd.Context(), msg, "") + fmt.Println(res, success, err) + return nil + }, + } + return cmd +} diff --git a/go.work b/go.work new file mode 100644 index 000000000..0c68d3166 --- /dev/null +++ b/go.work @@ -0,0 +1,6 @@ +go 1.20 + +use ( +./interchaintest +. +) \ No newline at end of file diff --git a/go.work.sum b/go.work.sum new file mode 100644 index 000000000..e6589b709 --- /dev/null +++ b/go.work.sum @@ -0,0 +1,442 @@ +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= +cosmossdk.io/core v0.3.2/go.mod h1:CO7vbe+evrBvHc0setFHL/u7nlY7HJGzdRSBkT/sirc= +cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= +github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677/go.mod h1:890yq1fUb9b6dGNwssgeUO5vQV9qfXnCPxAJhBQfXw0= +github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= +github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= +github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= +github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.mod h1:c8IO23vgNxueCCJlSI9awQtcxsvc+buzaeThB85qfBU= +github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU= +github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= +github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= +github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/xUS4JuQn1P4cM= +github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= +github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/hashicorp/consul/api v1.18.0/go.mod h1:owRRGJ9M5xReDC5nfT8FTJrNAPbT4NM6p/k+d03q2v4= +github.com/hashicorp/consul/sdk v0.13.0/go.mod h1:0hs/l5fOVhJy/VdcoaNqUSi2AUs95eF5WKtv+EYIQqE= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= +github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= +github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= +github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= +github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= +github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= +github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= +github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris/v12 v12.0.1/go.mod h1:udK4vLQKkdDqMGJJVd/msuMtN6hpYJhg/lSzuxjhO+U= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.10/go.mod h1:ZYmJC07hQPW67eKuzlfY7SO3bC0mw83A3j6im82hfqw= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= +github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= +github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= +github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= +github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= +github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/crypt v0.9.0/go.mod h1:RnH7sEhxfdnPm1z+XMgSLjWTEIjyK4z2dw6+4vHTMuo= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= +github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/zondax/ledger-go v0.14.0/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +go.etcd.io/etcd/api/v3 v3.5.6/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= +go.etcd.io/etcd/client/pkg/v3 v3.5.6/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= +go.etcd.io/etcd/client/v2 v2.305.6/go.mod h1:BHha8XJGe8vCIBfWBpbBLVZ4QjOIlfoouvOwydu63E0= +go.etcd.io/etcd/client/v3 v3.5.6/go.mod h1:f6GRinRMCsFVv9Ht42EyY7nfsVGwrNO0WEoS2pRKzQk= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/exp v0.0.0-20221019170559-20944726eadf/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210909193231-528a39cd75f3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230202175211-008b39050e57/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/interchaintest/fee_middleware_test.go b/interchaintest/fee_middleware_test.go new file mode 100644 index 000000000..71d65d616 --- /dev/null +++ b/interchaintest/fee_middleware_test.go @@ -0,0 +1,202 @@ +package interchaintest_test + +import ( + "context" + "fmt" + "testing" + + transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + relayertest "github.com/cosmos/relayer/v2/interchaintest" + interchaintest "github.com/strangelove-ventures/interchaintest/v7" + "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" + ibc "github.com/strangelove-ventures/interchaintest/v7/ibc" + "github.com/strangelove-ventures/interchaintest/v7/testreporter" + "github.com/strangelove-ventures/interchaintest/v7/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +func TestScenarioFeeMiddleware(t *testing.T) { + if testing.Short() { + t.Skip() + } + + t.Parallel() + + nv := 1 + nf := 0 + + // Get both chains + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + {Name: "juno", ChainName: "chaina", Version: "v13.0.0", NumValidators: &nv, NumFullNodes: &nf, ChainConfig: ibc.ChainConfig{ChainID: "chaina", GasPrices: "0.0ujuno"}}, + {Name: "juno", ChainName: "chainb", Version: "v13.0.0", NumValidators: &nv, NumFullNodes: &nf, ChainConfig: ibc.ChainConfig{ChainID: "chainb", GasPrices: "0.0ujuno"}}}, + ) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + chainA, chainB := chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain) + + ctx := context.Background() + client, network := interchaintest.DockerSetup(t) + + rf := relayertest.NewRelayerFactory(relayertest.RelayerConfig{InitialBlockHistory: 50}) + r := rf.Build(t, client, network) + + const pathChainAChainB = "chainA-chainB" + + // Build the network + ic := interchaintest.NewInterchain(). + AddChain(chainA). + AddChain(chainB). + AddRelayer(r, "relayer"). + AddLink(interchaintest.InterchainLink{ + Chain1: chainA, + Chain2: chainB, + Relayer: r, + Path: pathChainAChainB, + CreateChannelOpts: ibc.CreateChannelOptions{ + SourcePortName: "transfer", + DestPortName: "transfer", + Order: ibc.Unordered, + Version: "{\"fee_version\":\"ics29-1\",\"app_version\":\"ics20-1\"}", + }, + CreateClientOpts: ibc.DefaultClientOpts(), + }) + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + SkipPathCreation: false, + })) + + t.Cleanup(func() { + _ = ic.Close() + }) + + err = testutil.WaitForBlocks(ctx, 10, chainA, chainB) + require.NoError(t, err) + + // ChainID of ChainA + chainIDA := chainA.Config().ChainID + + // Channel of ChainA + chA, err := r.GetChannels(ctx, eRep, chainIDA) + require.NoError(t, err) + channelA := chA[0] + + // Fund a user account on chain1 and chain2 + const userFunds = int64(1_000_000_000_000) + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, chainA, chainB) + userA := users[0] + userAddressA := userA.FormattedAddress() + userB := users[1] + userAddressB := userB.FormattedAddress() + + // Addresses of both the chains + walletA, _ := r.GetWallet(chainA.Config().ChainID) + rlyAddressA := walletA.FormattedAddress() + + walletB, _ := r.GetWallet(chainB.Config().ChainID) + rlyAddressB := walletB.FormattedAddress() + + // register CounterpartyPayee + cmd := []string{ + "tx", "register-counterparty", + chainA.Config().Name, + channelA.ChannelID, + "transfer", + rlyAddressA, + rlyAddressB, + } + _ = r.Exec(ctx, eRep, cmd, nil) + require.NoError(t, err) + + // Query the relayer CounterpartyPayee on a given channel + query := []string{ + chainA.Config().Bin, "query", "ibc-fee", "counterparty-payee", channelA.ChannelID, rlyAddressA, + "--chain-id", chainIDA, + "--node", chainA.GetRPCAddress(), + "--home", chainA.HomeDir(), + "--trace", + } + _, _, err = chainA.Exec(ctx, query, nil) + require.NoError(t, err) + + // Get initial account balances + userAOrigBal, err := chainA.GetBalance(ctx, userAddressA, chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, userFunds, userAOrigBal) + + userBOrigBal, err := chainB.GetBalance(ctx, userAddressB, chainB.Config().Denom) + require.NoError(t, err) + require.Equal(t, userFunds, userBOrigBal) + + rlyAOrigBal, err := chainA.GetBalance(ctx, rlyAddressA, chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, userFunds, rlyAOrigBal) + + rlyBOrigBal, err := chainB.GetBalance(ctx, rlyAddressB, chainB.Config().Denom) + require.NoError(t, err) + require.Equal(t, userFunds, rlyBOrigBal) + + // send tx + const txAmount = 1000 + transfer := ibc.WalletAmount{Address: userAddressB, Denom: chainA.Config().Denom, Amount: txAmount} + _, err = chainA.SendIBCTransfer(ctx, channelA.ChannelID, userAddressA, transfer, ibc.TransferOptions{}) + require.NoError(t, err) + + // Incentivizing async packet by returning MsgPayPacketFeeAsync + packetFeeAsync := []string{ + chainA.Config().Bin, "tx", "ibc-fee", "pay-packet-fee", "transfer", channelA.ChannelID, "1", + "--recv-fee", fmt.Sprintf("1000%s", chainA.Config().Denom), + "--ack-fee", fmt.Sprintf("1000%s", chainA.Config().Denom), + "--timeout-fee", fmt.Sprintf("1000%s", chainA.Config().Denom), + "--chain-id", chainIDA, + "--node", chainA.GetRPCAddress(), + "--from", userA.FormattedAddress(), + "--keyring-backend", "test", + "--gas", "400000", + "--yes", + "--home", chainA.HomeDir(), + } + _, _, err = chainA.Exec(ctx, packetFeeAsync, nil) + require.NoError(t, err) + + // start the relayer + err = r.StartRelayer(ctx, eRep, pathChainAChainB) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) + + // Wait for relayer to run + err = testutil.WaitForBlocks(ctx, 5, chainA, chainB) + require.NoError(t, err) + + // Assigning denom + chainATokenDenom := transfertypes.GetPrefixedDenom(channelA.PortID, channelA.ChannelID, chainA.Config().Denom) + chainADenomTrace := transfertypes.ParseDenomTrace(chainATokenDenom) + + // Get balances after the fees + chainABal, err := chainA.GetBalance(ctx, userAddressA, chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, userAOrigBal-(txAmount+1000), chainABal) + + chainBBal, err := chainB.GetBalance(ctx, userAddressB, chainADenomTrace.IBCDenom()) + require.NoError(t, err) + require.Equal(t, int64(txAmount), chainBBal) + + rlyABal, err := chainA.GetBalance(ctx, rlyAddressA, chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, rlyAOrigBal+1000, rlyABal) +} diff --git a/interchaintest/relayer.go b/interchaintest/relayer.go index a57c2add3..1283ac9a8 100644 --- a/interchaintest/relayer.go +++ b/interchaintest/relayer.go @@ -9,7 +9,6 @@ import ( "testing" "github.com/cosmos/cosmos-sdk/crypto/keyring" - "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/relayer/v2/cmd" "github.com/cosmos/relayer/v2/internal/relayertest" "github.com/cosmos/relayer/v2/relayer" @@ -17,7 +16,7 @@ import ( "github.com/cosmos/relayer/v2/relayer/provider" interchaintestcosmos "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" "github.com/strangelove-ventures/interchaintest/v7/ibc" - "github.com/stretchr/testify/require" + "github.com/strangelove-ventures/interchaintest/v7/relayer/rly" "go.uber.org/zap" "go.uber.org/zap/zaptest" ) @@ -338,26 +337,14 @@ func (r *Relayer) GetWallet(chainID string) (ibc.Wallet, bool) { } address := strings.TrimSpace(res.Stdout.String()) - var chainCfg ibc.ChainConfig var keyName string config := r.sys().MustGetConfig(r.t) for _, v := range config.ProviderConfigs { if c, ok := v.Value.(cosmos.CosmosProviderConfig); ok { if c.ChainID == chainID { keyName = c.Key - chainCfg = ibc.ChainConfig{ - Type: v.Type, - Name: c.ChainName, - ChainID: c.ChainID, - Bech32Prefix: c.AccountPrefix, - GasPrices: c.GasPrices, - GasAdjustment: c.GasAdjustment, - } } } } - - addressBz, err := types.GetFromBech32(address, chainCfg.Bech32Prefix) - require.NoError(r.t, err, "failed to decode bech32 wallet") - return interchaintestcosmos.NewWallet(keyName, addressBz, "", chainCfg), true + return rly.NewWallet(keyName, address, ""), true } diff --git a/internal/relayertest/system.go b/internal/relayertest/system.go index 0e1641b34..6b917b653 100644 --- a/internal/relayertest/system.go +++ b/internal/relayertest/system.go @@ -15,6 +15,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/zap" "go.uber.org/zap/zaptest" + "gopkg.in/yaml.v3" ) // System is a system under test. @@ -129,10 +130,10 @@ func (s *System) MustAddChain(t *testing.T, chainName string, pcw cmd.ProviderCo func (s *System) MustGetConfig(t *testing.T) (config cmd.ConfigInputWrapper) { t.Helper() - configBz, err := os.ReadFile(filepath.Join(s.HomeDir, "config.yaml")) + configBz, err := os.ReadFile(filepath.Join(s.HomeDir, "config", "config.yaml")) require.NoError(t, err, "failed to read config file") - err = json.Unmarshal(configBz, &config) + err = yaml.Unmarshal(configBz, &config) require.NoError(t, err, "failed to unmarshal config file") return config diff --git a/relayer/chains/cosmos/codec.go b/relayer/chains/cosmos/codec.go index 38f6d3d72..0fcfbd389 100644 --- a/relayer/chains/cosmos/codec.go +++ b/relayer/chains/cosmos/codec.go @@ -23,6 +23,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking" "github.com/cosmos/cosmos-sdk/x/upgrade" upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" + ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee" "github.com/cosmos/ibc-go/v7/modules/apps/transfer" ibc "github.com/cosmos/ibc-go/v7/modules/core" @@ -58,6 +59,7 @@ var ModuleBasics = []module.AppModuleBasic{ ibc.AppModuleBasic{}, cosmosmodule.AppModuleBasic{}, stride.AppModuleBasic{}, + ibcfee.AppModuleBasic{}, } type Codec struct { diff --git a/relayer/chains/cosmos/tx.go b/relayer/chains/cosmos/tx.go index f62c11602..ea1dc210a 100644 --- a/relayer/chains/cosmos/tx.go +++ b/relayer/chains/cosmos/tx.go @@ -25,6 +25,7 @@ import ( "github.com/cosmos/cosmos-sdk/store/rootmulti" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/cosmos/cosmos-sdk/types/tx/signing" transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" @@ -1272,6 +1273,12 @@ func (cc *CosmosProvider) UpdateFeesSpent(chain, key string, fees sdk.Coins) { } } +// MsgRegisterCounterpartyPayee creates an sdk.Msg to broadcast the counterparty address +func (cc *CosmosProvider) MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee string) (provider.RelayerMessage,error) { + msg := feetypes.NewMsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee) + return NewCosmosMessage(msg),nil +} + // PrepareFactory mutates the tx factory with the appropriate account number, sequence number, and min gas settings. func (cc *CosmosProvider) PrepareFactory(txf tx.Factory) (tx.Factory, error) { var ( diff --git a/relayer/chains/penumbra/tx.go b/relayer/chains/penumbra/tx.go index 2dc9e6db9..0069f6151 100644 --- a/relayer/chains/penumbra/tx.go +++ b/relayer/chains/penumbra/tx.go @@ -1352,7 +1352,6 @@ func (cc *PenumbraProvider) MsgConnectionOpenTry(msgOpenInit provider.Connection return cosmos.NewCosmosMessage(msg), nil } - func (cc *PenumbraProvider) MsgConnectionOpenAck(msgOpenTry provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { signer, err := cc.Address() if err != nil { @@ -2233,3 +2232,9 @@ func (cc *PenumbraProvider) SendMessagesToMempool(ctx context.Context, msgs []pr cc.log.Debug("Received response from sending messages", zap.Any("response", sendRsp), zap.Error(err)) return err } + +// MsgRegisterCounterpartyPayee creates an sdk.Msg to broadcast the counterparty address +func (cc *PenumbraProvider) MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee string) (provider.RelayerMessage, error) { + //TODO implement me + panic("implement me") +} diff --git a/relayer/provider/provider.go b/relayer/provider/provider.go index 362e9e945..ec6239c8c 100644 --- a/relayer/provider/provider.go +++ b/relayer/provider/provider.go @@ -394,6 +394,9 @@ type ChainProvider interface { asyncCallback func(*RelayerTxResponse, error), ) error + MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayeeAddr string) (RelayerMessage,error) + + ChainName() string ChainId() string Type() string From 1ee79e56a5490539d220f8629c021d33d1e627c3 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Thu, 27 Apr 2023 03:27:11 +0800 Subject: [PATCH 29/46] fix: nil receiver initiate for path (#1177) * fix nil receiver initiate for path ensure path get written to config * add change doc --- CHANGELOG.md | 1 + cmd/appstate.go | 4 ++-- cmd/config.go | 8 ++++++-- cmd/paths.go | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 315deb42d..5752bf0fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ * [\#466](https://github.com/cosmos/relayer/pull/466) Docs cleanup. * [\#506](https://github.com/cosmos/relayer/pull/506) Fix Timeout Handling on Relayer restart * [\#940](https://github.com/cosmos/relayer/pull/940) Add min-gas-amount parameter for chain configs, to workaround gas estimation failure. +* [\#1177](https://github.com/cosmos/relayer/pull/1177) Avoid panic due to nil map when add new path and ensure path get written to config. ## v0.9.3 diff --git a/cmd/appstate.go b/cmd/appstate.go index 4e0e057e8..d6378bb8a 100644 --- a/cmd/appstate.go +++ b/cmd/appstate.go @@ -94,7 +94,7 @@ func (a *appState) addPathFromFile(ctx context.Context, stderr io.Writer, file, return err } - return a.config.Paths.Add(name, p) + return a.config.AddPath(name, p) } // addPathFromUserInput manually prompts the user to specify all the path details. @@ -169,7 +169,7 @@ func (a *appState) addPathFromUserInput( return err } - return a.config.Paths.Add(name, path) + return a.config.AddPath(name, path) } func (a *appState) performConfigLockingOperation(ctx context.Context, operation func() error) error { diff --git a/cmd/config.go b/cmd/config.go index aca1061bc..5266a4685 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -28,7 +28,7 @@ import ( "reflect" "strings" "time" - + "github.com/cosmos/relayer/v2/relayer" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" "github.com/cosmos/relayer/v2/relayer/chains/penumbra" @@ -545,6 +545,10 @@ func checkPathEndConflict(pathID, direction string, oldPe, newPe *relayer.PathEn // AddPath adds an additional path to the config func (c *Config) AddPath(name string, path *relayer.Path) (err error) { + // Ensure path is initialized. + if c.Paths == nil { + c.Paths = make(relayer.Paths) + } // Check if the path does not yet exist. oldPath, err := c.Paths.Get(name) if err != nil { @@ -668,4 +672,4 @@ func (c *Config) ValidateConnection(ctx context.Context, chain *relayer.Chain, h } return nil -} \ No newline at end of file +} diff --git a/cmd/paths.go b/cmd/paths.go index 0c99c8233..640414fa5 100644 --- a/cmd/paths.go +++ b/cmd/paths.go @@ -255,7 +255,7 @@ $ %s pth n ibc-0 ibc-1 demo-path`, appName, appName)), } name := args[2] - if err = a.config.Paths.Add(name, p); err != nil { + if err = a.config.AddPath(name, p); err != nil { return err } return nil From d36dd5d8f3f9046914ff781c4d87087f26130b60 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Wed, 3 May 2023 00:19:36 +0800 Subject: [PATCH 30/46] feat: add max-gas-amount parameter in chain configs (#1178) * add max fee * add test * add change doc * Update cregistry/chain_info.go --- CHANGELOG.md | 1 + cregistry/chain_info.go | 4 +- relayer/chains/cosmos/provider.go | 1 + relayer/chains/cosmos/tx.go | 30 +++++++++++--- relayer/chains/cosmos/tx_test.go | 61 +++++++++++++++++++++++++++++ relayer/chains/penumbra/provider.go | 1 + 6 files changed, 92 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5752bf0fb..065b7a508 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ * [\#506](https://github.com/cosmos/relayer/pull/506) Fix Timeout Handling on Relayer restart * [\#940](https://github.com/cosmos/relayer/pull/940) Add min-gas-amount parameter for chain configs, to workaround gas estimation failure. * [\#1177](https://github.com/cosmos/relayer/pull/1177) Avoid panic due to nil map when add new path and ensure path get written to config. +* [\#1178](https://github.com/cosmos/relayer/pull/1178) Add max-gas-amount parameter in chain configs. ## v0.9.3 diff --git a/cregistry/chain_info.go b/cregistry/chain_info.go index 20a51d484..6d2d8dea3 100644 --- a/cregistry/chain_info.go +++ b/cregistry/chain_info.go @@ -83,7 +83,8 @@ type ChainInfo struct { Provider string `json:"provider"` } `json:"rest"` } `json:"apis"` - ExtraCodecs []string `json:"extra_codecs"` + ExtraCodecs []string `json:"extra_codecs"` + MaxGasAmount uint64 `json:"max_gas_amount"` } // NewChainInfo returns a ChainInfo that is uninitialized other than the provided zap.Logger. @@ -268,5 +269,6 @@ func (c ChainInfo) GetChainConfig(ctx context.Context) (*cosmos.CosmosProviderCo Slip44: c.Slip44, SigningAlgorithm: c.SigningAlgorithm, ExtraCodecs: c.ExtraCodecs, + MaxGasAmount: c.MaxGasAmount, }, nil } diff --git a/relayer/chains/cosmos/provider.go b/relayer/chains/cosmos/provider.go index b202b3cc1..4fbea4d0e 100644 --- a/relayer/chains/cosmos/provider.go +++ b/relayer/chains/cosmos/provider.go @@ -45,6 +45,7 @@ type CosmosProviderConfig struct { GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` GasPrices string `json:"gas-prices" yaml:"gas-prices"` MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + MaxGasAmount uint64 `json:"max-gas-amount" yaml:"max-gas-amount"` Debug bool `json:"debug" yaml:"debug"` Timeout string `json:"timeout" yaml:"timeout"` BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` diff --git a/relayer/chains/cosmos/tx.go b/relayer/chains/cosmos/tx.go index ea1dc210a..2af8538ff 100644 --- a/relayer/chains/cosmos/tx.go +++ b/relayer/chains/cosmos/tx.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "math" "math/big" "regexp" "strconv" @@ -25,9 +26,9 @@ import ( "github.com/cosmos/cosmos-sdk/store/rootmulti" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/cosmos/cosmos-sdk/types/tx/signing" + feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" @@ -1274,9 +1275,9 @@ func (cc *CosmosProvider) UpdateFeesSpent(chain, key string, fees sdk.Coins) { } // MsgRegisterCounterpartyPayee creates an sdk.Msg to broadcast the counterparty address -func (cc *CosmosProvider) MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee string) (provider.RelayerMessage,error) { +func (cc *CosmosProvider) MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee string) (provider.RelayerMessage, error) { msg := feetypes.NewMsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee) - return NewCosmosMessage(msg),nil + return NewCosmosMessage(msg), nil } // PrepareFactory mutates the tx factory with the appropriate account number, sequence number, and min gas settings. @@ -1342,6 +1343,25 @@ func (cc *CosmosProvider) PrepareFactory(txf tx.Factory) (tx.Factory, error) { return txf, nil } +// AdjustEstimatedGas adjusts the estimated gas usage by multiplying it by the gas adjustment factor +// and bounding the result by the maximum gas amount option. If the gas usage is zero, the adjusted gas +// is also zero. If the gas adjustment factor produces an infinite result, an error is returned. +// max-gas-amount is enforced. +func (cc *CosmosProvider) AdjustEstimatedGas(gasUsed uint64) (uint64, error) { + if gasUsed == 0 { + return gasUsed, nil + } + gas := cc.PCfg.GasAdjustment * float64(gasUsed) + if math.IsInf(gas, 1) { + return 0, fmt.Errorf("infinite gas used") + } + // Bound the gas estimate by the max_gas option + if cc.PCfg.MaxGasAmount > 0 { + gas = math.Min(gas, float64(cc.PCfg.MaxGasAmount)) + } + return uint64(gas), nil +} + // CalculateGas simulates a tx to generate the appropriate gas settings before broadcasting a tx. func (cc *CosmosProvider) CalculateGas(ctx context.Context, txf tx.Factory, msgs ...sdk.Msg) (txtypes.SimulateResponse, uint64, error) { keyInfo, err := cc.Keybase.Key(cc.PCfg.Key) @@ -1382,8 +1402,8 @@ func (cc *CosmosProvider) CalculateGas(ctx context.Context, txf tx.Factory, msgs if err := simRes.Unmarshal(res.Value); err != nil { return txtypes.SimulateResponse{}, 0, err } - - return simRes, uint64(txf.GasAdjustment() * float64(simRes.GasInfo.GasUsed)), nil + gas, err := cc.AdjustEstimatedGas(simRes.GasInfo.GasUsed) + return simRes, gas, err } // TxFactory instantiates a new tx factory with the appropriate configuration settings for this chain. diff --git a/relayer/chains/cosmos/tx_test.go b/relayer/chains/cosmos/tx_test.go index d02974fb2..198622619 100644 --- a/relayer/chains/cosmos/tx_test.go +++ b/relayer/chains/cosmos/tx_test.go @@ -2,6 +2,7 @@ package cosmos import ( "fmt" + "math" "testing" "github.com/stretchr/testify/require" @@ -21,3 +22,63 @@ func TestHandleAccountSequenceMismatchError(t *testing.T) { p.handleAccountSequenceMismatchError(mockAccountSequenceMismatchError{Actual: 9, Expected: 10}) require.Equal(t, p.nextAccountSeq, uint64(10)) } + +func TestCosmosProvider_AdjustEstimatedGas(t *testing.T) { + testCases := []struct { + name string + gasUsed uint64 + gasAdjustment float64 + maxGasAmount uint64 + expectedGas uint64 + expectedErr error + }{ + { + name: "gas used is zero", + gasUsed: 0, + gasAdjustment: 1.0, + maxGasAmount: 0, + expectedGas: 0, + expectedErr: nil, + }, + { + name: "gas used is non-zero", + gasUsed: 50000, + gasAdjustment: 1.5, + maxGasAmount: 100000, + expectedGas: 75000, + expectedErr: nil, + }, + { + name: "gas used is infinite", + gasUsed: 10000, + gasAdjustment: math.Inf(1), + maxGasAmount: 0, + expectedGas: 0, + expectedErr: fmt.Errorf("infinite gas used"), + }, + { + name: "gas used is non-zero with zero max gas amount as default", + gasUsed: 50000, + gasAdjustment: 1.5, + maxGasAmount: 0, + expectedGas: 75000, + expectedErr: nil, + }, + } + + for _, tc := range testCases { + tc := tc + t.Run(tc.name, func(t *testing.T) { + cc := &CosmosProvider{PCfg: CosmosProviderConfig{ + GasAdjustment: tc.gasAdjustment, + MaxGasAmount: tc.maxGasAmount, + }} + adjustedGas, err := cc.AdjustEstimatedGas(tc.gasUsed) + if err != nil { + require.EqualError(t, err, tc.expectedErr.Error()) + } else { + require.Equal(t, adjustedGas, tc.expectedGas) + } + }) + } +} diff --git a/relayer/chains/penumbra/provider.go b/relayer/chains/penumbra/provider.go index 25af1575a..036d059f2 100644 --- a/relayer/chains/penumbra/provider.go +++ b/relayer/chains/penumbra/provider.go @@ -47,6 +47,7 @@ type PenumbraProviderConfig struct { GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` GasPrices string `json:"gas-prices" yaml:"gas-prices"` MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + MaxGasAmount uint64 `json:"max-gas-amount" yaml:"max-gas-amount"` Debug bool `json:"debug" yaml:"debug"` Timeout string `json:"timeout" yaml:"timeout"` BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` From 04e7f3a4c1a5e13582293fa3a8705ed33b3f4400 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Thu, 4 May 2023 05:24:35 +0800 Subject: [PATCH 31/46] dep: bump sdk from v0.47.0 to v0.47.2 (#1180) * bump sdk from v0.47.0 to v0.47.2 fix btcutil dep * fix dep of hdkeychain --- CHANGELOG.md | 1 + go.mod | 28 +- go.sum | 78 +++-- go.work.sum | 448 ++++++++++++++++++++++++++ relayer/codecs/ethermint/algorithm.go | 2 +- relayer/codecs/injective/algorithm.go | 2 +- 6 files changed, 513 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 065b7a508..9a98e3921 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ * [\#940](https://github.com/cosmos/relayer/pull/940) Add min-gas-amount parameter for chain configs, to workaround gas estimation failure. * [\#1177](https://github.com/cosmos/relayer/pull/1177) Avoid panic due to nil map when add new path and ensure path get written to config. * [\#1178](https://github.com/cosmos/relayer/pull/1178) Add max-gas-amount parameter in chain configs. +* [\#1180](https://github.com/cosmos/relayer/pull/1180) Update SDK from v0.47.0 to v0.47.2. ## v0.9.3 diff --git a/go.mod b/go.mod index ab961467d..fd1091a78 100644 --- a/go.mod +++ b/go.mod @@ -5,15 +5,15 @@ go 1.20 require ( cosmossdk.io/api v0.3.1 cosmossdk.io/errors v1.0.0-beta.7 - cosmossdk.io/math v1.0.0-rc.0 + cosmossdk.io/math v1.0.0 github.com/avast/retry-go/v4 v4.3.2 - github.com/btcsuite/btcd v0.22.2 - github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce - github.com/cometbft/cometbft v0.37.0 + github.com/btcsuite/btcd v0.23.4 + github.com/btcsuite/btcd/btcutil v1.1.3 + github.com/cometbft/cometbft v0.37.1 github.com/cosmos/cosmos-proto v1.0.0-beta.2 - github.com/cosmos/cosmos-sdk v0.47.0 + github.com/cosmos/cosmos-sdk v0.47.2 github.com/cosmos/go-bip39 v1.0.0 - github.com/cosmos/gogoproto v1.4.6 + github.com/cosmos/gogoproto v1.4.8 github.com/cosmos/ibc-go/v7 v7.0.0 github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab github.com/ethereum/go-ethereum v1.10.26 @@ -32,9 +32,9 @@ require ( go.uber.org/zap v1.24.0 golang.org/x/mod v0.8.0 golang.org/x/sync v0.1.0 - golang.org/x/term v0.6.0 - golang.org/x/text v0.8.0 - google.golang.org/grpc v1.53.0 + golang.org/x/term v0.7.0 + golang.org/x/text v0.9.0 + google.golang.org/grpc v1.54.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -109,7 +109,7 @@ require ( github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.0 // indirect + github.com/hashicorp/go-getter v1.7.1 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.6.0 // indirect @@ -167,15 +167,15 @@ require ( go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.10.0 // indirect golang.org/x/crypto v0.7.0 // indirect - golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 // indirect - golang.org/x/net v0.8.0 // indirect + golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect + golang.org/x/net v0.9.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.6.0 // indirect + golang.org/x/sys v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect - google.golang.org/protobuf v1.29.1 // indirect + google.golang.org/protobuf v1.30.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v0.5.5 // indirect diff --git a/go.sum b/go.sum index b7f11ac09..3d1947395 100644 --- a/go.sum +++ b/go.sum @@ -196,8 +196,8 @@ cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/math v1.0.0-rc.0 h1:ml46ukocrAAoBpYKMidF0R2tQJ1Uxfns0yH8wqgMAFc= -cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= +cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw= +cosmossdk.io/math v1.0.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -263,20 +263,28 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.22.2 h1:vBZ+lGGd1XubpOWO67ITJpAEsICWhA0YzqkcpkgNBfo= -github.com/btcsuite/btcd v0.22.2/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= +github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= +github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd v0.23.4 h1:IzV6qqkfwbItOS/sg/aDfPDsjPP8twrCOE2R93hxMlQ= +github.com/btcsuite/btcd v0.23.4/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= +github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= +github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= @@ -320,8 +328,8 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:z github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= -github.com/cometbft/cometbft v0.37.0 h1:M005vBaSaugvYYmNZwJOopynQSjwLoDTwflnQ/I/eYk= -github.com/cometbft/cometbft v0.37.0/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= +github.com/cometbft/cometbft v0.37.1 h1:KLxkQTK2hICXYq21U2hn1W5hOVYUdQgDQ1uB+90xPIg= +github.com/cometbft/cometbft v0.37.1/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= @@ -336,16 +344,16 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.0 h1:GKYtBpvjwuDEVix1vdnQpq7PuEOnItuEK0vdAL2cZ5g= -github.com/cosmos/cosmos-sdk v0.47.0/go.mod h1:FTtZbqiHCZ2vun9WrPq6qLQafNKkAuIhLAxzLjr2TiI= +github.com/cosmos/cosmos-sdk v0.47.2 h1:9rSriCoiJD+4F+tEDobyM8V7HF5BtY5Ef4VYNig96s0= +github.com/cosmos/cosmos-sdk v0.47.2/go.mod h1:zYzgI8w8hhotXTSoGbbSOAKfpJTx4wOy4XgbaKhtRtc= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= -github.com/cosmos/gogoproto v1.4.6 h1:Ee7z15dWJaGlgM2rWrK8N2IX7PQcuccu8oG68jp5RL4= -github.com/cosmos/gogoproto v1.4.6/go.mod h1:VS/ASYmPgv6zkPKLjR9EB91lwbLHOzaGCirmKKhncfI= +github.com/cosmos/gogoproto v1.4.8 h1:BrHKc6WFZt8+jRV71vKSQE+JrfF+JAnzrKo2VP7wIZ4= +github.com/cosmos/gogoproto v1.4.8/go.mod h1:hnb0DIEWTv+wdNzNcqus5xCQXq5+CXauq1FJuurRfVY= github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= github.com/cosmos/ibc-go/v7 v7.0.0 h1:j4kyywlG0hhDmT9FmSaR5iCIka7Pz7kJTxGWY1nlV9Q= @@ -371,8 +379,11 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= @@ -630,8 +641,8 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.0 h1:bzrYP+qu/gMrL1au7/aDvkoOVGUJpeKBgbqRHACAFDY= -github.com/hashicorp/go-getter v1.7.0/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= +github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -681,6 +692,7 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -803,10 +815,12 @@ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= @@ -961,6 +975,7 @@ github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= @@ -1040,7 +1055,6 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= @@ -1059,8 +1073,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 h1:LGJsf5LRplCck6jUCH3dBL2dmycNruWNF5xugkSlfXw= -golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1089,6 +1103,7 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1124,6 +1139,7 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -1149,8 +1165,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1237,10 +1253,12 @@ golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1289,13 +1307,13 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1306,8 +1324,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1596,8 +1614,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1614,8 +1632,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= -google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/go.work.sum b/go.work.sum index e6589b709..eff72b080 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,3 +1,5 @@ +4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= @@ -43,6 +45,7 @@ cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIh cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= @@ -111,32 +114,100 @@ cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.3.2/go.mod h1:CO7vbe+evrBvHc0setFHL/u7nlY7HJGzdRSBkT/sirc= cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= +github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= +github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= +github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= +github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= +github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= +github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= +github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= +github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= +github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= +github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= +github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= +github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= +github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= +github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= +github.com/btcsuite/btcd v0.23.0 h1:V2/ZgjfDFIygAX3ZapeigkVBoVUtOJKSwrhZdlpSvaA= +github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd v0.23.4 h1:IzV6qqkfwbItOS/sg/aDfPDsjPP8twrCOE2R93hxMlQ= +github.com/btcsuite/btcd v0.23.4/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= +github.com/btcsuite/btcd/btcec/v2 v2.1.1/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.2.1/go.mod h1:9/CSmJxmuvqzX9Wh2fXMWToLOHhPd11lSPuIupwTkI8= +github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= +github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= +github.com/btcsuite/btcd/btcutil v1.1.1 h1:hDcDaXiP0uEzR8Biqo2weECKqEw0uHDZ9ixIWevVQqY= +github.com/btcsuite/btcd/btcutil v1.1.1/go.mod h1:nbKlBMNm9FGsdvKvu0essceubPiAcI57pYBNnsLAa34= +github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/bufbuild/buf v1.7.0/go.mod h1:Go40fMAF46PnPLC7jJgTQhAI95pmC0+VtxFKVC0qLq0= +github.com/bufbuild/connect-go v1.0.0/go.mod h1:9iNvh/NOsfhNBUH5CtvXeVUskQO1xsrEviH7ZArwZ3I= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= +github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= +github.com/chavacava/garif v0.0.0-20220630083739-93517212f375/go.mod h1:4m1Rv7xfuwWPNKXlThldNuJvutYM6J95wNuuVmn55To= +github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= @@ -148,57 +219,161 @@ github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= +github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= +github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= +github.com/containerd/containerd v1.6.8/go.mod h1:By6p5KqPK0/7/CgO/A6t/Gz+CUYUu2zf1hUaaymVXB0= +github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= +github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= +github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34= +github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= +github.com/containerd/imgcrypt v1.1.4/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO8j/tSUpgxvo= +github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= +github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= +github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= +github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8= +github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/containers/ocicrypt v1.1.3/go.mod h1:xpdkbVAuaH3WzbEabUd5yDsl9SwJA5pABH85425Es2g= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= +github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.mod h1:c8IO23vgNxueCCJlSI9awQtcxsvc+buzaeThB85qfBU= +github.com/cosmos/gogoproto v1.4.1/go.mod h1:Ac9lzL4vFpBMcptJROQ6dQ4M3pOEK5Z/l0Q9p+LoCr4= github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU= github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cristalhq/acmd v0.8.1/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= +github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= +github.com/daixiang0/gci v0.8.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= +github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= +github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/xUS4JuQn1P4cM= github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-critic/go-critic v0.6.5/go.mod h1:ezfP/Lh7MA6dBNn4c6ab5ALv3sKnZVLx37tr00uuaOY= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= +github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= +github.com/go-git/go-billy/v5 v5.4.0/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= +github.com/go-git/go-git-fixtures/v4 v4.3.1/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= +github.com/go-git/go-git/v5 v5.5.2/go.mod h1:BE5hUJ5yaV2YMxhmaP4l6RBQ08kMxKSPD4BlxtH7OjI= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= +github.com/go-toolsmith/astcopy v1.0.2/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= +github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= +github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= +github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= +github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= +github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= +github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5/go.mod h1:3NAwwmD4uY/yggRxoEjk/S00MIV3A+H7rrE3i87eYxM= +github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= +github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= +github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= +github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs= +github.com/golangci/golangci-lint v1.50.1/go.mod h1:AQjHBopYS//oB8xs0y0M/dtxdKHkdhl0RvmjUct0/4w= +github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= +github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= +github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= +github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= +github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= +github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= +github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= +github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= +github.com/gostaticanalysis/forcetypeassert v0.1.0/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak= +github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= +github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= +github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.18.0/go.mod h1:owRRGJ9M5xReDC5nfT8FTJrNAPbT4NM6p/k+d03q2v4= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.13.0/go.mod h1:0hs/l5fOVhJy/VdcoaNqUSi2AUs95eF5WKtv+EYIQqE= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -207,26 +382,42 @@ github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uG github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/informalsystems/tm-load-test v1.3.0/go.mod h1:OQ5AQ9TbT5hKWBNIwsMjn6Bf4O0U4b1kRc+0qZlQJKw= +github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= +github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= +github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f/go.mod h1:qr2b5kx4HbFS7/g4uYO5qv9ei8303JMsC7ESbYiqr2Q= github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= +github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= +github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= +github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= +github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= @@ -238,20 +429,38 @@ github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2 github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= +github.com/kkHAIKE/contextcheck v1.1.3/go.mod h1:PG/cwd6c0705/LM0KTr1acO2gORUxkSVWyLJOFW5qoo= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= +github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= +github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= +github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= +github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= +github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= +github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= +github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -268,115 +477,279 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/mgechev/revive v1.2.4/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moby/buildkit v0.10.4/go.mod h1:Yajz9vt1Zw5q9Pp4pdb3TCSUXJBIroIQGQ3TTs/sLug= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= +github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= +github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= +github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= +github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= +github.com/nishanths/exhaustive v0.8.3/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= +github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= +github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= +github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= +github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= +github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= +github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= +github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pjbgf/sha1cd v0.2.3/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pointlander/compress v1.1.1-0.20190518213731-ff44bd196cc3/go.mod h1:q5NXNGzqj5uPnVuhGkZfmgHqNUhf15VLi6L9kW0VEc0= +github.com/pointlander/jetset v1.0.1-0.20190518214125-eee7eff80bd4/go.mod h1:RdR1j20Aj5pB6+fw6Y9Ur7lMHpegTEjY1vc19hEZL40= +github.com/pointlander/peg v1.0.1/go.mod h1:5hsGDQR2oZI4QoWz0/Kdg3VSVEC31iJw/b7WjqCBGRI= +github.com/polyfloyd/go-errorlint v1.0.5/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= +github.com/quasilyte/go-ruleguard v0.3.18/go.mod h1:lOIzcYlgxrQ2sGJ735EHXmf/e9MJ516j16K/Ifcttvs= +github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= +github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= +github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= +github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= +github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= +github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= +github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= +github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= +github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/sagikazarmark/crypt v0.9.0/go.mod h1:RnH7sEhxfdnPm1z+XMgSLjWTEIjyK4z2dw6+4vHTMuo= +github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= +github.com/sashamelentyev/usestdlibvars v1.20.0/go.mod h1:0GaP+ecfZMXShS0A94CJn6aEuPRILv8h/VuWI9n1ygg= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= +github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= +github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= +github.com/skeema/knownhosts v1.1.0/go.mod h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag= +github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= +github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw= github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= +github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= +github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= +github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= +github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= +github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= +github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= +github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/timonwong/loggercheck v0.9.3/go.mod h1:wUqnk9yAOIKtGA39l1KLE9Iz0QiTocu/YZoOf+OzFdw= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tomarrell/wrapcheck/v2 v2.7.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= +github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= +github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zondax/ledger-go v0.14.0/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/api/v3 v3.5.6/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/pkg/v3 v3.5.6/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v2 v2.305.6/go.mod h1:BHha8XJGe8vCIBfWBpbBLVZ4QjOIlfoouvOwydu63E0= +go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= go.etcd.io/etcd/client/v3 v3.5.6/go.mod h1:f6GRinRMCsFVv9Ht42EyY7nfsVGwrNO0WEoS2pRKzQk= +go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= +go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= +go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= +go.etcd.io/gofail v0.1.0/go.mod h1:VZBCXYGZhHAinaBiiqYvuDynvahNsAyLFwB3kEHKz1M= +go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.3/go.mod h1:Dts42MGkzZne2yCru741+bFiTMWkIj/LLRizad7b9tw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= +go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= +go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk= +go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1/go.mod h1:o5RW5o2pKpJLD5dNTCmjF1DorYwMeFJmb/rKr5sLaa8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1/go.mod h1:c6E4V3/U+miqjs/8l950wggHGL1qzlp0Ypj9xoGrPqo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1/go.mod h1:VwYo0Hak6Efuy0TXsZs8o1hnV3dHDPNtDbycG0hI8+M= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= +go.opentelemetry.io/otel/sdk v1.4.1/go.mod h1:NBwHDgDIBYjwK2WNu1OPgsIc2IJzmBXNnvIJxJc8BpE= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= +go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= +go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U= +go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= +go.opentelemetry.io/proto/otlp v0.12.0/go.mod h1:TsIjwGWIx5VFYv9KGVlOpxoBl5Dy+63SUguV7GGvlSQ= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= golang.org/x/exp v0.0.0-20221019170559-20944726eadf/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -384,31 +757,75 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210909193231-528a39cd75f3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= +golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= +golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= +golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= @@ -419,7 +836,9 @@ google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/ google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= @@ -429,14 +848,43 @@ google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/protobuf v1.27.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= +honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= +k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= +k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= +k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= +k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= +k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= +k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= +k8s.io/cri-api v0.25.0/go.mod h1:J1rAyQkSJ2Q6I+aBMOVgg2/cbbebso6FNa0UagiR0kc= +k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= +mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= +mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= diff --git a/relayer/codecs/ethermint/algorithm.go b/relayer/codecs/ethermint/algorithm.go index 121af6e61..510b18542 100644 --- a/relayer/codecs/ethermint/algorithm.go +++ b/relayer/codecs/ethermint/algorithm.go @@ -1,8 +1,8 @@ package ethermint import ( + "github.com/btcsuite/btcd/btcutil/hdkeychain" "github.com/btcsuite/btcd/chaincfg" - "github.com/btcsuite/btcutil/hdkeychain" "github.com/tyler-smith/go-bip39" "github.com/ethereum/go-ethereum/accounts" diff --git a/relayer/codecs/injective/algorithm.go b/relayer/codecs/injective/algorithm.go index 4b6edd110..187a387f6 100644 --- a/relayer/codecs/injective/algorithm.go +++ b/relayer/codecs/injective/algorithm.go @@ -1,8 +1,8 @@ package injective import ( + "github.com/btcsuite/btcd/btcutil/hdkeychain" "github.com/btcsuite/btcd/chaincfg" - "github.com/btcsuite/btcutil/hdkeychain" "github.com/cosmos/cosmos-sdk/crypto/hd" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" ethaccounts "github.com/ethereum/go-ethereum/accounts" From 45f478b597d09eff8a1b6d6327a65628f44a9747 Mon Sep 17 00:00:00 2001 From: Cosmos-Harry <110472914+Cosmos-Harry@users.noreply.github.com> Date: Fri, 12 May 2023 12:33:08 -0400 Subject: [PATCH 32/46] Harry/rly tx channel (#1183) * made a new method "logChannelOpenMessage" to log the newly opened channel into info level * added fields * some changes --------- Co-authored-by: Harry --- relayer/chains/cosmos/message_handlers.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/relayer/chains/cosmos/message_handlers.go b/relayer/chains/cosmos/message_handlers.go index f9a9bd0f9..1e6a811c0 100644 --- a/relayer/chains/cosmos/message_handlers.go +++ b/relayer/chains/cosmos/message_handlers.go @@ -86,6 +86,7 @@ func (ccp *CosmosChainProcessor) handleChannelMessage(eventType string, ci provi ccp.channelStateCache[channelKey] = false case chantypes.EventTypeChannelOpenAck, chantypes.EventTypeChannelOpenConfirm: ccp.channelStateCache[channelKey] = true + ccp.logChannelOpenMessage(eventType, ci) case chantypes.EventTypeChannelCloseConfirm: for k := range ccp.channelStateCache { if k.PortID == ci.PortID && k.ChannelID == ci.ChannelID { @@ -182,6 +183,16 @@ func (ccp *CosmosChainProcessor) logChannelMessage(message string, ci provider.C ) } +func (ccp *CosmosChainProcessor) logChannelOpenMessage(message string, ci provider.ChannelInfo) { + fields := []zap.Field{ + + zap.String("channel_id", ci.ChannelID), + zap.String("connection_id", ci.ConnID), + zap.String("port_id", ci.PortID), + } + ccp.log.Info("Successfully created new channel", fields...) +} + func (ccp *CosmosChainProcessor) logConnectionMessage(message string, ci provider.ConnectionInfo) { ccp.logObservedIBCMessage(message, zap.String("client_id", ci.ClientID), From af8d0f7dc716af73043a6d2967e020e6324f94a1 Mon Sep 17 00:00:00 2001 From: Cosmos-Harry <110472914+Cosmos-Harry@users.noreply.github.com> Date: Wed, 17 May 2023 22:49:10 -0400 Subject: [PATCH 33/46] Harry/rly tx transfer (#1184) * made a new method "logChannelOpenMessage" to log the newly opened channel into info level * added fields * some changes * recreated issue 1151, added logs --------- Co-authored-by: Harry Co-authored-by: Andrew Gouin --- relayer/packet-tx.go | 10 +++++++++- relayer/relayMsgs.go | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/relayer/packet-tx.go b/relayer/packet-tx.go index ecc2146e0..1cb38c7b3 100644 --- a/relayer/packet-tx.go +++ b/relayer/packet-tx.go @@ -113,7 +113,15 @@ func (c *Chain) SendTransferMsg(ctx context.Context, log *zap.Logger, dst *Chain ) } return err + } else { + if result.SuccessfullySent() { + c.log.Info( + "Successfully sent a transfer", + zap.String("src_chain_id", c.ChainID()), + zap.String("dst_chain_id", dst.ChainID()), + zap.Object("send_result", result), + ) + } } - return nil } diff --git a/relayer/relayMsgs.go b/relayer/relayMsgs.go index 52d95f160..698e8b28a 100644 --- a/relayer/relayMsgs.go +++ b/relayer/relayMsgs.go @@ -108,6 +108,11 @@ type SendMsgsResult struct { SrcSendError, DstSendError error } +// SuccessfullySent reports the presence successfully sent batches +func (r SendMsgsResult) SuccessfullySent() bool { + return (r.SuccessfulSrcBatches > 0 || r.SuccessfulDstBatches > 0) +} + // PartiallySent reports the presence of both some successfully sent batches // and some errors. func (r SendMsgsResult) PartiallySent() bool { From d5e3882eab97a36d97d00115df5bc9d28cb43975 Mon Sep 17 00:00:00 2001 From: Keefer Taylor | Tessellated Date: Thu, 18 May 2023 13:49:37 -0700 Subject: [PATCH 34/46] Better Error Messaging when failing to query the Block Height (#1189) * better block data errors * remove redundant field --- docs/troubleshooting.md | 11 +++++++++++ relayer/chains/cosmos/cosmos_chain_processor.go | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index dbfac01dc..75f46195e 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -53,6 +53,17 @@ it will be helpful to provide the output from `http://localhost:7597/debug/pprof --- +**Error querying blockdata** + +The relayer looks back in time at historical transactions and needs to have an index of them. + +Specifically check `~/./config/config.toml` has the following fields set: +```toml +indexer = "kv" +index_all_tags = true +``` +--- + **Error building or broadcasting transaction** When preparing a transaction for relaying, the amount of gas that the transaction will consume is unknown. To compute how much gas the transaction will need, the transaction is prepared with 0 gas and delivered as a `/cosmos.tx.v1beta1.Service/Simulate` query to the RPC endpoint. Recently chains have been creating AnteHandlers in which 0 gas triggers an error case: diff --git a/relayer/chains/cosmos/cosmos_chain_processor.go b/relayer/chains/cosmos/cosmos_chain_processor.go index 1feb92124..e5de5f2bc 100644 --- a/relayer/chains/cosmos/cosmos_chain_processor.go +++ b/relayer/chains/cosmos/cosmos_chain_processor.go @@ -381,7 +381,11 @@ func (ccp *CosmosChainProcessor) queryCycle(ctx context.Context, persistence *qu }) if err := eg.Wait(); err != nil { - ccp.log.Warn("Error querying block data", zap.Error(err)) + ccp.log.Warn( + "Could not query block data. Consider checking if your RPC node is online, and that transaction indexing is enabled.", + zap.Int64("height", i), + ) + ccp.log.Debug("Error querying block data", zap.Error(err)) persistence.retriesAtLatestQueriedBlock++ if persistence.retriesAtLatestQueriedBlock >= blockMaxRetries { From debdee72d008e5d1f93c0158a1d66baa120bba3f Mon Sep 17 00:00:00 2001 From: Conor Schaefer Date: Fri, 19 May 2023 08:19:15 -0700 Subject: [PATCH 35/46] penumbra: update protos (#1181) Matches the latest protos shipped with the Penumbra Testnet 52. Co-authored-by: Conor Schaefer Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> --- .../penumbra/core/chain/v1alpha1/chain.pb.go | 245 +- .../core/crypto/v1alpha1/crypto.pb.go | 1582 +++++++-- .../penumbra/core/dex/v1alpha1/dex.pb.go | 639 ++-- .../penumbra/core/stake/v1alpha1/stake.pb.go | 1 - .../transaction/v1alpha1/transaction.pb.go | 366 +- .../chains/penumbra/view/v1alpha1/view.pb.go | 3065 ++++------------- 6 files changed, 2684 insertions(+), 3214 deletions(-) diff --git a/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go index 2d6cf9a53..1a6f00258 100644 --- a/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go +++ b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go @@ -54,7 +54,7 @@ type ChainParameters struct { // The number of blocks during which a proposal is voted on. ProposalVotingBlocks uint64 `protobuf:"varint,20,opt,name=proposal_voting_blocks,json=proposalVotingBlocks,proto3" json:"proposal_voting_blocks,omitempty"` // The deposit required to create a proposal. - ProposalDepositAmount uint64 `protobuf:"varint,21,opt,name=proposal_deposit_amount,json=proposalDepositAmount,proto3" json:"proposal_deposit_amount,omitempty"` + ProposalDepositAmount *v1alpha1.Amount `protobuf:"bytes,21,opt,name=proposal_deposit_amount,json=proposalDepositAmount,proto3" json:"proposal_deposit_amount,omitempty"` // The quorum required for a proposal to be considered valid, as a fraction of the total stake // weight of the network. ProposalValidQuorum string `protobuf:"bytes,22,opt,name=proposal_valid_quorum,json=proposalValidQuorum,proto3" json:"proposal_valid_quorum,omitempty"` @@ -191,11 +191,11 @@ func (m *ChainParameters) GetProposalVotingBlocks() uint64 { return 0 } -func (m *ChainParameters) GetProposalDepositAmount() uint64 { +func (m *ChainParameters) GetProposalDepositAmount() *v1alpha1.Amount { if m != nil { return m.ProposalDepositAmount } - return 0 + return nil } func (m *ChainParameters) GetProposalValidQuorum() string { @@ -1105,105 +1105,105 @@ func init() { } var fileDescriptor_b0cedb8b84ba3224 = []byte{ - // 1553 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5b, 0x6f, 0x23, 0x49, - 0x15, 0x8e, 0x73, 0xf7, 0xb1, 0x93, 0x0c, 0xb5, 0x73, 0xe9, 0x09, 0x21, 0x93, 0xb5, 0x76, 0xc0, - 0x33, 0x2b, 0x6c, 0x36, 0xbb, 0x82, 0x95, 0x97, 0x45, 0x93, 0xcb, 0x90, 0x19, 0xed, 0xce, 0xac, - 0xb7, 0xb2, 0x04, 0x34, 0x8a, 0xd4, 0x2a, 0x77, 0x57, 0xe2, 0xd2, 0x74, 0x57, 0x35, 0x5d, 0xd5, - 0xb9, 0xbc, 0x83, 0xc4, 0x23, 0xbf, 0x01, 0xde, 0x78, 0x40, 0xe2, 0x5f, 0x20, 0x24, 0xa4, 0x7d, - 0x44, 0x3c, 0xa1, 0xcc, 0x1b, 0x4f, 0xfc, 0x04, 0x54, 0xa7, 0xfa, 0x62, 0x9b, 0xc5, 0x99, 0x20, - 0xde, 0x5c, 0xe7, 0x7c, 0xdf, 0x57, 0xa7, 0x4e, 0xd5, 0x39, 0xa7, 0x0d, 0xed, 0x84, 0xcb, 0x2c, - 0x1e, 0xa4, 0xac, 0x1b, 0xa8, 0x94, 0x77, 0x83, 0x21, 0x13, 0xb2, 0x7b, 0xf6, 0x01, 0x8b, 0x92, - 0x21, 0xfb, 0xc0, 0x2d, 0x3b, 0x49, 0xaa, 0x8c, 0x22, 0x1b, 0x05, 0xb2, 0x63, 0x91, 0x1d, 0xe7, - 0x2a, 0x90, 0xeb, 0x8f, 0x27, 0x74, 0xd2, 0xcb, 0xc4, 0xa8, 0x11, 0x21, 0x5c, 0x3b, 0xa5, 0xf5, - 0x89, 0x3d, 0xb5, 0x61, 0xaf, 0x79, 0x05, 0xc5, 0x65, 0x8e, 0x7c, 0x6f, 0x1c, 0x19, 0xf2, 0x8b, - 0x0a, 0x17, 0xf2, 0x0b, 0x87, 0x6a, 0xfd, 0x75, 0x09, 0xd6, 0xf6, 0x6c, 0x38, 0x7d, 0x96, 0xb2, - 0x98, 0x1b, 0x9e, 0x6a, 0x72, 0x1f, 0x96, 0x31, 0x42, 0x5f, 0x84, 0x5e, 0x6d, 0xab, 0xd6, 0xae, - 0xd3, 0x25, 0x5c, 0x3f, 0x0f, 0xc9, 0x43, 0x58, 0xe5, 0x89, 0x0a, 0x86, 0x7e, 0x98, 0xa5, 0xcc, - 0x08, 0x25, 0xbd, 0xd9, 0xad, 0x5a, 0x7b, 0x9e, 0xae, 0xa0, 0x75, 0x3f, 0x37, 0x92, 0x47, 0x70, - 0x2b, 0x93, 0x03, 0x25, 0x43, 0x21, 0x4f, 0x7d, 0x74, 0x69, 0x6f, 0x0e, 0x81, 0x6b, 0xa5, 0xfd, - 0x29, 0x9a, 0xc9, 0x47, 0x70, 0x97, 0x05, 0x46, 0x9c, 0x71, 0xff, 0x8c, 0x45, 0x22, 0x64, 0x46, - 0xa5, 0x7e, 0x24, 0x62, 0x61, 0xbc, 0x79, 0x24, 0xdc, 0x76, 0xde, 0xa3, 0xc2, 0xf9, 0xb9, 0xf5, - 0x91, 0x36, 0xdc, 0x1a, 0x30, 0xcd, 0xfd, 0x94, 0x9f, 0xb3, 0x34, 0xf4, 0x53, 0x66, 0xb8, 0x57, - 0x47, 0xfc, 0xaa, 0xb5, 0x53, 0x34, 0x53, 0x66, 0x38, 0x79, 0x02, 0x1b, 0x3a, 0x62, 0x7a, 0x68, - 0x23, 0x49, 0xb8, 0x64, 0x91, 0xb9, 0xf4, 0x63, 0xa1, 0x07, 0x7c, 0xc8, 0xce, 0x84, 0x4a, 0xbd, - 0x05, 0x64, 0xad, 0x17, 0x98, 0xbe, 0x83, 0xbc, 0xa8, 0x10, 0xa4, 0x07, 0xf7, 0xff, 0x43, 0x21, - 0x54, 0xe7, 0xd2, 0x88, 0x98, 0x7b, 0x80, 0xf4, 0x7b, 0x13, 0xf4, 0xfd, 0xdc, 0x4d, 0x7e, 0x04, - 0x9e, 0x16, 0xa7, 0x92, 0x87, 0xfe, 0x20, 0x52, 0xc1, 0x6b, 0xed, 0x9f, 0x0b, 0x19, 0xaa, 0x73, - 0x3f, 0xe2, 0xd2, 0x6b, 0x20, 0xf5, 0x8e, 0xf3, 0xef, 0xa2, 0xfb, 0xe7, 0xe8, 0xfd, 0x9c, 0x4b, - 0xb2, 0x0d, 0x77, 0x62, 0xa1, 0x75, 0x45, 0x8c, 0xd9, 0x85, 0x88, 0xb3, 0xd8, 0x6b, 0x22, 0xeb, - 0x1d, 0xe7, 0x74, 0xac, 0x17, 0xce, 0x45, 0x1e, 0x40, 0x43, 0x0c, 0x02, 0x9f, 0x4b, 0x36, 0x88, - 0x78, 0xe8, 0x2d, 0x6e, 0xd5, 0xda, 0xcb, 0x14, 0xc4, 0x20, 0x78, 0xea, 0x2c, 0xe4, 0x29, 0x3c, - 0x10, 0x72, 0xa0, 0x32, 0x19, 0xfa, 0x22, 0xd0, 0xdb, 0x3f, 0xf0, 0x4d, 0xca, 0xa4, 0x3e, 0xe1, - 0xa9, 0x2e, 0x49, 0x4b, 0x48, 0xda, 0xc8, 0x61, 0xcf, 0x2d, 0xea, 0xab, 0x02, 0x54, 0xc8, 0x1c, - 0xc0, 0x96, 0xca, 0xcc, 0x74, 0x9d, 0x65, 0xd4, 0xf9, 0x4e, 0x81, 0xfb, 0x66, 0xa1, 0x8f, 0xe0, - 0x6e, 0x92, 0xaa, 0x44, 0x69, 0x16, 0xf9, 0x67, 0xca, 0xd8, 0x04, 0xbb, 0xd3, 0x7a, 0xb7, 0xdd, - 0xdd, 0x17, 0xde, 0x23, 0x74, 0xba, 0xd3, 0x92, 0x1f, 0xc2, 0xbd, 0x92, 0x15, 0xf2, 0x44, 0x69, - 0x61, 0x7c, 0x16, 0xab, 0x4c, 0x1a, 0xef, 0x8e, 0x4b, 0x69, 0xe1, 0xde, 0x77, 0xde, 0x1d, 0x74, - 0xda, 0x94, 0x56, 0xbb, 0xd9, 0xe7, 0xe4, 0xff, 0x32, 0x53, 0x69, 0x16, 0x7b, 0x77, 0xf1, 0x8d, - 0xbf, 0x53, 0x6e, 0x66, 0x7d, 0x5f, 0xa2, 0x6b, 0x6c, 0xaf, 0x84, 0x69, 0xed, 0x9b, 0x61, 0xca, - 0xf5, 0x50, 0x45, 0xa1, 0x77, 0x0f, 0x59, 0xa5, 0x64, 0x9f, 0x69, 0xfd, 0x55, 0xe1, 0x24, 0x1f, - 0x83, 0x57, 0xf2, 0xf0, 0x6d, 0x8c, 0x10, 0x3d, 0x24, 0x96, 0x27, 0x3f, 0xb4, 0xee, 0x8a, 0xf9, - 0x29, 0x7c, 0x3b, 0x64, 0xca, 0xd7, 0x09, 0x97, 0xa1, 0x5f, 0x60, 0xaa, 0xbc, 0xde, 0xc7, 0xbc, - 0x7a, 0x21, 0x53, 0x87, 0x16, 0xd1, 0x2f, 0x00, 0x79, 0x4a, 0x5b, 0x07, 0xb0, 0x40, 0x6d, 0x0d, - 0x92, 0x0d, 0xa8, 0xcb, 0x2c, 0xe6, 0xa9, 0xad, 0x19, 0xac, 0xe2, 0x79, 0x5a, 0x19, 0xc8, 0x16, - 0x34, 0x42, 0x2e, 0x55, 0x2c, 0x24, 0xfa, 0x5d, 0x11, 0x8f, 0x9a, 0x5a, 0x01, 0xac, 0xfc, 0x34, - 0x0e, 0x47, 0xba, 0xc2, 0x43, 0x58, 0x4d, 0x52, 0x1e, 0x08, 0x2d, 0x94, 0xf4, 0x07, 0xc2, 0x68, - 0x54, 0x5d, 0xa1, 0x2b, 0xa5, 0x75, 0x57, 0x18, 0x4d, 0xde, 0x07, 0xc2, 0xb4, 0xaf, 0x4e, 0xdc, - 0x4d, 0xfa, 0x43, 0x2e, 0x4e, 0x87, 0x26, 0xdf, 0x60, 0x8d, 0xe9, 0x2f, 0x4e, 0xf0, 0x16, 0x9f, - 0xa1, 0xb9, 0xf5, 0xf7, 0x1a, 0xd4, 0x77, 0xb4, 0xe6, 0xe6, 0xb9, 0x3c, 0x51, 0x64, 0x07, 0x96, - 0x99, 0x5d, 0x14, 0x7d, 0xa7, 0xb1, 0xfd, 0xdd, 0xce, 0x44, 0xe3, 0x74, 0xad, 0xb0, 0xe8, 0x63, - 0x1d, 0xc7, 0x0d, 0xe9, 0x12, 0x73, 0x3f, 0x48, 0x0f, 0x16, 0xf0, 0x10, 0xb8, 0x61, 0x63, 0xfb, - 0xbd, 0x6b, 0xf8, 0xfb, 0x16, 0x4b, 0x1d, 0xe5, 0xbf, 0x44, 0x3e, 0xf7, 0x8d, 0x91, 0x93, 0x77, - 0xa1, 0x69, 0x94, 0xb1, 0xb7, 0x9b, 0x25, 0x49, 0x74, 0x99, 0x37, 0xab, 0x06, 0xda, 0x0e, 0xd1, - 0xd4, 0xfa, 0xd5, 0x02, 0x34, 0xf7, 0x54, 0x9c, 0xb0, 0xc0, 0x20, 0x93, 0xdc, 0x85, 0xc5, 0x5c, - 0xd4, 0xdd, 0x47, 0xbe, 0x22, 0x5f, 0xc2, 0xaa, 0x36, 0xcc, 0x70, 0x3f, 0x61, 0x97, 0x91, 0x62, - 0xa1, 0xf6, 0x66, 0xb7, 0xe6, 0xda, 0x8d, 0xed, 0xc7, 0x9d, 0x69, 0x63, 0xa3, 0x73, 0x68, 0x39, - 0x7d, 0x47, 0xa1, 0x2b, 0x7a, 0x64, 0xa5, 0xc9, 0x33, 0x00, 0x99, 0x45, 0x91, 0x38, 0x11, 0x3c, - 0xb5, 0xad, 0xd7, 0xca, 0xb5, 0xaf, 0x49, 0xc6, 0xcb, 0x82, 0x40, 0x47, 0xb8, 0x56, 0xc9, 0xe5, - 0x23, 0x55, 0xca, 0xf5, 0xe4, 0xc6, 0xf6, 0xa3, 0x6b, 0x94, 0x5e, 0xf0, 0xf4, 0x75, 0xc4, 0xa9, - 0x52, 0x86, 0xd6, 0x91, 0x6c, 0x7f, 0x5a, 0x25, 0x37, 0x3b, 0x50, 0xe9, 0x5b, 0x37, 0x56, 0x42, - 0x32, 0x2a, 0x3d, 0x82, 0x5b, 0x55, 0x75, 0x19, 0x96, 0x1a, 0x1e, 0x62, 0xc7, 0x58, 0xa6, 0x6b, - 0x65, 0x55, 0x39, 0x33, 0xa1, 0xb0, 0x7a, 0x12, 0x87, 0x7e, 0x52, 0xbe, 0x63, 0x2f, 0xc4, 0x8d, - 0xdf, 0x9f, 0x9e, 0xdb, 0xb1, 0xa7, 0x4f, 0x57, 0x4e, 0xc6, 0x2a, 0x81, 0x42, 0x53, 0x9f, 0xb3, - 0xc4, 0x57, 0x99, 0x49, 0x32, 0xa3, 0xbd, 0x05, 0x4c, 0x6f, 0x77, 0x42, 0xd1, 0xce, 0xd8, 0x52, - 0x6f, 0x97, 0x99, 0x60, 0x78, 0x78, 0xce, 0x92, 0x2f, 0x90, 0xb3, 0xcf, 0x0c, 0xa3, 0x0d, 0x5d, - 0xae, 0x35, 0xf9, 0x05, 0xdc, 0x72, 0x33, 0x77, 0x24, 0xd2, 0x45, 0x8c, 0xf4, 0xfb, 0xd3, 0x23, - 0x9d, 0x18, 0xde, 0x74, 0x2d, 0x18, 0x37, 0xb4, 0xfe, 0x35, 0x0f, 0xcd, 0xd1, 0xa7, 0x42, 0x28, - 0xd4, 0x53, 0x15, 0x45, 0x3c, 0xf4, 0xb3, 0x24, 0xaf, 0xb3, 0x0f, 0xdf, 0xfe, 0xa5, 0x75, 0x28, - 0x72, 0x7f, 0x96, 0x3c, 0x9b, 0xa1, 0xcb, 0x69, 0xfe, 0x9b, 0x3c, 0x85, 0x79, 0xa9, 0x0c, 0xcf, - 0xcb, 0xae, 0x7b, 0x03, 0xb9, 0x97, 0xca, 0xf0, 0x67, 0x33, 0x14, 0xe9, 0x56, 0xc6, 0x26, 0x05, - 0x8b, 0xee, 0x66, 0x32, 0x36, 0xb7, 0x56, 0xc6, 0xd2, 0xd7, 0x5f, 0xc1, 0x72, 0x11, 0x25, 0x79, - 0x09, 0x10, 0xa8, 0x38, 0x16, 0x26, 0xe6, 0xd2, 0xe4, 0xc7, 0xed, 0x5c, 0xf3, 0xea, 0x50, 0x79, - 0xaf, 0x64, 0xd1, 0x11, 0x85, 0xf5, 0xdf, 0xd4, 0x60, 0xde, 0xc6, 0x4c, 0x9e, 0xc0, 0xa2, 0x56, - 0x59, 0x1a, 0xf0, 0x5c, 0xb4, 0x3d, 0x3d, 0x5a, 0xcb, 0x39, 0x44, 0x3c, 0xcd, 0x79, 0xe4, 0x27, - 0x63, 0x49, 0x7b, 0x7c, 0x5d, 0x79, 0xaa, 0xaa, 0xda, 0x91, 0xb7, 0xfe, 0xeb, 0x1a, 0xcc, 0xdb, - 0x73, 0xff, 0x1f, 0x42, 0xf9, 0x24, 0x4f, 0xbc, 0x0b, 0xe5, 0x7b, 0xd3, 0x9e, 0xb2, 0xdd, 0xb1, - 0x8c, 0xc3, 0x92, 0x76, 0xd7, 0x60, 0x65, 0xac, 0x7f, 0xb5, 0x3e, 0x83, 0xc6, 0x67, 0x52, 0x9d, - 0x4b, 0x6c, 0xcf, 0x9a, 0xfc, 0x18, 0x16, 0xb1, 0x3f, 0xdb, 0x89, 0x31, 0xf7, 0x16, 0x5d, 0x19, - 0x69, 0x34, 0xe7, 0xb4, 0x5a, 0x00, 0x55, 0xc0, 0xe4, 0x36, 0x2c, 0x08, 0x29, 0xb9, 0x1b, 0x69, - 0x4d, 0xea, 0x16, 0xad, 0x4b, 0xa8, 0xe3, 0x38, 0xc4, 0x31, 0xf2, 0x1c, 0x1a, 0x36, 0x3d, 0xfe, - 0xff, 0x98, 0x12, 0x90, 0xd5, 0x6e, 0xef, 0x42, 0xd3, 0x0d, 0xe2, 0xb1, 0x31, 0xd6, 0x40, 0x5b, - 0x3e, 0xc2, 0xfe, 0x38, 0x07, 0x6b, 0x07, 0x5c, 0x72, 0x2d, 0xf4, 0x4e, 0x92, 0xe0, 0xcb, 0x21, - 0x7d, 0x68, 0x8e, 0x14, 0xb3, 0xce, 0x43, 0xb8, 0x61, 0x21, 0x37, 0xaa, 0x42, 0xd6, 0xe4, 0x00, - 0xa0, 0xfc, 0x3c, 0x2e, 0xc6, 0xc3, 0xe4, 0x2d, 0xb9, 0x8f, 0xff, 0x52, 0xaf, 0xfc, 0x62, 0xa6, - 0x23, 0x54, 0xf2, 0x0a, 0x1a, 0x2c, 0x8a, 0x54, 0x80, 0xdf, 0xe9, 0xc5, 0x64, 0xf8, 0x78, 0x7a, - 0x64, 0x13, 0xc7, 0xeb, 0xec, 0x94, 0x02, 0x74, 0x54, 0x6c, 0xfd, 0xf7, 0x35, 0x80, 0xca, 0x47, - 0x3e, 0x85, 0xc5, 0xfc, 0xb3, 0xcc, 0x9d, 0xff, 0xe1, 0x75, 0xd7, 0x8e, 0x60, 0x9a, 0x93, 0xec, - 0x4d, 0x57, 0xa3, 0xbc, 0x5e, 0x0c, 0xe9, 0x27, 0xb0, 0xc4, 0xc2, 0x30, 0xe5, 0x5a, 0xe7, 0x4d, - 0xe2, 0xda, 0x4f, 0x04, 0x87, 0xa6, 0x05, 0xad, 0xf5, 0x04, 0x16, 0xf0, 0xaf, 0x87, 0x7b, 0x4a, - 0x21, 0xbf, 0xc8, 0xa7, 0xb1, 0x5b, 0xe0, 0x95, 0xdb, 0xd9, 0x31, 0x79, 0xe5, 0xd6, 0xe6, 0xae, - 0x7c, 0xf7, 0x4f, 0xb3, 0x7f, 0xbe, 0xda, 0xac, 0x7d, 0x7d, 0xb5, 0x59, 0xfb, 0xc7, 0xd5, 0x66, - 0xed, 0xb7, 0x6f, 0x36, 0x67, 0xbe, 0x7e, 0xb3, 0x39, 0xf3, 0xb7, 0x37, 0x9b, 0x33, 0xb0, 0x15, - 0xa8, 0x78, 0x6a, 0x32, 0x77, 0xc1, 0xdd, 0xb3, 0xfd, 0xf3, 0xd5, 0xaf, 0xbd, 0x3a, 0x3a, 0x15, - 0x66, 0x98, 0x0d, 0x3a, 0x81, 0x8a, 0xbb, 0x81, 0xd2, 0xb1, 0xd2, 0xdd, 0x94, 0x47, 0xec, 0x92, - 0xa7, 0xdd, 0xb3, 0xed, 0xf2, 0x27, 0x4a, 0xe8, 0xee, 0xb4, 0xbf, 0x9b, 0x9f, 0xe0, 0xb2, 0x58, - 0xfd, 0x6e, 0x76, 0xae, 0xbf, 0xb7, 0xf7, 0x87, 0xd9, 0x8d, 0x7e, 0x11, 0xca, 0x9e, 0x0d, 0x05, - 0xb7, 0xee, 0x1c, 0xe5, 0xa0, 0xbf, 0x54, 0xee, 0x63, 0xeb, 0x3e, 0x46, 0xf7, 0x71, 0xe1, 0xbe, - 0x9a, 0x6d, 0x4f, 0x73, 0x1f, 0x1f, 0xf4, 0x77, 0x5f, 0x70, 0xc3, 0x42, 0x66, 0xd8, 0x3f, 0x67, - 0x1f, 0x14, 0xd0, 0x5e, 0xcf, 0x62, 0x7b, 0x3d, 0x04, 0xf7, 0x7a, 0x05, 0x7a, 0xb0, 0x88, 0x7f, - 0x37, 0x3f, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0xae, 0x76, 0x40, 0x34, 0x0f, 0x00, - 0x00, + // 1561 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x8f, 0x24, 0x47, + 0x11, 0x9e, 0x9e, 0x77, 0x47, 0xf7, 0xcc, 0x2c, 0xe9, 0x7d, 0xd4, 0x0e, 0xc3, 0x6c, 0xbb, 0xe5, + 0x85, 0xde, 0xb5, 0xe8, 0xc6, 0x6d, 0x0b, 0xac, 0x36, 0x46, 0x3b, 0x8f, 0x65, 0x76, 0x65, 0xef, + 0xba, 0x9d, 0x63, 0x16, 0xb4, 0x5a, 0x54, 0xca, 0xae, 0xca, 0x99, 0x4e, 0x6d, 0x55, 0x66, 0x51, + 0x99, 0x35, 0x8f, 0x3b, 0x48, 0x1c, 0xf9, 0x0d, 0x70, 0xe3, 0x80, 0xc4, 0xbf, 0x40, 0x9c, 0x7c, + 0x44, 0x9c, 0xd0, 0xec, 0x8d, 0x13, 0x07, 0x7e, 0x00, 0xca, 0xc8, 0x7a, 0xf4, 0x34, 0xa6, 0xc7, + 0x83, 0x7c, 0xab, 0x8c, 0xf8, 0xbe, 0x2f, 0xa3, 0x22, 0x32, 0x32, 0xaa, 0xa0, 0x93, 0x70, 0x99, + 0xc5, 0xa3, 0x94, 0xf5, 0x02, 0x95, 0xf2, 0x5e, 0x30, 0x66, 0x42, 0xf6, 0x4e, 0xde, 0x63, 0x51, + 0x32, 0x66, 0xef, 0xb9, 0x65, 0x37, 0x49, 0x95, 0x51, 0x64, 0xab, 0x40, 0x76, 0x2d, 0xb2, 0xeb, + 0x5c, 0x05, 0x72, 0xf3, 0xe1, 0x94, 0x4e, 0x7a, 0x9e, 0x18, 0x35, 0x21, 0x84, 0x6b, 0xa7, 0xb4, + 0x39, 0xb5, 0xa7, 0x36, 0xec, 0x35, 0xaf, 0xa0, 0xb8, 0xcc, 0x91, 0xef, 0x5c, 0x46, 0x86, 0xfc, + 0xac, 0xc2, 0x85, 0xfc, 0xcc, 0xa1, 0xda, 0xff, 0x5e, 0x81, 0x8d, 0x3d, 0x1b, 0xce, 0x90, 0xa5, + 0x2c, 0xe6, 0x86, 0xa7, 0x9a, 0xdc, 0x85, 0x55, 0x8c, 0xd0, 0x17, 0xa1, 0x57, 0x6b, 0xd5, 0x3a, + 0x75, 0xba, 0x82, 0xeb, 0xa7, 0x21, 0xb9, 0x0f, 0xeb, 0x3c, 0x51, 0xc1, 0xd8, 0x0f, 0xb3, 0x94, + 0x19, 0xa1, 0xa4, 0x37, 0xdf, 0xaa, 0x75, 0x16, 0xe9, 0x1a, 0x5a, 0xf7, 0x73, 0x23, 0x79, 0x00, + 0x37, 0x32, 0x39, 0x52, 0x32, 0x14, 0xf2, 0xd8, 0x47, 0x97, 0xf6, 0x16, 0x10, 0xb8, 0x51, 0xda, + 0x1f, 0xa3, 0x99, 0x7c, 0x00, 0xb7, 0x59, 0x60, 0xc4, 0x09, 0xf7, 0x4f, 0x58, 0x24, 0x42, 0x66, + 0x54, 0xea, 0x47, 0x22, 0x16, 0xc6, 0x5b, 0x44, 0xc2, 0x4d, 0xe7, 0x7d, 0x51, 0x38, 0x3f, 0xb5, + 0x3e, 0xd2, 0x81, 0x1b, 0x23, 0xa6, 0xb9, 0x9f, 0xf2, 0x53, 0x96, 0x86, 0x7e, 0xca, 0x0c, 0xf7, + 0xea, 0x88, 0x5f, 0xb7, 0x76, 0x8a, 0x66, 0xca, 0x0c, 0x27, 0x8f, 0x60, 0x4b, 0x47, 0x4c, 0x8f, + 0x6d, 0x24, 0x09, 0x97, 0x2c, 0x32, 0xe7, 0x7e, 0x2c, 0xf4, 0x88, 0x8f, 0xd9, 0x89, 0x50, 0xa9, + 0xb7, 0x84, 0xac, 0xcd, 0x02, 0x33, 0x74, 0x90, 0x67, 0x15, 0x82, 0x0c, 0xe0, 0xee, 0x7f, 0x29, + 0x84, 0xea, 0x54, 0x1a, 0x11, 0x73, 0x0f, 0x90, 0x7e, 0x67, 0x8a, 0xbe, 0x9f, 0xbb, 0xc9, 0x8f, + 0xc0, 0xd3, 0xe2, 0x58, 0xf2, 0xd0, 0x1f, 0x45, 0x2a, 0x78, 0xad, 0xfd, 0x53, 0x21, 0x43, 0x75, + 0xea, 0x47, 0x5c, 0x7a, 0x0d, 0xa4, 0xde, 0x72, 0xfe, 0x5d, 0x74, 0xff, 0x1c, 0xbd, 0x9f, 0x72, + 0x49, 0xfa, 0x70, 0x2b, 0x16, 0x5a, 0x57, 0xc4, 0x98, 0x9d, 0x89, 0x38, 0x8b, 0xbd, 0x26, 0xb2, + 0xde, 0x72, 0x4e, 0xc7, 0x7a, 0xe6, 0x5c, 0xe4, 0x1e, 0x34, 0xc4, 0x28, 0xf0, 0xb9, 0x64, 0xa3, + 0x88, 0x87, 0xde, 0x72, 0xab, 0xd6, 0x59, 0xa5, 0x20, 0x46, 0xc1, 0x63, 0x67, 0x21, 0x8f, 0xe1, + 0x9e, 0x90, 0x23, 0x95, 0xc9, 0xd0, 0x17, 0x81, 0xee, 0xff, 0xc0, 0x37, 0x29, 0x93, 0xfa, 0x88, + 0xa7, 0xba, 0x24, 0xad, 0x20, 0x69, 0x2b, 0x87, 0x3d, 0xb5, 0xa8, 0x2f, 0x0a, 0x50, 0x21, 0x73, + 0x00, 0x2d, 0x95, 0x99, 0xd9, 0x3a, 0xab, 0xa8, 0xf3, 0x9d, 0x02, 0xf7, 0xd5, 0x42, 0x1f, 0xc0, + 0xed, 0x24, 0x55, 0x89, 0xd2, 0x2c, 0xf2, 0x4f, 0x94, 0xb1, 0x09, 0x76, 0x6f, 0xeb, 0xdd, 0x74, + 0xb5, 0x2f, 0xbc, 0x2f, 0xd0, 0xe9, 0xde, 0x96, 0xfc, 0x12, 0xee, 0x94, 0xac, 0x90, 0x27, 0x4a, + 0x0b, 0xe3, 0xb3, 0x58, 0x65, 0xd2, 0x78, 0xb7, 0x5a, 0xb5, 0x4e, 0xa3, 0x7f, 0xbf, 0x3b, 0xd5, + 0x6e, 0xae, 0x81, 0x8a, 0xd3, 0xdf, 0xdd, 0x41, 0x30, 0xbd, 0x55, 0xa8, 0xec, 0x3b, 0x11, 0x67, + 0xb6, 0x99, 0xaf, 0x82, 0xb2, 0xa7, 0xce, 0xff, 0x55, 0xa6, 0xd2, 0x2c, 0xf6, 0x6e, 0x63, 0x2b, + 0xbc, 0x55, 0xc6, 0x64, 0x7d, 0x9f, 0xa3, 0x8b, 0xfc, 0x70, 0x22, 0xa4, 0x84, 0x69, 0xed, 0x9b, + 0x71, 0xca, 0xf5, 0x58, 0x45, 0xa1, 0x77, 0x07, 0x59, 0xa5, 0xe4, 0x90, 0x69, 0xfd, 0x45, 0xe1, + 0x24, 0x1f, 0x82, 0x57, 0xf2, 0xf0, 0x08, 0x4d, 0x10, 0x3d, 0x24, 0x96, 0x09, 0x3a, 0xb4, 0xee, + 0x8a, 0xf9, 0x31, 0x7c, 0x3b, 0x64, 0xca, 0xd7, 0x09, 0x97, 0xa1, 0x5f, 0x60, 0xaa, 0xf4, 0xdf, + 0xc5, 0xf4, 0x7b, 0x21, 0x53, 0x87, 0x16, 0x31, 0x2c, 0x00, 0x79, 0xe6, 0xdb, 0x07, 0xb0, 0x44, + 0x6d, 0xab, 0x92, 0x2d, 0xa8, 0xcb, 0x2c, 0xe6, 0xa9, 0x6d, 0x2d, 0x6c, 0xf6, 0x45, 0x5a, 0x19, + 0x48, 0x0b, 0x1a, 0x21, 0x97, 0x2a, 0x16, 0x12, 0xfd, 0xae, 0xd7, 0x27, 0x4d, 0xed, 0x00, 0xd6, + 0x7e, 0x1a, 0x87, 0x13, 0x97, 0xc7, 0x7d, 0x58, 0x4f, 0x52, 0x1e, 0x08, 0x2d, 0x94, 0xf4, 0x47, + 0xc2, 0x68, 0x54, 0x5d, 0xa3, 0x6b, 0xa5, 0x75, 0x57, 0x18, 0x4d, 0xde, 0x05, 0xc2, 0xb4, 0xaf, + 0x8e, 0x5c, 0xc1, 0xfd, 0x31, 0x17, 0xc7, 0x63, 0x93, 0x6f, 0xb0, 0xc1, 0xf4, 0x67, 0x47, 0x58, + 0xec, 0x27, 0x68, 0x6e, 0xff, 0xbd, 0x06, 0xf5, 0x1d, 0xad, 0xb9, 0x79, 0x2a, 0x8f, 0x14, 0xd9, + 0x81, 0x55, 0x66, 0x17, 0xc5, 0xf5, 0xd4, 0xe8, 0x7f, 0xf7, 0xaa, 0x82, 0x23, 0x37, 0xa4, 0x2b, + 0xcc, 0x3d, 0x90, 0x01, 0x2c, 0xe1, 0x4b, 0xe0, 0x86, 0x8d, 0xfe, 0x3b, 0x57, 0xf0, 0xf7, 0x2d, + 0x96, 0x3a, 0xca, 0xff, 0x88, 0x7c, 0xe1, 0x2b, 0x23, 0x27, 0x6f, 0x43, 0xd3, 0x28, 0x63, 0xab, + 0x9b, 0x25, 0x49, 0x74, 0x9e, 0xdf, 0x69, 0x0d, 0xb4, 0x1d, 0xa2, 0xa9, 0xfd, 0xeb, 0x25, 0x68, + 0xee, 0xa9, 0x38, 0x61, 0x81, 0x41, 0x26, 0xb9, 0x0d, 0xcb, 0xb9, 0xa8, 0xab, 0x47, 0xbe, 0x22, + 0x9f, 0xc3, 0xba, 0x36, 0xcc, 0x70, 0x3f, 0x61, 0xe7, 0x91, 0x62, 0xa1, 0xf6, 0xe6, 0x5b, 0x0b, + 0x9d, 0x46, 0xff, 0x61, 0x77, 0xd6, 0x74, 0xe9, 0x1e, 0x5a, 0xce, 0xd0, 0x51, 0xe8, 0x9a, 0x9e, + 0x58, 0x69, 0xf2, 0x04, 0x40, 0x66, 0x51, 0x24, 0x8e, 0x04, 0x4f, 0xed, 0x0d, 0x6d, 0xe5, 0x3a, + 0x57, 0x24, 0xe3, 0x79, 0x41, 0xa0, 0x13, 0x5c, 0xab, 0xe4, 0xf2, 0x91, 0x2a, 0xe5, 0xae, 0xee, + 0x46, 0xff, 0xc1, 0x15, 0x4a, 0xcf, 0x78, 0xfa, 0x3a, 0xe2, 0x54, 0x29, 0x43, 0xeb, 0x48, 0xb6, + 0x8f, 0x56, 0xc9, 0x8d, 0x18, 0x54, 0xfa, 0xd6, 0xb5, 0x95, 0x90, 0x8c, 0x4a, 0x0f, 0xe0, 0x46, + 0xd5, 0x5d, 0x86, 0xa5, 0x86, 0x87, 0x78, 0xb1, 0xac, 0xd2, 0x8d, 0xb2, 0xab, 0x9c, 0x99, 0x50, + 0x58, 0x3f, 0x8a, 0x43, 0x3f, 0x29, 0xcf, 0xb1, 0x17, 0xe2, 0xc6, 0xef, 0xce, 0xce, 0xed, 0xa5, + 0xa3, 0x4f, 0xd7, 0x8e, 0x2e, 0x75, 0x02, 0x85, 0xa6, 0x3e, 0x65, 0x89, 0xaf, 0x32, 0x93, 0x64, + 0x46, 0x7b, 0x4b, 0x98, 0xde, 0xde, 0x94, 0xa2, 0x1d, 0xc5, 0xa5, 0xde, 0x2e, 0x33, 0xc1, 0xf8, + 0xf0, 0x94, 0x25, 0x9f, 0x21, 0x67, 0x9f, 0x19, 0x46, 0x1b, 0xba, 0x5c, 0x6b, 0xf2, 0x0b, 0xb8, + 0xe1, 0x46, 0xf3, 0x44, 0xa4, 0xcb, 0x18, 0xe9, 0xf7, 0x67, 0x47, 0x3a, 0x35, 0xe3, 0xe9, 0x46, + 0x70, 0xd9, 0xd0, 0xfe, 0xd7, 0x22, 0x34, 0x27, 0x8f, 0x0a, 0xa1, 0x50, 0x4f, 0x55, 0x14, 0xf1, + 0xd0, 0xcf, 0x92, 0xbc, 0xcf, 0xde, 0xff, 0xfa, 0x27, 0xad, 0x4b, 0x91, 0xfb, 0xb3, 0xe4, 0xc9, + 0x1c, 0x5d, 0x4d, 0xf3, 0x67, 0xf2, 0x18, 0x16, 0xa5, 0x32, 0x3c, 0x6f, 0xbb, 0xde, 0x35, 0xe4, + 0x9e, 0x2b, 0xc3, 0x9f, 0xcc, 0x51, 0xa4, 0x5b, 0x19, 0x9b, 0x14, 0x6c, 0xba, 0xeb, 0xc9, 0xd8, + 0xdc, 0x5a, 0x19, 0x4b, 0xdf, 0x7c, 0x09, 0xab, 0x45, 0x94, 0xe4, 0x39, 0x40, 0xa0, 0xe2, 0x58, + 0x98, 0x98, 0x4b, 0x93, 0xbf, 0x6e, 0xf7, 0x8a, 0x53, 0x87, 0xca, 0x7b, 0x25, 0x8b, 0x4e, 0x28, + 0x6c, 0xfe, 0xb6, 0x06, 0x8b, 0x36, 0x66, 0xf2, 0x08, 0x96, 0xb5, 0xca, 0xd2, 0x80, 0xe7, 0xa2, + 0x9d, 0xd9, 0xd1, 0x5a, 0xce, 0x21, 0xe2, 0x69, 0xce, 0x23, 0x3f, 0xb9, 0x94, 0xb4, 0x87, 0x57, + 0xb5, 0xa7, 0xaa, 0xba, 0x1d, 0x79, 0x9b, 0xbf, 0xa9, 0xc1, 0xa2, 0x7d, 0xef, 0x6f, 0x20, 0x94, + 0x8f, 0xf2, 0xc4, 0xbb, 0x50, 0xbe, 0x37, 0xeb, 0x28, 0xdb, 0x1d, 0xcb, 0x38, 0x2c, 0x69, 0x77, + 0x03, 0xd6, 0x2e, 0xdd, 0x5f, 0xed, 0x4f, 0xa0, 0xf1, 0x89, 0x54, 0xa7, 0x12, 0xaf, 0x67, 0x4d, + 0x7e, 0x0c, 0xcb, 0x78, 0x3f, 0xdb, 0x89, 0xb1, 0xf0, 0x35, 0x6e, 0x65, 0xa4, 0xd1, 0x9c, 0xd3, + 0x6e, 0x03, 0x54, 0x01, 0x93, 0x9b, 0xb0, 0x24, 0xa4, 0xe4, 0x6e, 0xa4, 0x35, 0xa9, 0x5b, 0xb4, + 0xcf, 0xa1, 0x8e, 0xe3, 0x10, 0xc7, 0xc8, 0x53, 0x68, 0xd8, 0xf4, 0xf8, 0xff, 0x67, 0x4a, 0x40, + 0x56, 0xbb, 0xbd, 0x0d, 0x4d, 0x37, 0x88, 0x2f, 0x8d, 0xb1, 0x06, 0xda, 0xf2, 0x11, 0xf6, 0xa7, + 0x05, 0xd8, 0x38, 0xe0, 0x92, 0x6b, 0xa1, 0x77, 0x92, 0x04, 0x4f, 0x0e, 0x19, 0x42, 0x73, 0xa2, + 0x99, 0x75, 0x1e, 0xc2, 0x35, 0x1b, 0xb9, 0x51, 0x35, 0xb2, 0x26, 0x07, 0x00, 0xe5, 0x57, 0x74, + 0x31, 0x1e, 0xa6, 0xab, 0xe4, 0xfe, 0x11, 0x4a, 0xbd, 0xf2, 0xc3, 0x9a, 0x4e, 0x50, 0xc9, 0x4b, + 0x68, 0xb0, 0x28, 0x52, 0x01, 0x7e, 0xce, 0x17, 0x93, 0xe1, 0xc3, 0xd9, 0x91, 0x4d, 0xbd, 0x5e, + 0x77, 0xa7, 0x14, 0xa0, 0x93, 0x62, 0x9b, 0x7f, 0xa8, 0x01, 0x54, 0x3e, 0xf2, 0x31, 0x2c, 0xe7, + 0x5f, 0x6f, 0xb5, 0xeb, 0x7c, 0xbd, 0xe5, 0x24, 0x5b, 0xe9, 0x6a, 0x94, 0xd7, 0x8b, 0x21, 0xfd, + 0x08, 0x56, 0x58, 0x18, 0xa6, 0x5c, 0xeb, 0xfc, 0x92, 0xb8, 0xf2, 0x13, 0xc1, 0xa1, 0x69, 0x41, + 0x6b, 0x3f, 0x82, 0x25, 0xfc, 0x43, 0x71, 0x47, 0x29, 0xe4, 0x67, 0xf9, 0x34, 0x76, 0x0b, 0x2c, + 0xb9, 0x9d, 0x1d, 0xd3, 0x25, 0xb7, 0x36, 0x57, 0xf2, 0xdd, 0x3f, 0xcf, 0xff, 0xe5, 0x62, 0xbb, + 0xf6, 0xe5, 0xc5, 0x76, 0xed, 0x1f, 0x17, 0xdb, 0xb5, 0xdf, 0xbd, 0xd9, 0x9e, 0xfb, 0xf2, 0xcd, + 0xf6, 0xdc, 0xdf, 0xde, 0x6c, 0xcf, 0x41, 0x2b, 0x50, 0xf1, 0xcc, 0x64, 0xee, 0x82, 0xab, 0xb3, + 0xfd, 0x47, 0x1b, 0xd6, 0x5e, 0xbe, 0x38, 0x16, 0x66, 0x9c, 0x8d, 0xba, 0x81, 0x8a, 0x7b, 0x81, + 0xd2, 0xb1, 0xd2, 0xbd, 0x94, 0x47, 0xec, 0x9c, 0xa7, 0xbd, 0x93, 0x7e, 0xf9, 0x88, 0x12, 0xba, + 0x37, 0xeb, 0xaf, 0xf4, 0x23, 0x5c, 0x16, 0xab, 0xdf, 0xcf, 0x2f, 0x0c, 0xf7, 0xf6, 0xfe, 0x38, + 0xbf, 0x35, 0x2c, 0x42, 0xd9, 0xb3, 0xa1, 0xe0, 0xd6, 0xdd, 0x17, 0x39, 0xe8, 0xaf, 0x95, 0xfb, + 0x95, 0x75, 0xbf, 0x42, 0xf7, 0xab, 0xc2, 0x7d, 0x31, 0xdf, 0x99, 0xe5, 0x7e, 0x75, 0x30, 0xdc, + 0x7d, 0xc6, 0x0d, 0x0b, 0x99, 0x61, 0xff, 0x9c, 0xbf, 0x57, 0x40, 0x07, 0x03, 0x8b, 0x1d, 0x0c, + 0x10, 0x3c, 0x18, 0x14, 0xe8, 0xd1, 0x32, 0xfe, 0x95, 0xbe, 0xff, 0x9f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x6a, 0x54, 0x2e, 0xcf, 0x5b, 0x0f, 0x00, 0x00, } func (m *ChainParameters) Marshal() (dAtA []byte, err error) { @@ -1265,12 +1265,19 @@ func (m *ChainParameters) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0xb2 } - if m.ProposalDepositAmount != 0 { - i = encodeVarintChain(dAtA, i, uint64(m.ProposalDepositAmount)) + if m.ProposalDepositAmount != nil { + { + size, err := m.ProposalDepositAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xa8 + dAtA[i] = 0xaa } if m.ProposalVotingBlocks != 0 { i = encodeVarintChain(dAtA, i, uint64(m.ProposalVotingBlocks)) @@ -2154,8 +2161,9 @@ func (m *ChainParameters) Size() (n int) { if m.ProposalVotingBlocks != 0 { n += 2 + sovChain(uint64(m.ProposalVotingBlocks)) } - if m.ProposalDepositAmount != 0 { - n += 2 + sovChain(uint64(m.ProposalDepositAmount)) + if m.ProposalDepositAmount != nil { + l = m.ProposalDepositAmount.Size() + n += 2 + l + sovChain(uint64(l)) } l = len(m.ProposalValidQuorum) if l > 0 { @@ -2776,10 +2784,10 @@ func (m *ChainParameters) Unmarshal(dAtA []byte) error { } } case 21: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ProposalDepositAmount", wireType) } - m.ProposalDepositAmount = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowChain @@ -2789,11 +2797,28 @@ func (m *ChainParameters) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ProposalDepositAmount |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProposalDepositAmount == nil { + m.ProposalDepositAmount = &v1alpha1.Amount{} + } + if err := m.ProposalDepositAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 22: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ProposalValidQuorum", wireType) diff --git a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go index 5c4eb0ff0..344a9012a 100644 --- a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go +++ b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go @@ -812,6 +812,194 @@ func (m *Denom) GetDenom() string { return "" } +// DenomMetadata represents a struct that describes a basic token. +type DenomMetadata struct { + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + // denom_units represents the list of DenomUnit's for a given coin + DenomUnits []*DenomUnit `protobuf:"bytes,2,rep,name=denom_units,json=denomUnits,proto3" json:"denom_units,omitempty"` + // base represents the base denom (should be the DenomUnit with exponent = 0). + Base string `protobuf:"bytes,3,opt,name=base,proto3" json:"base,omitempty"` + // display indicates the suggested denom that should be + // displayed in clients. + Display string `protobuf:"bytes,4,opt,name=display,proto3" json:"display,omitempty"` + // name defines the name of the token (eg: Cosmos Atom) + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + // be the same as the display. + Symbol string `protobuf:"bytes,6,opt,name=symbol,proto3" json:"symbol,omitempty"` + // URI to a document (on or off-chain) that contains additional information. Optional. + Uri string `protobuf:"bytes,7,opt,name=uri,proto3" json:"uri,omitempty"` + // URIHash is a sha256 hash of a document pointed by URI. It's used to verify that + // the document didn't change. Optional. + UriHash string `protobuf:"bytes,8,opt,name=uri_hash,json=uriHash,proto3" json:"uri_hash,omitempty"` + // the asset ID on Penumbra for this denomination. + PenumbraAssetId *AssetId `protobuf:"bytes,1984,opt,name=penumbra_asset_id,json=penumbraAssetId,proto3" json:"penumbra_asset_id,omitempty"` +} + +func (m *DenomMetadata) Reset() { *m = DenomMetadata{} } +func (m *DenomMetadata) String() string { return proto.CompactTextString(m) } +func (*DenomMetadata) ProtoMessage() {} +func (*DenomMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{14} +} +func (m *DenomMetadata) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DenomMetadata.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DenomMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_DenomMetadata.Merge(m, src) +} +func (m *DenomMetadata) XXX_Size() int { + return m.Size() +} +func (m *DenomMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_DenomMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_DenomMetadata proto.InternalMessageInfo + +func (m *DenomMetadata) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *DenomMetadata) GetDenomUnits() []*DenomUnit { + if m != nil { + return m.DenomUnits + } + return nil +} + +func (m *DenomMetadata) GetBase() string { + if m != nil { + return m.Base + } + return "" +} + +func (m *DenomMetadata) GetDisplay() string { + if m != nil { + return m.Display + } + return "" +} + +func (m *DenomMetadata) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *DenomMetadata) GetSymbol() string { + if m != nil { + return m.Symbol + } + return "" +} + +func (m *DenomMetadata) GetUri() string { + if m != nil { + return m.Uri + } + return "" +} + +func (m *DenomMetadata) GetUriHash() string { + if m != nil { + return m.UriHash + } + return "" +} + +func (m *DenomMetadata) GetPenumbraAssetId() *AssetId { + if m != nil { + return m.PenumbraAssetId + } + return nil +} + +// DenomUnit represents a struct that describes a given denomination unit of the basic token. +type DenomUnit struct { + // denom represents the string name of the given denom unit (e.g uatom). + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 10^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + Exponent uint32 `protobuf:"varint,2,opt,name=exponent,proto3" json:"exponent,omitempty"` + // aliases is a list of string aliases for the given denom + Aliases []string `protobuf:"bytes,3,rep,name=aliases,proto3" json:"aliases,omitempty"` +} + +func (m *DenomUnit) Reset() { *m = DenomUnit{} } +func (m *DenomUnit) String() string { return proto.CompactTextString(m) } +func (*DenomUnit) ProtoMessage() {} +func (*DenomUnit) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{15} +} +func (m *DenomUnit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DenomUnit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DenomUnit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DenomUnit) XXX_Merge(src proto.Message) { + xxx_messageInfo_DenomUnit.Merge(m, src) +} +func (m *DenomUnit) XXX_Size() int { + return m.Size() +} +func (m *DenomUnit) XXX_DiscardUnknown() { + xxx_messageInfo_DenomUnit.DiscardUnknown(m) +} + +var xxx_messageInfo_DenomUnit proto.InternalMessageInfo + +func (m *DenomUnit) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *DenomUnit) GetExponent() uint32 { + if m != nil { + return m.Exponent + } + return 0 +} + +func (m *DenomUnit) GetAliases() []string { + if m != nil { + return m.Aliases + } + return nil +} + type Value struct { Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` @@ -821,7 +1009,7 @@ func (m *Value) Reset() { *m = Value{} } func (m *Value) String() string { return proto.CompactTextString(m) } func (*Value) ProtoMessage() {} func (*Value) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{14} + return fileDescriptor_5c23a0b4440af102, []int{16} } func (m *Value) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -885,7 +1073,7 @@ func (m *ValueView) Reset() { *m = ValueView{} } func (m *ValueView) String() string { return proto.CompactTextString(m) } func (*ValueView) ProtoMessage() {} func (*ValueView) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{15} + return fileDescriptor_5c23a0b4440af102, []int{17} } func (m *ValueView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -961,15 +1149,15 @@ func (*ValueView) XXX_OneofWrappers() []interface{} { // A value whose asset ID has a known denomination. type ValueView_KnownDenom struct { - Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - Denom *Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Denom *DenomMetadata `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` } func (m *ValueView_KnownDenom) Reset() { *m = ValueView_KnownDenom{} } func (m *ValueView_KnownDenom) String() string { return proto.CompactTextString(m) } func (*ValueView_KnownDenom) ProtoMessage() {} func (*ValueView_KnownDenom) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{15, 0} + return fileDescriptor_5c23a0b4440af102, []int{17, 0} } func (m *ValueView_KnownDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1005,7 +1193,7 @@ func (m *ValueView_KnownDenom) GetAmount() *Amount { return nil } -func (m *ValueView_KnownDenom) GetDenom() *Denom { +func (m *ValueView_KnownDenom) GetDenom() *DenomMetadata { if m != nil { return m.Denom } @@ -1021,7 +1209,7 @@ func (m *ValueView_UnknownDenom) Reset() { *m = ValueView_UnknownDenom{} func (m *ValueView_UnknownDenom) String() string { return proto.CompactTextString(m) } func (*ValueView_UnknownDenom) ProtoMessage() {} func (*ValueView_UnknownDenom) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{15, 1} + return fileDescriptor_5c23a0b4440af102, []int{17, 1} } func (m *ValueView_UnknownDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1072,7 +1260,7 @@ func (m *MerkleRoot) Reset() { *m = MerkleRoot{} } func (m *MerkleRoot) String() string { return proto.CompactTextString(m) } func (*MerkleRoot) ProtoMessage() {} func (*MerkleRoot) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{16} + return fileDescriptor_5c23a0b4440af102, []int{18} } func (m *MerkleRoot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1117,7 +1305,7 @@ func (m *Asset) Reset() { *m = Asset{} } func (m *Asset) String() string { return proto.CompactTextString(m) } func (*Asset) ProtoMessage() {} func (*Asset) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{17} + return fileDescriptor_5c23a0b4440af102, []int{19} } func (m *Asset) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1169,7 +1357,7 @@ func (m *IdentityKey) Reset() { *m = IdentityKey{} } func (m *IdentityKey) String() string { return proto.CompactTextString(m) } func (*IdentityKey) ProtoMessage() {} func (*IdentityKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{18} + return fileDescriptor_5c23a0b4440af102, []int{20} } func (m *IdentityKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1214,7 +1402,7 @@ func (m *GovernanceKey) Reset() { *m = GovernanceKey{} } func (m *GovernanceKey) String() string { return proto.CompactTextString(m) } func (*GovernanceKey) ProtoMessage() {} func (*GovernanceKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{19} + return fileDescriptor_5c23a0b4440af102, []int{21} } func (m *GovernanceKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1258,7 +1446,7 @@ func (m *ConsensusKey) Reset() { *m = ConsensusKey{} } func (m *ConsensusKey) String() string { return proto.CompactTextString(m) } func (*ConsensusKey) ProtoMessage() {} func (*ConsensusKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{20} + return fileDescriptor_5c23a0b4440af102, []int{22} } func (m *ConsensusKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1304,7 +1492,7 @@ func (m *Note) Reset() { *m = Note{} } func (m *Note) String() string { return proto.CompactTextString(m) } func (*Note) ProtoMessage() {} func (*Note) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{21} + return fileDescriptor_5c23a0b4440af102, []int{23} } func (m *Note) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1364,7 +1552,7 @@ func (m *NoteView) Reset() { *m = NoteView{} } func (m *NoteView) String() string { return proto.CompactTextString(m) } func (*NoteView) ProtoMessage() {} func (*NoteView) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{22} + return fileDescriptor_5c23a0b4440af102, []int{24} } func (m *NoteView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1424,7 +1612,7 @@ func (m *NoteCiphertext) Reset() { *m = NoteCiphertext{} } func (m *NoteCiphertext) String() string { return proto.CompactTextString(m) } func (*NoteCiphertext) ProtoMessage() {} func (*NoteCiphertext) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{23} + return fileDescriptor_5c23a0b4440af102, []int{25} } func (m *NoteCiphertext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1468,7 +1656,7 @@ func (m *Nullifier) Reset() { *m = Nullifier{} } func (m *Nullifier) String() string { return proto.CompactTextString(m) } func (*Nullifier) ProtoMessage() {} func (*Nullifier) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{24} + return fileDescriptor_5c23a0b4440af102, []int{26} } func (m *Nullifier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1512,7 +1700,7 @@ func (m *SpendAuthSignature) Reset() { *m = SpendAuthSignature{} } func (m *SpendAuthSignature) String() string { return proto.CompactTextString(m) } func (*SpendAuthSignature) ProtoMessage() {} func (*SpendAuthSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{25} + return fileDescriptor_5c23a0b4440af102, []int{27} } func (m *SpendAuthSignature) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1556,7 +1744,7 @@ func (m *BindingSignature) Reset() { *m = BindingSignature{} } func (m *BindingSignature) String() string { return proto.CompactTextString(m) } func (*BindingSignature) ProtoMessage() {} func (*BindingSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{26} + return fileDescriptor_5c23a0b4440af102, []int{28} } func (m *BindingSignature) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1608,7 +1796,7 @@ func (m *NotePayload) Reset() { *m = NotePayload{} } func (m *NotePayload) String() string { return proto.CompactTextString(m) } func (*NotePayload) ProtoMessage() {} func (*NotePayload) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{27} + return fileDescriptor_5c23a0b4440af102, []int{29} } func (m *NotePayload) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1669,7 +1857,7 @@ func (m *StateCommitmentProof) Reset() { *m = StateCommitmentProof{} } func (m *StateCommitmentProof) String() string { return proto.CompactTextString(m) } func (*StateCommitmentProof) ProtoMessage() {} func (*StateCommitmentProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{28} + return fileDescriptor_5c23a0b4440af102, []int{30} } func (m *StateCommitmentProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1730,7 +1918,7 @@ func (m *MerklePathChunk) Reset() { *m = MerklePathChunk{} } func (m *MerklePathChunk) String() string { return proto.CompactTextString(m) } func (*MerklePathChunk) ProtoMessage() {} func (*MerklePathChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{29} + return fileDescriptor_5c23a0b4440af102, []int{31} } func (m *MerklePathChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1789,7 +1977,7 @@ func (m *Clue) Reset() { *m = Clue{} } func (m *Clue) String() string { return proto.CompactTextString(m) } func (*Clue) ProtoMessage() {} func (*Clue) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{30} + return fileDescriptor_5c23a0b4440af102, []int{32} } func (m *Clue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1834,7 +2022,7 @@ func (m *EffectHash) Reset() { *m = EffectHash{} } func (m *EffectHash) String() string { return proto.CompactTextString(m) } func (*EffectHash) ProtoMessage() {} func (*EffectHash) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{31} + return fileDescriptor_5c23a0b4440af102, []int{33} } func (m *EffectHash) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1879,7 +2067,7 @@ func (m *ZKOutputProof) Reset() { *m = ZKOutputProof{} } func (m *ZKOutputProof) String() string { return proto.CompactTextString(m) } func (*ZKOutputProof) ProtoMessage() {} func (*ZKOutputProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{32} + return fileDescriptor_5c23a0b4440af102, []int{34} } func (m *ZKOutputProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1924,7 +2112,7 @@ func (m *ZKSpendProof) Reset() { *m = ZKSpendProof{} } func (m *ZKSpendProof) String() string { return proto.CompactTextString(m) } func (*ZKSpendProof) ProtoMessage() {} func (*ZKSpendProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{33} + return fileDescriptor_5c23a0b4440af102, []int{35} } func (m *ZKSpendProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1969,7 +2157,7 @@ func (m *ZKSwapProof) Reset() { *m = ZKSwapProof{} } func (m *ZKSwapProof) String() string { return proto.CompactTextString(m) } func (*ZKSwapProof) ProtoMessage() {} func (*ZKSwapProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{34} + return fileDescriptor_5c23a0b4440af102, []int{36} } func (m *ZKSwapProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2014,7 +2202,7 @@ func (m *ZKUndelegateClaimProof) Reset() { *m = ZKUndelegateClaimProof{} func (m *ZKUndelegateClaimProof) String() string { return proto.CompactTextString(m) } func (*ZKUndelegateClaimProof) ProtoMessage() {} func (*ZKUndelegateClaimProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{35} + return fileDescriptor_5c23a0b4440af102, []int{37} } func (m *ZKUndelegateClaimProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2059,7 +2247,7 @@ func (m *ZKDelegatorVoteProof) Reset() { *m = ZKDelegatorVoteProof{} } func (m *ZKDelegatorVoteProof) String() string { return proto.CompactTextString(m) } func (*ZKDelegatorVoteProof) ProtoMessage() {} func (*ZKDelegatorVoteProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{36} + return fileDescriptor_5c23a0b4440af102, []int{38} } func (m *ZKDelegatorVoteProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2095,6 +2283,51 @@ func (m *ZKDelegatorVoteProof) GetInner() []byte { return nil } +// A Penumbra ZK nullifier derivation proof. +type ZKNullifierDerivationProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKNullifierDerivationProof) Reset() { *m = ZKNullifierDerivationProof{} } +func (m *ZKNullifierDerivationProof) String() string { return proto.CompactTextString(m) } +func (*ZKNullifierDerivationProof) ProtoMessage() {} +func (*ZKNullifierDerivationProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{39} +} +func (m *ZKNullifierDerivationProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKNullifierDerivationProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKNullifierDerivationProof.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ZKNullifierDerivationProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKNullifierDerivationProof.Merge(m, src) +} +func (m *ZKNullifierDerivationProof) XXX_Size() int { + return m.Size() +} +func (m *ZKNullifierDerivationProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKNullifierDerivationProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKNullifierDerivationProof proto.InternalMessageInfo + +func (m *ZKNullifierDerivationProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + func init() { proto.RegisterType((*Fee)(nil), "penumbra.core.crypto.v1alpha1.Fee") proto.RegisterType((*Address)(nil), "penumbra.core.crypto.v1alpha1.Address") @@ -2112,6 +2345,8 @@ func init() { proto.RegisterType((*AssetId)(nil), "penumbra.core.crypto.v1alpha1.AssetId") proto.RegisterType((*Amount)(nil), "penumbra.core.crypto.v1alpha1.Amount") proto.RegisterType((*Denom)(nil), "penumbra.core.crypto.v1alpha1.Denom") + proto.RegisterType((*DenomMetadata)(nil), "penumbra.core.crypto.v1alpha1.DenomMetadata") + proto.RegisterType((*DenomUnit)(nil), "penumbra.core.crypto.v1alpha1.DenomUnit") proto.RegisterType((*Value)(nil), "penumbra.core.crypto.v1alpha1.Value") proto.RegisterType((*ValueView)(nil), "penumbra.core.crypto.v1alpha1.ValueView") proto.RegisterType((*ValueView_KnownDenom)(nil), "penumbra.core.crypto.v1alpha1.ValueView.KnownDenom") @@ -2137,6 +2372,7 @@ func init() { proto.RegisterType((*ZKSwapProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSwapProof") proto.RegisterType((*ZKUndelegateClaimProof)(nil), "penumbra.core.crypto.v1alpha1.ZKUndelegateClaimProof") proto.RegisterType((*ZKDelegatorVoteProof)(nil), "penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof") + proto.RegisterType((*ZKNullifierDerivationProof)(nil), "penumbra.core.crypto.v1alpha1.ZKNullifierDerivationProof") } func init() { @@ -2144,83 +2380,96 @@ func init() { } var fileDescriptor_5c23a0b4440af102 = []byte{ - // 1211 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xae, 0xf3, 0xf7, 0xf9, 0x4f, 0xcb, 0x2a, 0x42, 0x51, 0x20, 0x6e, 0xba, 0x4d, 0x43, - 0x5b, 0x8a, 0xad, 0x38, 0x82, 0x83, 0x11, 0x88, 0xd8, 0xa1, 0x4d, 0xb0, 0xda, 0x5a, 0x1b, 0xea, - 0x22, 0x2b, 0x92, 0x35, 0xd9, 0x9d, 0x78, 0x47, 0xde, 0x9d, 0x59, 0x76, 0x67, 0x9d, 0x1a, 0x3e, - 0x40, 0xc5, 0xad, 0x67, 0x8e, 0x1c, 0x38, 0xf0, 0x0d, 0xf8, 0x06, 0x88, 0x53, 0x8f, 0x3d, 0x42, - 0x7a, 0x40, 0x42, 0x1c, 0xf8, 0x08, 0x68, 0x76, 0x67, 0x1d, 0x27, 0xea, 0xda, 0x86, 0x08, 0xc1, - 0x6d, 0xdf, 0xbe, 0xdf, 0xfb, 0xcd, 0x6f, 0xde, 0x9b, 0xf7, 0x66, 0x17, 0xee, 0x78, 0x98, 0x86, - 0xee, 0x91, 0x8f, 0xca, 0x26, 0xf3, 0x71, 0xd9, 0xf4, 0x07, 0x1e, 0x67, 0xe5, 0xfe, 0x16, 0x72, - 0x3c, 0x1b, 0x6d, 0x49, 0xbb, 0xe4, 0xf9, 0x8c, 0x33, 0x6d, 0x2d, 0xc1, 0x96, 0x04, 0xb6, 0x24, - 0x7d, 0x09, 0x56, 0x7f, 0xa6, 0x40, 0xe6, 0x1e, 0xc6, 0xda, 0x47, 0x30, 0x8f, 0x5c, 0x16, 0x52, - 0xbe, 0xa2, 0xac, 0x2b, 0xb7, 0xb2, 0x95, 0x9b, 0xa5, 0xb1, 0x71, 0xa5, 0x9d, 0x08, 0x6c, 0xc8, - 0x20, 0x6d, 0x07, 0x16, 0x51, 0x10, 0x60, 0xde, 0x21, 0xd6, 0x8a, 0x1a, 0x11, 0x6c, 0x4e, 0x22, - 0x10, 0xf0, 0x7d, 0xcb, 0x58, 0x40, 0xf1, 0x83, 0x7e, 0x0d, 0x16, 0x76, 0x2c, 0xcb, 0xc7, 0x41, - 0xa0, 0x2d, 0xc3, 0x1c, 0xa1, 0x14, 0xfb, 0x91, 0x96, 0x9c, 0x11, 0x1b, 0xfa, 0x9f, 0x19, 0xc8, - 0x4a, 0x44, 0x8b, 0xe0, 0x13, 0xed, 0x21, 0x2c, 0xf4, 0x49, 0x40, 0x8e, 0x1c, 0x2c, 0x35, 0x57, - 0x26, 0x2d, 0x79, 0x16, 0x5c, 0x6a, 0xc5, 0x91, 0x7b, 0x33, 0x46, 0x42, 0xa2, 0x35, 0x60, 0x9e, - 0x79, 0xe8, 0xcb, 0x10, 0xcb, 0x1d, 0x6c, 0xfd, 0x0d, 0xba, 0x47, 0x51, 0xe0, 0xde, 0x8c, 0x21, - 0x29, 0x56, 0x7f, 0x53, 0x60, 0x41, 0xae, 0xa1, 0x7d, 0x02, 0x0b, 0x28, 0xc6, 0x4a, 0xa1, 0x9b, - 0xd3, 0x31, 0x1b, 0x49, 0x98, 0xb6, 0x23, 0x12, 0x62, 0xe1, 0xa7, 0x52, 0xd9, 0xbb, 0xd3, 0xc5, - 0xef, 0x8b, 0x10, 0x23, 0x8e, 0xd4, 0x9e, 0xc0, 0x55, 0x64, 0x9a, 0xa2, 0x58, 0x9d, 0xae, 0xcf, - 0x42, 0x4f, 0x54, 0x2a, 0x13, 0xb1, 0xbd, 0x37, 0x89, 0x2d, 0x0e, 0xbb, 0x2f, 0xa2, 0xf6, 0x2d, - 0xa3, 0x80, 0xce, 0xd9, 0xab, 0x9f, 0xc1, 0x7c, 0xbc, 0xfb, 0xcb, 0xef, 0xb3, 0x56, 0x80, 0x9c, - 0x7c, 0xec, 0xf4, 0x09, 0x3e, 0xd1, 0xd7, 0x61, 0xf1, 0xc0, 0xc3, 0xd4, 0x6a, 0xe0, 0x41, 0xca, - 0xa1, 0xb8, 0x0b, 0xcb, 0x11, 0xa2, 0x85, 0x7d, 0x72, 0x4c, 0x4c, 0xc4, 0x09, 0xa3, 0xe9, 0xe8, - 0x4d, 0x28, 0xdc, 0x0b, 0x1d, 0x47, 0x94, 0x8c, 0xd0, 0xee, 0x58, 0xdc, 0xf9, 0x5d, 0xa7, 0xe0, - 0x6e, 0x40, 0x76, 0x97, 0xf4, 0xb1, 0x1f, 0x90, 0x63, 0x82, 0xfd, 0x14, 0xd0, 0x1e, 0xe4, 0x46, - 0x0b, 0xa2, 0xad, 0xc0, 0x82, 0x4c, 0x61, 0x54, 0xce, 0xbc, 0x91, 0x98, 0x5a, 0x11, 0xc0, 0x47, - 0xd4, 0x62, 0x2e, 0xf9, 0x0a, 0xfb, 0x51, 0x75, 0x72, 0xc6, 0xc8, 0x1b, 0xfd, 0x1d, 0xb8, 0x72, - 0xc0, 0x11, 0xc7, 0x75, 0xe6, 0xba, 0x84, 0xbb, 0x98, 0xf2, 0x94, 0x25, 0x6f, 0xc3, 0x1b, 0x35, - 0xe4, 0x20, 0x6a, 0x4e, 0x86, 0x8a, 0xb6, 0x8b, 0x3b, 0x30, 0x05, 0x70, 0x0b, 0xe6, 0xe3, 0x66, - 0xd7, 0x0a, 0xa0, 0x3a, 0x2c, 0x72, 0xce, 0x1a, 0xaa, 0xc3, 0x84, 0x6d, 0x93, 0x68, 0x0f, 0xb3, - 0x86, 0x6a, 0x13, 0x7d, 0x0d, 0xe6, 0x76, 0x31, 0x65, 0xae, 0x20, 0xb2, 0xc4, 0x43, 0x84, 0x5d, - 0x32, 0x62, 0x43, 0xff, 0x46, 0x81, 0xb9, 0x16, 0x72, 0xc2, 0xff, 0xc3, 0xb0, 0xf9, 0x23, 0x03, - 0x4b, 0x91, 0x96, 0x68, 0x92, 0xb4, 0x20, 0xdb, 0xa3, 0xec, 0x84, 0x76, 0xce, 0x54, 0x67, 0x2b, - 0xdb, 0x13, 0x38, 0x87, 0xe1, 0xa5, 0x86, 0x88, 0x8d, 0x76, 0xbe, 0x37, 0x63, 0x40, 0x6f, 0x68, - 0x69, 0x87, 0x90, 0x0f, 0xe9, 0x28, 0x73, 0xac, 0xf6, 0xfd, 0xa9, 0x99, 0x1f, 0xd3, 0xde, 0x28, - 0x77, 0x2e, 0x1c, 0xb1, 0x57, 0x9f, 0x29, 0x00, 0x67, 0x4b, 0x5f, 0x36, 0xa9, 0xd5, 0xa4, 0x66, - 0xb1, 0xc6, 0x8d, 0x09, 0xd1, 0xd1, 0x9a, 0xb2, 0xb2, 0xab, 0xcf, 0x15, 0xc8, 0x8d, 0x4a, 0xfd, - 0xef, 0x0b, 0x5c, 0xcb, 0x01, 0xf4, 0x45, 0x1a, 0xe3, 0x39, 0xa2, 0x03, 0x3c, 0xc0, 0x7e, 0xcf, - 0xc1, 0x06, 0x63, 0x69, 0x8d, 0xf0, 0x35, 0xcc, 0x45, 0x2c, 0xda, 0x07, 0xa0, 0x12, 0x6b, 0xda, - 0x09, 0x26, 0xd7, 0x55, 0x89, 0x75, 0x99, 0x0c, 0xea, 0x6b, 0x90, 0xdd, 0xb7, 0x30, 0xe5, 0x84, - 0x0f, 0xc4, 0x54, 0x2a, 0x80, 0x4a, 0x7a, 0x52, 0x9e, 0x4a, 0x7a, 0xfa, 0x35, 0xc8, 0xdf, 0x67, - 0x7d, 0xec, 0x53, 0xd1, 0xd2, 0x12, 0xd0, 0x1d, 0x02, 0xba, 0x3d, 0x7d, 0x03, 0x72, 0x75, 0x46, - 0x03, 0x4c, 0x83, 0x30, 0x48, 0x1f, 0x6b, 0xdf, 0x2a, 0x30, 0xfb, 0x90, 0x71, 0x2c, 0xa4, 0x46, - 0xd9, 0x91, 0xbb, 0xdc, 0x98, 0xe6, 0x40, 0x1a, 0x71, 0x88, 0xa0, 0xf6, 0x03, 0x8c, 0xe3, 0xca, - 0xe4, 0x8c, 0xd8, 0x18, 0x9d, 0xfd, 0x99, 0x7f, 0x34, 0xfb, 0xf5, 0xef, 0x15, 0x58, 0x14, 0xe2, - 0xa2, 0x8e, 0xfc, 0xf8, 0xbc, 0xc0, 0x5b, 0xd3, 0x76, 0xcc, 0x78, 0x91, 0xbb, 0x17, 0x45, 0xde, - 0x99, 0xfe, 0x8a, 0x3f, 0x13, 0xba, 0x09, 0x05, 0xa1, 0xb3, 0x4e, 0x3c, 0x1b, 0xfb, 0x1c, 0x3f, - 0x4d, 0x3b, 0x50, 0xd7, 0x61, 0xe9, 0x61, 0xe8, 0x38, 0xe3, 0xae, 0x86, 0x3b, 0xa0, 0x45, 0xb7, - 0xd7, 0x4e, 0xc8, 0xed, 0x03, 0xd2, 0xa5, 0x88, 0x87, 0x3e, 0x4e, 0x9d, 0xc3, 0x57, 0x6b, 0x84, - 0x5a, 0x84, 0x76, 0x27, 0x21, 0x7f, 0x55, 0x20, 0x2b, 0x14, 0x36, 0xd1, 0xc0, 0x61, 0xc8, 0xd2, - 0x9e, 0xc0, 0x15, 0xca, 0x38, 0xee, 0x98, 0xc3, 0xbb, 0x40, 0xa6, 0xb5, 0x34, 0x61, 0xfb, 0x17, - 0x2e, 0x1b, 0xa3, 0x20, 0x68, 0x46, 0x6e, 0x94, 0x1b, 0x90, 0xc7, 0x9e, 0x8d, 0x5d, 0xec, 0x23, - 0xa7, 0xd3, 0xc3, 0x03, 0x99, 0xed, 0xdc, 0xf0, 0xa5, 0x38, 0x8a, 0x9f, 0x43, 0x01, 0xd3, 0x88, - 0x19, 0x5b, 0x1d, 0x41, 0x30, 0xe5, 0x67, 0xc7, 0xf9, 0x1c, 0x1b, 0xf9, 0x21, 0x89, 0x70, 0xe8, - 0x2f, 0x15, 0x58, 0xbe, 0x20, 0xaf, 0xe9, 0x33, 0x76, 0xfc, 0xef, 0x6d, 0x76, 0x15, 0x16, 0x3d, - 0x16, 0x10, 0xf1, 0x81, 0x21, 0xef, 0xbc, 0xa1, 0xad, 0x35, 0x60, 0x09, 0x85, 0xdc, 0xee, 0x78, - 0x88, 0xdb, 0x2b, 0x99, 0xf5, 0xcc, 0x14, 0xcb, 0xc5, 0xf3, 0xa8, 0x89, 0xb8, 0x5d, 0xb7, 0x43, - 0xda, 0x33, 0x16, 0x05, 0x81, 0x30, 0x75, 0x1b, 0xae, 0x5c, 0x70, 0x6a, 0x6f, 0xc1, 0x92, 0xf8, - 0x94, 0x24, 0xb4, 0xdb, 0xd9, 0x92, 0xb5, 0x5e, 0x94, 0x2f, 0xb6, 0x46, 0x9d, 0x15, 0x59, 0x81, - 0xc4, 0x59, 0x19, 0x75, 0x6e, 0xcb, 0x2f, 0x8a, 0xc4, 0xb9, 0xad, 0xbf, 0x0d, 0xb3, 0x75, 0xd9, - 0x2d, 0xaf, 0x39, 0x46, 0x3a, 0xc0, 0xa7, 0xc7, 0xc7, 0xd8, 0xe4, 0x7b, 0x28, 0xb0, 0x53, 0x30, - 0x37, 0x21, 0xdf, 0x6e, 0x3c, 0x0a, 0xb9, 0x17, 0xca, 0xf4, 0xbf, 0x1e, 0xb6, 0x01, 0xb9, 0x76, - 0x23, 0x3a, 0xe9, 0xe3, 0x50, 0x37, 0x20, 0xdb, 0x6e, 0x1c, 0x9c, 0x20, 0x6f, 0x1c, 0xa8, 0x04, - 0x6f, 0xb6, 0x1b, 0x8f, 0xa9, 0x85, 0x1d, 0xdc, 0x15, 0x05, 0x73, 0x10, 0x71, 0xc7, 0xe1, 0xef, - 0xc2, 0x72, 0xbb, 0xb1, 0x1b, 0xa3, 0x99, 0xdf, 0x12, 0x6d, 0x91, 0x8e, 0xae, 0xfd, 0xa8, 0xfe, - 0x74, 0x5a, 0x54, 0x5e, 0x9c, 0x16, 0x95, 0x5f, 0x4e, 0x8b, 0xca, 0xf3, 0x57, 0xc5, 0x99, 0x17, - 0xaf, 0x8a, 0x33, 0x2f, 0x5f, 0x15, 0x67, 0xe0, 0xba, 0xc9, 0xdc, 0xf1, 0x35, 0xad, 0x65, 0xeb, - 0xd1, 0x8b, 0xa6, 0xf8, 0xf1, 0x6a, 0x2a, 0xed, 0x2f, 0xba, 0x84, 0xdb, 0xe1, 0x51, 0xc9, 0x64, - 0x6e, 0xd9, 0x64, 0x81, 0xcb, 0x82, 0xb2, 0x8f, 0x1d, 0x34, 0xc0, 0x7e, 0xb9, 0x5f, 0x19, 0x3e, - 0x9a, 0x36, 0x22, 0x34, 0x28, 0x8f, 0xfd, 0xa5, 0xfb, 0x30, 0xb6, 0x13, 0xf3, 0x3b, 0x35, 0xd3, - 0xac, 0xd7, 0x7f, 0x50, 0xd7, 0x9a, 0x89, 0x9c, 0xba, 0x90, 0x13, 0xaf, 0x5e, 0x6a, 0x49, 0xd4, - 0xcf, 0x67, 0xfe, 0x43, 0xe1, 0x3f, 0x8c, 0xfd, 0x87, 0x89, 0xff, 0x54, 0xbd, 0x3d, 0xd6, 0x7f, - 0x78, 0xbf, 0x59, 0x7b, 0x80, 0x39, 0xb2, 0x10, 0x47, 0xbf, 0xab, 0xeb, 0x09, 0xb6, 0x5a, 0x15, - 0xe0, 0x6a, 0x35, 0x46, 0x57, 0xab, 0x09, 0xfc, 0x68, 0x3e, 0xfa, 0xe1, 0xdc, 0xfe, 0x2b, 0x00, - 0x00, 0xff, 0xff, 0x4f, 0xe3, 0x78, 0x0b, 0x9e, 0x0e, 0x00, 0x00, + // 1416 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xcf, 0xae, 0xf3, 0xc3, 0x79, 0x76, 0x9c, 0x76, 0x14, 0x55, 0xfe, 0xe6, 0x4b, 0xd2, 0x74, + 0x9b, 0x86, 0xb4, 0x14, 0x47, 0x71, 0x04, 0x87, 0x20, 0x10, 0xb1, 0x43, 0x9b, 0x60, 0xb5, 0xb5, + 0x36, 0xd4, 0x45, 0x56, 0x24, 0x6b, 0xe2, 0x9d, 0x78, 0x47, 0xde, 0x9d, 0x59, 0xf6, 0x87, 0x53, + 0xc3, 0x1f, 0x80, 0x38, 0xd1, 0x33, 0x47, 0x0e, 0x1c, 0xf8, 0x0f, 0xb8, 0x71, 0x44, 0x9c, 0x7a, + 0xec, 0x11, 0xd2, 0x03, 0x12, 0x27, 0x0e, 0xfc, 0x01, 0x68, 0x66, 0x67, 0x1d, 0x27, 0x8a, 0x7f, + 0x94, 0x0a, 0xc1, 0x6d, 0xde, 0xbc, 0xcf, 0x7b, 0xf3, 0x99, 0xf7, 0xde, 0xcc, 0x9b, 0x5d, 0xb8, + 0xe3, 0x11, 0x16, 0xb9, 0x47, 0x3e, 0xde, 0x68, 0x72, 0x9f, 0x6c, 0x34, 0xfd, 0xae, 0x17, 0xf2, + 0x8d, 0xce, 0x26, 0x76, 0x3c, 0x1b, 0x6f, 0x2a, 0xb9, 0xe0, 0xf9, 0x3c, 0xe4, 0x68, 0x29, 0xc1, + 0x16, 0x04, 0xb6, 0xa0, 0x74, 0x09, 0xd6, 0xf8, 0x52, 0x83, 0xd4, 0x3d, 0x42, 0xd0, 0xfb, 0x30, + 0x8d, 0x5d, 0x1e, 0xb1, 0x30, 0xaf, 0xad, 0x68, 0xeb, 0x99, 0xe2, 0xad, 0xc2, 0x50, 0xbb, 0xc2, + 0x8e, 0x04, 0x9b, 0xca, 0x08, 0xed, 0x40, 0x1a, 0x07, 0x01, 0x09, 0x1b, 0xd4, 0xca, 0xeb, 0xd2, + 0xc1, 0xda, 0x28, 0x07, 0x02, 0xbe, 0x6f, 0x99, 0x33, 0x38, 0x1e, 0x18, 0xd7, 0x61, 0x66, 0xc7, + 0xb2, 0x7c, 0x12, 0x04, 0x68, 0x01, 0xa6, 0x28, 0x63, 0xc4, 0x97, 0x5c, 0xb2, 0x66, 0x2c, 0x18, + 0x7f, 0xa4, 0x20, 0xa3, 0x10, 0x35, 0x4a, 0x4e, 0xd0, 0x43, 0x98, 0xe9, 0xd0, 0x80, 0x1e, 0x39, + 0x44, 0x71, 0x2e, 0x8e, 0x5a, 0xf2, 0xcc, 0xb8, 0x50, 0x8b, 0x2d, 0xf7, 0x26, 0xcc, 0xc4, 0x09, + 0xaa, 0xc0, 0x34, 0xf7, 0xf0, 0x67, 0x11, 0x51, 0x3b, 0xd8, 0x7c, 0x05, 0x77, 0x8f, 0xa4, 0xe1, + 0xde, 0x84, 0xa9, 0x5c, 0x2c, 0xfe, 0xa6, 0xc1, 0x8c, 0x5a, 0x03, 0x7d, 0x08, 0x33, 0x38, 0xc6, + 0x2a, 0xa2, 0x6b, 0xe3, 0x79, 0x36, 0x13, 0x33, 0xb4, 0x23, 0x02, 0x62, 0x91, 0xa7, 0x8a, 0xd9, + 0x5b, 0xe3, 0xd9, 0xef, 0x0b, 0x13, 0x33, 0xb6, 0x44, 0x4f, 0xe0, 0x0a, 0x6e, 0x36, 0x45, 0xb2, + 0x1a, 0x2d, 0x9f, 0x47, 0x9e, 0xc8, 0x54, 0x4a, 0x7a, 0x7b, 0x7b, 0x94, 0xb7, 0xd8, 0xec, 0xbe, + 0xb0, 0xda, 0xb7, 0xcc, 0x1c, 0x3e, 0x27, 0x2f, 0x7e, 0x0c, 0xd3, 0xf1, 0xee, 0x5f, 0x7f, 0x9f, + 0xa5, 0x1c, 0x64, 0xd5, 0xb0, 0xd1, 0xa1, 0xe4, 0xc4, 0x58, 0x81, 0xf4, 0x81, 0x47, 0x98, 0x55, + 0x21, 0xdd, 0x01, 0x45, 0x71, 0x17, 0x16, 0x24, 0xa2, 0x46, 0x7c, 0x7a, 0x4c, 0x9b, 0x38, 0xa4, + 0x9c, 0x0d, 0x46, 0xaf, 0x41, 0xee, 0x5e, 0xe4, 0x38, 0x22, 0x65, 0x94, 0xb5, 0x86, 0xe2, 0xce, + 0xef, 0x7a, 0x00, 0xee, 0x26, 0x64, 0x76, 0x69, 0x87, 0xf8, 0x01, 0x3d, 0xa6, 0xc4, 0x1f, 0x00, + 0xda, 0x83, 0x6c, 0x7f, 0x42, 0x50, 0x1e, 0x66, 0x54, 0x08, 0x65, 0x3a, 0xe7, 0xcc, 0x44, 0x44, + 0xcb, 0x00, 0x3e, 0x66, 0x16, 0x77, 0xe9, 0xe7, 0xc4, 0x97, 0xd9, 0xc9, 0x9a, 0x7d, 0x33, 0xc6, + 0x9b, 0x30, 0x7f, 0x10, 0xe2, 0x90, 0x94, 0xb9, 0xeb, 0xd2, 0xd0, 0x25, 0x2c, 0x1c, 0xb0, 0xe4, + 0x6d, 0xb8, 0x5a, 0xc2, 0x0e, 0x66, 0xcd, 0xd1, 0x50, 0x71, 0xec, 0xe2, 0x13, 0x38, 0x00, 0xb0, + 0x0e, 0xd3, 0xf1, 0x61, 0x47, 0x39, 0xd0, 0x1d, 0x2e, 0x95, 0x93, 0xa6, 0xee, 0x70, 0x21, 0xdb, + 0x54, 0xee, 0x61, 0xd2, 0xd4, 0x6d, 0x6a, 0x2c, 0xc1, 0xd4, 0x2e, 0x61, 0xdc, 0x15, 0x8e, 0x2c, + 0x31, 0x90, 0xd8, 0x59, 0x33, 0x16, 0x8c, 0x17, 0x3a, 0xcc, 0x49, 0xfd, 0x03, 0x12, 0x62, 0x0b, + 0x87, 0x18, 0xad, 0x40, 0xc6, 0x22, 0x41, 0xd3, 0xa7, 0x9e, 0x48, 0x9b, 0x42, 0xf7, 0x4f, 0xa1, + 0x7d, 0x81, 0x60, 0xdc, 0x6d, 0x44, 0x8c, 0x86, 0x41, 0x5e, 0x5f, 0x49, 0xad, 0x67, 0x8a, 0xeb, + 0x23, 0xca, 0x4a, 0x2e, 0xf2, 0x98, 0xd1, 0xd0, 0x04, 0x2b, 0x19, 0x06, 0x08, 0xc1, 0xe4, 0x11, + 0x0e, 0x88, 0x0c, 0xeb, 0xac, 0x29, 0xc7, 0x22, 0x15, 0x16, 0x0d, 0x3c, 0x07, 0x77, 0xf3, 0x93, + 0x72, 0x3a, 0x11, 0x05, 0x9a, 0x61, 0x97, 0xe4, 0xa7, 0x62, 0xb4, 0x18, 0xa3, 0x6b, 0x30, 0x1d, + 0x74, 0xdd, 0x23, 0xee, 0xe4, 0xa7, 0xe5, 0xac, 0x92, 0xd0, 0x15, 0x48, 0x45, 0x3e, 0xcd, 0xcf, + 0xc8, 0x49, 0x31, 0x44, 0xff, 0x83, 0x74, 0xe4, 0xd3, 0x86, 0x8d, 0x03, 0x3b, 0x9f, 0x8e, 0x1d, + 0x47, 0x3e, 0xdd, 0xc3, 0x81, 0x8d, 0x0e, 0xe0, 0x6a, 0xc2, 0xbe, 0xd1, 0xbb, 0x32, 0x7f, 0x9c, + 0x7f, 0xa5, 0x3b, 0x73, 0x3e, 0x81, 0xa9, 0x09, 0xe3, 0x09, 0xcc, 0xf6, 0x36, 0x7d, 0x79, 0xf4, + 0xd1, 0x22, 0xa4, 0xc9, 0x53, 0x8f, 0x33, 0xd2, 0x2b, 0xbb, 0x9e, 0x2c, 0x2b, 0xd2, 0xa1, 0x38, + 0x20, 0x41, 0x3e, 0xb5, 0x92, 0x12, 0x6c, 0x95, 0x68, 0x7c, 0xa5, 0xc1, 0x54, 0x0d, 0x3b, 0xd1, + 0x7f, 0xa1, 0x41, 0xfc, 0x99, 0x82, 0x59, 0xc9, 0x45, 0xde, 0xfe, 0x35, 0xc8, 0xb4, 0x19, 0x3f, + 0x61, 0x8d, 0xb3, 0xbd, 0x66, 0x8a, 0x5b, 0x23, 0x7c, 0xf6, 0xcc, 0x0b, 0x15, 0x61, 0x2b, 0x63, + 0xb6, 0x37, 0x61, 0x42, 0xbb, 0x27, 0xa1, 0x43, 0x98, 0x8b, 0x58, 0xbf, 0xe7, 0x98, 0xed, 0x3b, + 0x63, 0x7b, 0x7e, 0xcc, 0xda, 0xfd, 0xbe, 0xb3, 0x51, 0x9f, 0xbc, 0xf8, 0xb5, 0x06, 0x70, 0xb6, + 0xf4, 0xeb, 0x06, 0xb5, 0x94, 0x64, 0x3a, 0xe6, 0x78, 0x77, 0x9c, 0x73, 0x91, 0x1c, 0x3e, 0x55, + 0x17, 0x8b, 0xcf, 0x34, 0xc8, 0xf6, 0x53, 0xfe, 0xf7, 0x13, 0x5d, 0xca, 0x02, 0x74, 0x44, 0x38, + 0xe3, 0x1e, 0x60, 0x00, 0x3c, 0x20, 0x7e, 0xdb, 0x21, 0x26, 0xe7, 0x83, 0x2e, 0xb1, 0x2f, 0x60, + 0x4a, 0x7a, 0x41, 0xef, 0x82, 0x4e, 0xad, 0x71, 0xbb, 0x8f, 0x5a, 0x57, 0xa7, 0x16, 0xda, 0x3e, + 0x1f, 0xc9, 0xd5, 0x71, 0x22, 0x99, 0xdc, 0x6b, 0x4b, 0x90, 0xd9, 0xb7, 0x08, 0x0b, 0x69, 0xd8, + 0x15, 0x1d, 0x25, 0x07, 0x3a, 0x6d, 0x2b, 0x7a, 0x3a, 0x6d, 0x1b, 0xd7, 0x61, 0xee, 0x3e, 0xef, + 0x10, 0x9f, 0x89, 0xeb, 0x58, 0x01, 0x5a, 0x3d, 0x40, 0xab, 0x6d, 0xac, 0x42, 0xb6, 0xcc, 0x59, + 0x40, 0x58, 0x10, 0x05, 0x83, 0x5b, 0xd2, 0x37, 0x1a, 0x4c, 0x3e, 0xe4, 0x21, 0x11, 0x54, 0x65, + 0x74, 0xd4, 0x2e, 0x57, 0xc7, 0x29, 0x4c, 0x33, 0x36, 0x11, 0xae, 0xfd, 0x80, 0x90, 0x38, 0x33, + 0x59, 0x33, 0x16, 0xfa, 0xfb, 0x76, 0xea, 0x6f, 0xf5, 0x6d, 0xe3, 0x3b, 0x0d, 0xd2, 0x82, 0x9c, + 0x3c, 0x99, 0x1f, 0x9c, 0x27, 0xb8, 0x3e, 0xee, 0xc9, 0x19, 0x4e, 0x72, 0xf7, 0x22, 0xc9, 0x3b, + 0xe3, 0x3f, 0xcf, 0xce, 0x88, 0xae, 0x41, 0x4e, 0xf0, 0x2c, 0x53, 0xcf, 0x26, 0x7e, 0x48, 0x9e, + 0x0e, 0x2a, 0xa8, 0x1b, 0x30, 0xfb, 0x30, 0x72, 0x9c, 0x61, 0x6d, 0xfd, 0x0e, 0x20, 0xf9, 0xf2, + 0xd8, 0x89, 0x42, 0xfb, 0x80, 0xb6, 0x18, 0x0e, 0x23, 0x9f, 0x0c, 0xec, 0xa1, 0x57, 0x4a, 0x94, + 0x59, 0x94, 0xb5, 0x46, 0x21, 0x7f, 0xd5, 0x20, 0x23, 0x18, 0x56, 0x71, 0xd7, 0xe1, 0xd8, 0x42, + 0x4f, 0x60, 0x9e, 0xf1, 0x90, 0x34, 0x9a, 0xbd, 0x3e, 0xae, 0xc2, 0x5a, 0x18, 0xb1, 0xfd, 0x0b, + 0x0f, 0x05, 0x33, 0x27, 0xdc, 0xf4, 0xbd, 0x06, 0x6e, 0xc2, 0x1c, 0xf1, 0x6c, 0xe2, 0x12, 0x1f, + 0x3b, 0x8d, 0x36, 0xe9, 0xaa, 0x68, 0x67, 0x7b, 0x93, 0xa2, 0x14, 0x3f, 0x81, 0x1c, 0x61, 0xd2, + 0x33, 0xb1, 0x1a, 0xc2, 0xc1, 0x98, 0x4f, 0xc6, 0xf3, 0x31, 0x36, 0xe7, 0x7a, 0x4e, 0x84, 0xc2, + 0x78, 0xa1, 0xc1, 0xc2, 0x05, 0x7a, 0x55, 0x9f, 0xf3, 0xe3, 0x7f, 0x6e, 0xb3, 0x8b, 0x90, 0xf6, + 0x78, 0x40, 0xe5, 0x2b, 0x23, 0x7e, 0xaf, 0xf4, 0x64, 0x54, 0x81, 0x59, 0x1c, 0x85, 0x76, 0xc3, + 0xc3, 0xa1, 0x2d, 0xdb, 0xdf, 0xe8, 0xe5, 0xe2, 0xfb, 0xa8, 0x8a, 0x43, 0xbb, 0x6c, 0x47, 0xac, + 0x6d, 0xa6, 0x85, 0x03, 0x21, 0x1a, 0x36, 0xcc, 0x5f, 0x50, 0xa2, 0xff, 0xc3, 0xac, 0xf8, 0x0c, + 0xa0, 0xac, 0xd5, 0xd8, 0x54, 0xb9, 0x4e, 0xab, 0x89, 0xcd, 0x7e, 0x65, 0x51, 0x65, 0x20, 0x51, + 0x16, 0xfb, 0x95, 0x5b, 0xea, 0x35, 0x98, 0x28, 0xb7, 0x8c, 0x37, 0x60, 0xb2, 0xac, 0x4e, 0xcb, + 0x25, 0x65, 0x64, 0x00, 0x7c, 0x74, 0x7c, 0x4c, 0x9a, 0xa1, 0x7c, 0x73, 0x5c, 0x8e, 0xb9, 0x05, + 0x73, 0xf5, 0xca, 0xa3, 0x28, 0xf4, 0x22, 0x15, 0xfe, 0xcb, 0x61, 0xab, 0x90, 0xad, 0x57, 0x64, + 0xa5, 0x0f, 0x43, 0xdd, 0x84, 0x4c, 0xbd, 0x72, 0x70, 0x82, 0xbd, 0x61, 0xa0, 0x02, 0x5c, 0xab, + 0x57, 0x1e, 0x33, 0x8b, 0x38, 0xa4, 0x25, 0x12, 0xe6, 0x60, 0xea, 0x0e, 0xc3, 0xdf, 0x85, 0x85, + 0x7a, 0x65, 0x37, 0x46, 0x73, 0xbf, 0x26, 0x8e, 0xc5, 0x10, 0x74, 0x11, 0x16, 0xeb, 0x95, 0xde, + 0xa9, 0xdd, 0x25, 0x3e, 0xed, 0xc8, 0xcf, 0x81, 0x21, 0x36, 0xa5, 0x1f, 0xf4, 0x9f, 0x4e, 0x97, + 0xb5, 0xe7, 0xa7, 0xcb, 0xda, 0x2f, 0xa7, 0xcb, 0xda, 0xb3, 0x97, 0xcb, 0x13, 0xcf, 0x5f, 0x2e, + 0x4f, 0xbc, 0x78, 0xb9, 0x3c, 0x01, 0x37, 0x9a, 0xdc, 0x1d, 0x5e, 0x07, 0xa5, 0x4c, 0x59, 0x4e, + 0x54, 0xc5, 0x87, 0x76, 0x55, 0xab, 0x7f, 0xda, 0xa2, 0xa1, 0x1d, 0x1d, 0x15, 0x9a, 0xdc, 0xdd, + 0x68, 0xf2, 0xc0, 0xe5, 0xc1, 0x86, 0x4f, 0x1c, 0xdc, 0x25, 0xfe, 0x46, 0xa7, 0xd8, 0x1b, 0x36, + 0x6d, 0x4c, 0x59, 0xb0, 0x31, 0xf4, 0x13, 0xfe, 0xbd, 0x58, 0x4e, 0xc4, 0x6f, 0xf5, 0x54, 0xb5, + 0x5c, 0xfe, 0x5e, 0x5f, 0xaa, 0x26, 0x74, 0xca, 0x82, 0x4e, 0xbc, 0x7a, 0xa1, 0xa6, 0x50, 0x3f, + 0x9f, 0xe9, 0x0f, 0x85, 0xfe, 0x30, 0xd6, 0x1f, 0x26, 0xfa, 0x53, 0xfd, 0xf6, 0x50, 0xfd, 0xe1, + 0xfd, 0x6a, 0x29, 0x79, 0x1d, 0xfc, 0xae, 0xaf, 0x24, 0xd8, 0xed, 0x6d, 0x01, 0xde, 0xde, 0x8e, + 0xd1, 0xdb, 0xdb, 0x09, 0xfc, 0x68, 0x5a, 0xfe, 0x60, 0xd8, 0xfa, 0x2b, 0x00, 0x00, 0xff, 0xff, + 0xfa, 0xd5, 0x1e, 0x48, 0x8e, 0x10, 0x00, 0x00, } func (m *Fee) Marshal() (dAtA []byte, err error) { @@ -2806,7 +3055,7 @@ func (m *Denom) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Value) Marshal() (dAtA []byte, err error) { +func (m *DenomMetadata) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2816,19 +3065,19 @@ func (m *Value) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Value) MarshalTo(dAtA []byte) (int, error) { +func (m *DenomMetadata) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Value) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *DenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.AssetId != nil { + if m.PenumbraAssetId != nil { { - size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.PenumbraAssetId.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2836,24 +3085,77 @@ func (m *Value) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintCrypto(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x7c + i-- + dAtA[i] = 0x82 } - if m.Amount != nil { - { - size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.UriHash) > 0 { + i -= len(m.UriHash) + copy(dAtA[i:], m.UriHash) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.UriHash))) + i-- + dAtA[i] = 0x42 + } + if len(m.Uri) > 0 { + i -= len(m.Uri) + copy(dAtA[i:], m.Uri) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Uri))) + i-- + dAtA[i] = 0x3a + } + if len(m.Symbol) > 0 { + i -= len(m.Symbol) + copy(dAtA[i:], m.Symbol) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Symbol))) + i-- + dAtA[i] = 0x32 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x2a + } + if len(m.Display) > 0 { + i -= len(m.Display) + copy(dAtA[i:], m.Display) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Display))) + i-- + dAtA[i] = 0x22 + } + if len(m.Base) > 0 { + i -= len(m.Base) + copy(dAtA[i:], m.Base) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Base))) + i-- + dAtA[i] = 0x1a + } + if len(m.DenomUnits) > 0 { + for iNdEx := len(m.DenomUnits) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DenomUnits[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintCrypto(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Description))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ValueView) Marshal() (dAtA []byte, err error) { +func (m *DenomUnit) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2863,38 +3165,63 @@ func (m *ValueView) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ValueView) MarshalTo(dAtA []byte) (int, error) { +func (m *DenomUnit) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ValueView) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *DenomUnit) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.ValueView != nil { - { - size := m.ValueView.Size() - i -= size - if _, err := m.ValueView.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } + if len(m.Aliases) > 0 { + for iNdEx := len(m.Aliases) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Aliases[iNdEx]) + copy(dAtA[i:], m.Aliases[iNdEx]) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Aliases[iNdEx]))) + i-- + dAtA[i] = 0x1a } } + if m.Exponent != 0 { + i = encodeVarintCrypto(dAtA, i, uint64(m.Exponent)) + i-- + dAtA[i] = 0x10 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *ValueView_KnownDenom_) MarshalTo(dAtA []byte) (int, error) { +func (m *Value) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Value) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ValueView_KnownDenom_) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *Value) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) - if m.KnownDenom != nil { + _ = i + var l int + _ = l + if m.AssetId != nil { { - size, err := m.KnownDenom.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2902,9 +3229,75 @@ func (m *ValueView_KnownDenom_) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintCrypto(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 } - return len(dAtA) - i, nil + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValueView) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValueView) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValueView) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ValueView != nil { + { + size := m.ValueView.Size() + i -= size + if _, err := m.ValueView.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *ValueView_KnownDenom_) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValueView_KnownDenom_) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.KnownDenom != nil { + { + size, err := m.KnownDenom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } func (m *ValueView_UnknownDenom_) MarshalTo(dAtA []byte) (int, error) { size := m.Size() @@ -3778,6 +4171,36 @@ func (m *ZKDelegatorVoteProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ZKNullifierDerivationProof) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ZKNullifierDerivationProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKNullifierDerivationProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintCrypto(dAtA []byte, offset int, v uint64) int { offset -= sovCrypto(v) base := offset @@ -4037,6 +4460,75 @@ func (m *Denom) Size() (n int) { return n } +func (m *DenomMetadata) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if len(m.DenomUnits) > 0 { + for _, e := range m.DenomUnits { + l = e.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + } + l = len(m.Base) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Display) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Symbol) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Uri) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.UriHash) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.PenumbraAssetId != nil { + l = m.PenumbraAssetId.Size() + n += 2 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *DenomUnit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Exponent != 0 { + n += 1 + sovCrypto(uint64(m.Exponent)) + } + if len(m.Aliases) > 0 { + for _, s := range m.Aliases { + l = len(s) + n += 1 + l + sovCrypto(uint64(l)) + } + } + return n +} + func (m *Value) Size() (n int) { if m == nil { return 0 @@ -4442,6 +4934,19 @@ func (m *ZKDelegatorVoteProof) Size() (n int) { return n } +func (m *ZKNullifierDerivationProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + func sovCrypto(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -5668,81 +6173,593 @@ func (m *BalanceCommitment) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AssetId) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetId: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetId: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Amount) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Amount: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Amount: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lo", wireType) + } + m.Lo = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lo |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Hi", wireType) + } + m.Hi = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Hi |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Denom) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Denom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Denom: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DenomMetadata) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DenomMetadata: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DenomMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomUnits", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DenomUnits = append(m.DenomUnits, &DenomUnit{}) + if err := m.DenomUnits[len(m.DenomUnits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Base", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Base = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Display", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Display = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Symbol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Symbol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uri", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) - if m.Inner == nil { - m.Inner = []byte{} - } + m.Uri = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCrypto(dAtA[iNdEx:]) - if err != nil { - return err + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UriHash", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCrypto + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AssetId) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCrypto + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AssetId: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AssetId: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.UriHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 1984: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PenumbraAssetId", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -5752,24 +6769,26 @@ func (m *AssetId) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) - if m.Inner == nil { - m.Inner = []byte{} + if m.PenumbraAssetId == nil { + m.PenumbraAssetId = &AssetId{} + } + if err := m.PenumbraAssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -5793,7 +6812,7 @@ func (m *AssetId) Unmarshal(dAtA []byte) error { } return nil } -func (m *Amount) Unmarshal(dAtA []byte) error { +func (m *DenomUnit) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5816,17 +6835,17 @@ func (m *Amount) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Amount: wiretype end group for non-group") + return fmt.Errorf("proto: DenomUnit: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Amount: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DenomUnit: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Lo", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } - m.Lo = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -5836,16 +6855,29 @@ func (m *Amount) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Lo |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Hi", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Exponent", wireType) } - m.Hi = 0 + m.Exponent = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -5855,64 +6887,14 @@ func (m *Amount) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Hi |= uint64(b&0x7F) << shift + m.Exponent |= uint32(b&0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := skipCrypto(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCrypto - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Denom) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCrypto - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Denom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Denom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Aliases", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5940,7 +6922,7 @@ func (m *Denom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Denom = string(dAtA[iNdEx:postIndex]) + m.Aliases = append(m.Aliases, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -6300,7 +7282,7 @@ func (m *ValueView_KnownDenom) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Denom == nil { - m.Denom = &Denom{} + m.Denom = &DenomMetadata{} } if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8590,6 +9572,90 @@ func (m *ZKDelegatorVoteProof) Unmarshal(dAtA []byte) error { } return nil } +func (m *ZKNullifierDerivationProof) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ZKNullifierDerivationProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKNullifierDerivationProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipCrypto(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go index 61ef18d9c..0fa502019 100644 --- a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go +++ b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go @@ -674,7 +674,6 @@ func (m *SwapClaimPlan) GetEpochDuration() uint64 { type SwapView struct { // Types that are valid to be assigned to SwapView: - // // *SwapView_Visible_ // *SwapView_Opaque_ SwapView isSwapView_SwapView `protobuf_oneof:"swap_view"` @@ -1166,18 +1165,20 @@ type BatchSwapOutputData struct { Delta_1 *v1alpha1.Amount `protobuf:"bytes,1,opt,name=delta_1,json=delta1,proto3" json:"delta_1,omitempty"` // The total amount of asset 2 that was input to the batch swap. Delta_2 *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_2,json=delta2,proto3" json:"delta_2,omitempty"` - // The total amount of asset 1 that was output from the batch swap for 1=>2 trades. - Lambda_1_1 *v1alpha1.Amount `protobuf:"bytes,3,opt,name=lambda_1_1,json=lambda11,proto3" json:"lambda_1_1,omitempty"` - // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. - Lambda_2_1 *v1alpha1.Amount `protobuf:"bytes,4,opt,name=lambda_2_1,json=lambda21,proto3" json:"lambda_2_1,omitempty"` // The total amount of asset 1 that was output from the batch swap for 2=>1 trades. - Lambda_1_2 *v1alpha1.Amount `protobuf:"bytes,5,opt,name=lambda_1_2,json=lambda12,proto3" json:"lambda_1_2,omitempty"` - // The total amount of asset 2 that was output from the batch swap for 2=>1 trades. - Lambda_2_2 *v1alpha1.Amount `protobuf:"bytes,6,opt,name=lambda_2_2,json=lambda22,proto3" json:"lambda_2_2,omitempty"` + Lambda_1 *v1alpha1.Amount `protobuf:"bytes,3,opt,name=lambda_1,json=lambda1,proto3" json:"lambda_1,omitempty"` + // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. + Lambda_2 *v1alpha1.Amount `protobuf:"bytes,4,opt,name=lambda_2,json=lambda2,proto3" json:"lambda_2,omitempty"` + // The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. + Unfilled_1 *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unfilled_1,json=unfilled1,proto3" json:"unfilled_1,omitempty"` + // The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. + Unfilled_2 *v1alpha1.Amount `protobuf:"bytes,6,opt,name=unfilled_2,json=unfilled2,proto3" json:"unfilled_2,omitempty"` // The height for which the batch swap data is valid. Height uint64 `protobuf:"varint,7,opt,name=height,proto3" json:"height,omitempty"` // The trading pair associated with the batch swap. TradingPair *TradingPair `protobuf:"bytes,8,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + // The starting block height of the epoch for which the batch swap data is valid. + EpochHeight uint64 `protobuf:"varint,9,opt,name=epoch_height,json=epochHeight,proto3" json:"epoch_height,omitempty"` } func (m *BatchSwapOutputData) Reset() { *m = BatchSwapOutputData{} } @@ -1227,30 +1228,30 @@ func (m *BatchSwapOutputData) GetDelta_2() *v1alpha1.Amount { return nil } -func (m *BatchSwapOutputData) GetLambda_1_1() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetLambda_1() *v1alpha1.Amount { if m != nil { - return m.Lambda_1_1 + return m.Lambda_1 } return nil } -func (m *BatchSwapOutputData) GetLambda_2_1() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetLambda_2() *v1alpha1.Amount { if m != nil { - return m.Lambda_2_1 + return m.Lambda_2 } return nil } -func (m *BatchSwapOutputData) GetLambda_1_2() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetUnfilled_1() *v1alpha1.Amount { if m != nil { - return m.Lambda_1_2 + return m.Unfilled_1 } return nil } -func (m *BatchSwapOutputData) GetLambda_2_2() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetUnfilled_2() *v1alpha1.Amount { if m != nil { - return m.Lambda_2_2 + return m.Unfilled_2 } return nil } @@ -1269,6 +1270,13 @@ func (m *BatchSwapOutputData) GetTradingPair() *TradingPair { return nil } +func (m *BatchSwapOutputData) GetEpochHeight() uint64 { + if m != nil { + return m.EpochHeight + } + return 0 +} + // The trading function for a specific pair. // For a pair (asset_1, asset_2), a trading function is defined by: // `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. @@ -1968,28 +1976,23 @@ func (m *Path) GetPhi() *BareTradingFunction { return nil } -// A path and the amount of the assets on either side that were traded. -type Trade struct { - // The path taken by the trade. - Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - // The amount of the start asset being traded. - StartAmount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=start_amount,json=startAmount,proto3" json:"start_amount,omitempty"` - // The amount of end asset being received. - EndAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=end_amount,json=endAmount,proto3" json:"end_amount,omitempty"` +// Contains the entire execution of a particular swap. +type SwapExecution struct { + Traces []*SwapExecution_Trace `protobuf:"bytes,1,rep,name=traces,proto3" json:"traces,omitempty"` } -func (m *Trade) Reset() { *m = Trade{} } -func (m *Trade) String() string { return proto.CompactTextString(m) } -func (*Trade) ProtoMessage() {} -func (*Trade) Descriptor() ([]byte, []int) { +func (m *SwapExecution) Reset() { *m = SwapExecution{} } +func (m *SwapExecution) String() string { return proto.CompactTextString(m) } +func (*SwapExecution) ProtoMessage() {} +func (*SwapExecution) Descriptor() ([]byte, []int) { return fileDescriptor_d1eba752ca2f0d70, []int{26} } -func (m *Trade) XXX_Unmarshal(b []byte) error { +func (m *SwapExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *Trade) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *SwapExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_Trade.Marshal(b, m, deterministic) + return xxx_messageInfo_SwapExecution.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1999,56 +2002,43 @@ func (m *Trade) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *Trade) XXX_Merge(src proto.Message) { - xxx_messageInfo_Trade.Merge(m, src) +func (m *SwapExecution) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapExecution.Merge(m, src) } -func (m *Trade) XXX_Size() int { +func (m *SwapExecution) XXX_Size() int { return m.Size() } -func (m *Trade) XXX_DiscardUnknown() { - xxx_messageInfo_Trade.DiscardUnknown(m) -} - -var xxx_messageInfo_Trade proto.InternalMessageInfo - -func (m *Trade) GetPath() *Path { - if m != nil { - return m.Path - } - return nil +func (m *SwapExecution) XXX_DiscardUnknown() { + xxx_messageInfo_SwapExecution.DiscardUnknown(m) } -func (m *Trade) GetStartAmount() *v1alpha1.Amount { - if m != nil { - return m.StartAmount - } - return nil -} +var xxx_messageInfo_SwapExecution proto.InternalMessageInfo -func (m *Trade) GetEndAmount() *v1alpha1.Amount { +func (m *SwapExecution) GetTraces() []*SwapExecution_Trace { if m != nil { - return m.EndAmount + return m.Traces } return nil } -// Contains the entire execution of a particular swap. -type SwapExecution struct { - Trades []*Trade `protobuf:"bytes,1,rep,name=trades,proto3" json:"trades,omitempty"` +// Contains all individual steps consisting of a trade trace. +type SwapExecution_Trace struct { + // Each step in the trade trace. + Value []*v1alpha1.Value `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"` } -func (m *SwapExecution) Reset() { *m = SwapExecution{} } -func (m *SwapExecution) String() string { return proto.CompactTextString(m) } -func (*SwapExecution) ProtoMessage() {} -func (*SwapExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{27} +func (m *SwapExecution_Trace) Reset() { *m = SwapExecution_Trace{} } +func (m *SwapExecution_Trace) String() string { return proto.CompactTextString(m) } +func (*SwapExecution_Trace) ProtoMessage() {} +func (*SwapExecution_Trace) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{26, 0} } -func (m *SwapExecution) XXX_Unmarshal(b []byte) error { +func (m *SwapExecution_Trace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *SwapExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *SwapExecution_Trace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_SwapExecution.Marshal(b, m, deterministic) + return xxx_messageInfo_SwapExecution_Trace.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2058,21 +2048,21 @@ func (m *SwapExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error return b[:n], nil } } -func (m *SwapExecution) XXX_Merge(src proto.Message) { - xxx_messageInfo_SwapExecution.Merge(m, src) +func (m *SwapExecution_Trace) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapExecution_Trace.Merge(m, src) } -func (m *SwapExecution) XXX_Size() int { +func (m *SwapExecution_Trace) XXX_Size() int { return m.Size() } -func (m *SwapExecution) XXX_DiscardUnknown() { - xxx_messageInfo_SwapExecution.DiscardUnknown(m) +func (m *SwapExecution_Trace) XXX_DiscardUnknown() { + xxx_messageInfo_SwapExecution_Trace.DiscardUnknown(m) } -var xxx_messageInfo_SwapExecution proto.InternalMessageInfo +var xxx_messageInfo_SwapExecution_Trace proto.InternalMessageInfo -func (m *SwapExecution) GetTrades() []*Trade { +func (m *SwapExecution_Trace) GetValue() []*v1alpha1.Value { if m != nil { - return m.Trades + return m.Value } return nil } @@ -2088,7 +2078,7 @@ func (m *PositionWithdrawPlan) Reset() { *m = PositionWithdrawPlan{} } func (m *PositionWithdrawPlan) String() string { return proto.CompactTextString(m) } func (*PositionWithdrawPlan) ProtoMessage() {} func (*PositionWithdrawPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{28} + return fileDescriptor_d1eba752ca2f0d70, []int{27} } func (m *PositionWithdrawPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2147,7 +2137,7 @@ func (m *PositionRewardClaimPlan) Reset() { *m = PositionRewardClaimPlan func (m *PositionRewardClaimPlan) String() string { return proto.CompactTextString(m) } func (*PositionRewardClaimPlan) ProtoMessage() {} func (*PositionRewardClaimPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{29} + return fileDescriptor_d1eba752ca2f0d70, []int{28} } func (m *PositionRewardClaimPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2215,8 +2205,8 @@ func init() { proto.RegisterType((*PositionWithdraw)(nil), "penumbra.core.dex.v1alpha1.PositionWithdraw") proto.RegisterType((*PositionRewardClaim)(nil), "penumbra.core.dex.v1alpha1.PositionRewardClaim") proto.RegisterType((*Path)(nil), "penumbra.core.dex.v1alpha1.Path") - proto.RegisterType((*Trade)(nil), "penumbra.core.dex.v1alpha1.Trade") proto.RegisterType((*SwapExecution)(nil), "penumbra.core.dex.v1alpha1.SwapExecution") + proto.RegisterType((*SwapExecution_Trace)(nil), "penumbra.core.dex.v1alpha1.SwapExecution.Trace") proto.RegisterType((*PositionWithdrawPlan)(nil), "penumbra.core.dex.v1alpha1.PositionWithdrawPlan") proto.RegisterType((*PositionRewardClaimPlan)(nil), "penumbra.core.dex.v1alpha1.PositionRewardClaimPlan") } @@ -2226,119 +2216,119 @@ func init() { } var fileDescriptor_d1eba752ca2f0d70 = []byte{ - // 1788 bytes of a gzipped FileDescriptorProto + // 1781 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x4f, 0x6f, 0xe3, 0xc6, - 0x15, 0xf7, 0x50, 0xb2, 0x2d, 0x3f, 0xc9, 0x1b, 0xef, 0x38, 0x68, 0x0d, 0x17, 0x71, 0x76, 0xd9, - 0xfc, 0xd9, 0x26, 0x85, 0x1c, 0x31, 0x29, 0x90, 0x7a, 0x9b, 0x6c, 0xac, 0x3f, 0x8e, 0xb5, 0x89, - 0x65, 0x86, 0x76, 0x76, 0x8b, 0xd4, 0x28, 0x31, 0x26, 0xc7, 0x2b, 0xa2, 0x14, 0xc9, 0x25, 0x47, - 0xb6, 0x7c, 0x2a, 0x50, 0xb4, 0xe8, 0x29, 0x68, 0xf3, 0x01, 0x8a, 0x22, 0x3d, 0xf6, 0x33, 0x14, - 0xed, 0xb5, 0x28, 0x5a, 0x60, 0x6f, 0xed, 0xa9, 0x28, 0xbc, 0x87, 0x02, 0xfd, 0x00, 0x45, 0x0f, - 0x3d, 0x14, 0x33, 0x1c, 0x8a, 0xb4, 0x2d, 0xaf, 0x44, 0xad, 0x7b, 0xc9, 0x4d, 0x33, 0xf3, 0x7e, - 0x3f, 0xbe, 0x99, 0xf7, 0xe6, 0xfd, 0x1e, 0x29, 0x78, 0x25, 0xa0, 0x5e, 0xbf, 0x77, 0x18, 0x92, - 0x75, 0xcb, 0x0f, 0xe9, 0xba, 0x4d, 0x07, 0xeb, 0xc7, 0x35, 0xe2, 0x06, 0x5d, 0x52, 0xe3, 0x83, - 0x6a, 0x10, 0xfa, 0xcc, 0xc7, 0xab, 0x89, 0x55, 0x95, 0x5b, 0x55, 0xf9, 0x42, 0x62, 0xb5, 0xfa, - 0xc6, 0x79, 0x06, 0x2b, 0x3c, 0x0d, 0x98, 0x9f, 0x92, 0xc4, 0xe3, 0x98, 0x47, 0xfd, 0x09, 0x82, - 0xe2, 0xde, 0x09, 0x09, 0xf0, 0x07, 0x30, 0x1b, 0x84, 0xbe, 0x7f, 0xb4, 0x82, 0x6e, 0xa1, 0x3b, - 0x65, 0xed, 0x8d, 0xea, 0xf9, 0x07, 0x48, 0x50, 0x42, 0x52, 0xfd, 0xec, 0x23, 0x8e, 0xd2, 0x39, - 0xc2, 0x88, 0x81, 0xf8, 0x5d, 0x28, 0x1e, 0xfa, 0xf6, 0xe9, 0x4a, 0x51, 0x10, 0xbc, 0x52, 0xbd, - 0xda, 0xc3, 0x2a, 0xc7, 0xd6, 0x7d, 0xfb, 0xd4, 0x10, 0x08, 0xf5, 0xe7, 0x08, 0x16, 0xf8, 0x54, - 0xc3, 0x25, 0x4e, 0x0f, 0xbf, 0x98, 0xf5, 0xa4, 0x92, 0xb0, 0xbf, 0x27, 0xd9, 0x15, 0xc1, 0xfe, - 0xad, 0x71, 0xec, 0x82, 0x2a, 0x7d, 0x04, 0x7e, 0x15, 0x6e, 0xd0, 0xc0, 0xb7, 0xba, 0xa6, 0xdd, - 0x0f, 0x09, 0x73, 0x7c, 0x6f, 0x65, 0xfe, 0x16, 0xba, 0x53, 0x34, 0x16, 0xc5, 0x6c, 0x53, 0x4e, - 0xaa, 0xbf, 0x2e, 0xc0, 0xe2, 0x39, 0x38, 0xde, 0x82, 0x05, 0xaf, 0xef, 0xba, 0xce, 0x91, 0x43, - 0x43, 0x79, 0x36, 0x77, 0xc6, 0x9c, 0x4d, 0x27, 0xb1, 0x37, 0x52, 0x28, 0x7e, 0x07, 0x0a, 0x47, - 0x94, 0x4a, 0xf7, 0xd5, 0x31, 0x0c, 0x5b, 0x94, 0x1a, 0xdc, 0x1c, 0xff, 0x10, 0x96, 0xfd, 0x3e, - 0x0b, 0xfa, 0xcc, 0xac, 0x99, 0x96, 0xdf, 0xeb, 0x39, 0xac, 0x47, 0x3d, 0xb6, 0x52, 0x10, 0x2c, - 0xd5, 0x31, 0x2c, 0x7b, 0x8c, 0x30, 0xda, 0x18, 0xa2, 0x8c, 0x9b, 0x31, 0x55, 0x2d, 0x9d, 0xca, - 0xf0, 0x6b, 0x59, 0xfe, 0xe2, 0xf3, 0xf0, 0x6b, 0x19, 0x7e, 0x1d, 0xca, 0x92, 0xdf, 0x26, 0x8c, - 0xac, 0xcc, 0x09, 0xde, 0xf5, 0x67, 0x05, 0xaf, 0x4e, 0x98, 0xd5, 0xe5, 0x21, 0xd8, 0x15, 0xb8, - 0x26, 0x61, 0xc4, 0x00, 0x7f, 0xf8, 0x5b, 0xfd, 0x8f, 0x02, 0xa5, 0x24, 0x7d, 0xf0, 0x7d, 0xa8, - 0xb0, 0x90, 0xd8, 0x8e, 0xf7, 0xc8, 0x0c, 0x88, 0x93, 0xc4, 0xe7, 0xf5, 0x67, 0xf1, 0xef, 0xc7, - 0xf6, 0x3a, 0x71, 0x42, 0xa3, 0xcc, 0xd2, 0x01, 0xde, 0x84, 0x05, 0x9b, 0xba, 0x8c, 0x98, 0x35, - 0xd3, 0x91, 0x61, 0x7a, 0x75, 0xcc, 0x01, 0x6c, 0xf6, 0xfc, 0xbe, 0xc7, 0x8c, 0x79, 0x81, 0xab, - 0xb5, 0x53, 0x0a, 0xcd, 0x74, 0x64, 0x8c, 0x72, 0x51, 0x68, 0x6d, 0xfc, 0x10, 0x6e, 0x1c, 0x51, - 0x7a, 0x39, 0x16, 0x6f, 0x8d, 0xe1, 0xa9, 0x13, 0x97, 0x78, 0x56, 0x36, 0x1a, 0x8b, 0x47, 0x34, - 0x33, 0xc4, 0x9b, 0x30, 0x1f, 0x90, 0x53, 0xd7, 0x27, 0xf6, 0xca, 0xec, 0xf8, 0x53, 0x12, 0x97, - 0x3b, 0x36, 0x37, 0x12, 0x9c, 0xfa, 0x53, 0x04, 0xe5, 0xcc, 0x02, 0xee, 0x00, 0x64, 0xfc, 0x44, - 0x53, 0xe5, 0x4c, 0x86, 0x41, 0xdc, 0x51, 0x4f, 0x00, 0xa8, 0x6d, 0x46, 0x27, 0x24, 0x10, 0x61, - 0xa8, 0x18, 0x8b, 0xc3, 0x59, 0xfe, 0x74, 0xf5, 0x67, 0xf2, 0x8e, 0xea, 0x2e, 0x71, 0x3c, 0x46, - 0x07, 0xec, 0x2b, 0x98, 0x06, 0xf7, 0x60, 0xc1, 0xe2, 0x25, 0xc8, 0xe4, 0x35, 0xa3, 0x38, 0x71, - 0xcd, 0x28, 0x09, 0xd0, 0x16, 0xa5, 0xf8, 0x23, 0x58, 0x8c, 0x09, 0x88, 0x6d, 0x87, 0x34, 0x8a, - 0x64, 0xd0, 0x5f, 0x1b, 0xe7, 0x47, 0x6c, 0x6d, 0x54, 0x04, 0x58, 0x8e, 0x78, 0x45, 0x0e, 0x23, - 0x4a, 0x6d, 0x71, 0x7f, 0x2b, 0x46, 0x3c, 0x50, 0x3f, 0x01, 0xbc, 0xe3, 0x5b, 0x3f, 0xda, 0x72, - 0xfd, 0x93, 0x86, 0x13, 0x74, 0x69, 0x28, 0x62, 0x71, 0x17, 0x66, 0x8f, 0x89, 0xdb, 0xa7, 0x32, - 0x08, 0x13, 0x6e, 0x3c, 0xc6, 0xa8, 0x3f, 0x8e, 0xef, 0xb6, 0xee, 0x12, 0x0f, 0xeb, 0x70, 0x83, - 0xe7, 0x80, 0x19, 0x24, 0x61, 0x96, 0x8c, 0x63, 0x4b, 0xff, 0x30, 0x2f, 0x8c, 0xc5, 0xe8, 0x5c, - 0x9a, 0xdc, 0x86, 0x0a, 0xbf, 0x5b, 0x87, 0xae, 0xe3, 0xf1, 0x70, 0xcb, 0xec, 0x2a, 0x1f, 0x51, - 0x5a, 0x97, 0x53, 0xea, 0xbf, 0x51, 0xa6, 0xfe, 0xff, 0x9f, 0xdc, 0x58, 0x85, 0x52, 0xe0, 0x47, - 0x8e, 0x10, 0x21, 0x45, 0x88, 0xd0, 0x70, 0x7c, 0xb1, 0x5e, 0x16, 0x9e, 0xbb, 0x5e, 0x8e, 0x10, - 0xbe, 0xe2, 0x28, 0xe1, 0xfb, 0xaf, 0x2c, 0xab, 0x0f, 0x1c, 0x7a, 0x82, 0xb7, 0x61, 0xfe, 0xd8, - 0x89, 0x9c, 0x43, 0x37, 0x89, 0xe2, 0xb7, 0xc7, 0x6d, 0x96, 0xc3, 0xaa, 0x0f, 0x62, 0xcc, 0xf6, - 0x8c, 0x91, 0xc0, 0x71, 0x0b, 0xe6, 0xfc, 0x80, 0x3c, 0xee, 0x27, 0xc2, 0xf7, 0xe6, 0x44, 0x44, - 0xbb, 0x02, 0xb2, 0x3d, 0x63, 0x48, 0xf0, 0xea, 0x17, 0x08, 0xe6, 0x25, 0x3b, 0x7e, 0x07, 0x8a, - 0xa2, 0x36, 0xc4, 0x9e, 0xdd, 0x1a, 0x47, 0x68, 0x08, 0xeb, 0x11, 0x61, 0x2c, 0x3c, 0x5f, 0x18, - 0x57, 0xdf, 0x87, 0xb9, 0xd8, 0xcf, 0xe9, 0x3c, 0xaa, 0x97, 0x61, 0x41, 0x78, 0x74, 0xec, 0xd0, - 0x13, 0xf5, 0x9f, 0xd9, 0xbe, 0x43, 0xc4, 0x60, 0xe7, 0x62, 0x0c, 0x6a, 0x13, 0xb5, 0x3c, 0x57, - 0x05, 0xe2, 0xfe, 0x85, 0x40, 0xbc, 0x35, 0x39, 0xdb, 0xa5, 0x68, 0xfc, 0x35, 0x13, 0x8d, 0x26, - 0x80, 0xd8, 0x85, 0xa8, 0x17, 0x57, 0xdc, 0xf9, 0xd1, 0xdc, 0x86, 0xd8, 0x7e, 0xdc, 0xf2, 0xd5, - 0xa1, 0x94, 0xb4, 0x39, 0xd2, 0xbf, 0xd7, 0xc7, 0xf5, 0x58, 0x3e, 0xa3, 0xdc, 0x3b, 0x63, 0x5e, - 0x36, 0x35, 0x19, 0x0e, 0x4d, 0xc6, 0x36, 0x2f, 0x87, 0xb6, 0xda, 0x19, 0xc6, 0xf4, 0x5a, 0xf6, - 0x55, 0xbf, 0x09, 0x2f, 0xa4, 0x2c, 0x71, 0xa4, 0x7f, 0x81, 0xa0, 0x9c, 0x11, 0x1f, 0x7c, 0x0f, - 0xe6, 0x49, 0x14, 0x51, 0xbe, 0x73, 0x34, 0x59, 0x89, 0xe6, 0xd6, 0x6d, 0xdb, 0x98, 0x13, 0xb0, - 0x5a, 0x4a, 0xa0, 0xc9, 0xa3, 0xcb, 0x47, 0xa0, 0xa9, 0x9f, 0x23, 0x58, 0x6e, 0x3a, 0x21, 0xb5, - 0x18, 0xb5, 0xb3, 0x9e, 0x7d, 0x0f, 0x66, 0x23, 0x46, 0x42, 0x96, 0xd3, 0xaf, 0x18, 0x84, 0xdf, - 0x85, 0x02, 0xf5, 0xec, 0x9c, 0x2e, 0x71, 0x88, 0xfa, 0x79, 0x11, 0x96, 0x47, 0x54, 0x35, 0xfc, - 0x3e, 0xcc, 0x4b, 0x65, 0xce, 0xa7, 0x2d, 0x73, 0xb1, 0x2e, 0xa7, 0x78, 0x2d, 0x9f, 0xae, 0xc7, - 0x78, 0x0d, 0x37, 0x00, 0x5c, 0xd2, 0x3b, 0xb4, 0x79, 0x6b, 0x50, 0xcb, 0xa7, 0xeb, 0xa5, 0x18, - 0x58, 0xab, 0x65, 0x48, 0x34, 0xb3, 0x26, 0x95, 0x3d, 0x1f, 0x89, 0x56, 0x3b, 0xe7, 0x89, 0x26, - 0x95, 0x3d, 0xa7, 0x27, 0xda, 0x39, 0x4f, 0x34, 0xd9, 0x99, 0xe7, 0xf4, 0x44, 0xc3, 0x5f, 0x83, - 0xb9, 0x2e, 0x75, 0x1e, 0x75, 0x99, 0x7c, 0x9d, 0x92, 0xa3, 0x4b, 0x1d, 0x59, 0x69, 0xfa, 0x8e, - 0x4c, 0xfd, 0x15, 0x82, 0x17, 0xe4, 0xe2, 0x56, 0xdf, 0xb3, 0x84, 0x4e, 0xee, 0xc0, 0x82, 0xe5, - 0xf7, 0x02, 0xdf, 0x4b, 0x3b, 0xcf, 0x31, 0x2a, 0x19, 0xd2, 0x0b, 0x1c, 0x46, 0xca, 0x80, 0xef, - 0x42, 0x51, 0xb8, 0xa9, 0xe4, 0x73, 0x53, 0x80, 0xd4, 0x2f, 0x10, 0xcf, 0xd7, 0x4b, 0xfc, 0x78, - 0x29, 0x7e, 0xe3, 0xe3, 0xde, 0x2d, 0xc6, 0x6f, 0x73, 0x6f, 0x03, 0x0a, 0xf2, 0xe5, 0x1e, 0x0a, - 0x38, 0xe8, 0x71, 0xbe, 0x6c, 0x43, 0x8f, 0xd5, 0x01, 0x94, 0x0c, 0x1a, 0xd1, 0xf0, 0x98, 0x46, - 0xf8, 0x3b, 0xa0, 0x84, 0x39, 0xaf, 0x8c, 0x12, 0xd6, 0x04, 0x2c, 0xe7, 0x4d, 0x51, 0x42, 0x4d, - 0x3d, 0x43, 0x50, 0xd2, 0x93, 0x76, 0xe6, 0x3d, 0x28, 0x04, 0x5d, 0x47, 0x3e, 0xfb, 0xcd, 0x09, - 0x8e, 0x75, 0x18, 0x1c, 0x8e, 0xe3, 0x7d, 0xa7, 0xe7, 0x7b, 0x16, 0x95, 0x9d, 0x5a, 0x3c, 0xc0, - 0xf7, 0x44, 0x5d, 0x62, 0x74, 0x12, 0x05, 0x4f, 0x3c, 0x11, 0xaf, 0x1d, 0x46, 0x8c, 0xc3, 0x1f, - 0x40, 0x29, 0x94, 0x87, 0x33, 0xc9, 0xc7, 0x8a, 0xe4, 0x20, 0x8d, 0x21, 0x4a, 0x55, 0x01, 0x12, - 0xe6, 0xb6, 0xcd, 0xdd, 0x74, 0x3c, 0x4f, 0x7e, 0x1e, 0xa8, 0x18, 0xf1, 0x40, 0xfd, 0x52, 0x81, - 0xc5, 0x73, 0x8f, 0xc7, 0x9f, 0x24, 0x8e, 0x73, 0xbb, 0x1b, 0xda, 0xdd, 0x89, 0x1d, 0x3f, 0x3f, - 0x6a, 0x79, 0xfd, 0x9e, 0xdc, 0x8a, 0xfa, 0x3b, 0x04, 0x37, 0x2f, 0x2d, 0xe2, 0x6f, 0xc2, 0xcb, - 0xfa, 0xee, 0x5e, 0x7b, 0xbf, 0xbd, 0xdb, 0x31, 0xf7, 0xf6, 0x37, 0xf7, 0x5b, 0x66, 0xab, 0xf3, - 0xe9, 0x8e, 0xf9, 0x69, 0x67, 0x4f, 0x6f, 0x35, 0xda, 0x5b, 0xed, 0x56, 0x73, 0x69, 0x06, 0xaf, - 0xc1, 0xea, 0x28, 0xa3, 0x5d, 0xbd, 0xd5, 0x69, 0x35, 0x97, 0xd0, 0x55, 0xeb, 0x8d, 0x8f, 0x77, - 0xf7, 0x5a, 0xcd, 0x25, 0x05, 0xdf, 0x86, 0x97, 0x46, 0xad, 0x3f, 0x6c, 0xef, 0x6f, 0x37, 0x8d, - 0xcd, 0x87, 0x9d, 0xa5, 0x02, 0x7e, 0x19, 0xbe, 0x31, 0x9a, 0x62, 0xb3, 0xbd, 0xd3, 0x6a, 0x2e, - 0x15, 0xf9, 0xd5, 0x99, 0xfd, 0x38, 0xe8, 0x1c, 0x31, 0xfc, 0x21, 0x94, 0x93, 0x26, 0xd8, 0x74, - 0xec, 0x2b, 0x24, 0x67, 0xe4, 0x09, 0xb5, 0x6d, 0x03, 0x82, 0x34, 0x18, 0xc3, 0xec, 0x50, 0xa6, - 0xcb, 0x0e, 0x55, 0x87, 0x4a, 0x32, 0xbf, 0x1b, 0x50, 0x8f, 0x67, 0xcb, 0xb0, 0x5d, 0x47, 0xe3, - 0xb3, 0x25, 0xc1, 0xa6, 0x4d, 0xbd, 0xfa, 0xfd, 0x34, 0x11, 0x1a, 0xae, 0x1f, 0xd1, 0x6b, 0xdb, - 0xac, 0xfa, 0x7b, 0x04, 0x4b, 0xc9, 0xd2, 0x43, 0x87, 0x75, 0xed, 0x90, 0x9c, 0x5c, 0xdf, 0x51, - 0x12, 0x58, 0x4e, 0x32, 0x3e, 0xfb, 0x41, 0x42, 0x99, 0xf2, 0x83, 0x04, 0x4e, 0xc8, 0xd2, 0x39, - 0xf5, 0x0f, 0x08, 0x96, 0x87, 0x27, 0x46, 0x4f, 0x48, 0x68, 0xc7, 0x0d, 0xe1, 0xb5, 0xed, 0xc1, - 0x04, 0x1c, 0x0a, 0xde, 0x6b, 0xd9, 0xc2, 0x4d, 0xc9, 0x95, 0xd9, 0xc1, 0x9f, 0x11, 0x14, 0x75, - 0xc2, 0xba, 0xb8, 0x21, 0x35, 0x64, 0x02, 0x35, 0x1a, 0xd1, 0x6d, 0xc5, 0x5a, 0xc2, 0x7b, 0xae, - 0xd0, 0xef, 0x8b, 0xec, 0x2d, 0xe4, 0xe9, 0xb9, 0x04, 0x08, 0x6f, 0xc6, 0xe5, 0xb6, 0x30, 0x9d, - 0x1e, 0x72, 0xac, 0xfa, 0x17, 0x04, 0xb3, 0x7c, 0x41, 0xbc, 0xd5, 0x04, 0x84, 0x75, 0x27, 0x79, - 0xab, 0xe1, 0xfb, 0x37, 0x84, 0x35, 0xde, 0x86, 0x8a, 0xe8, 0xff, 0x4c, 0x22, 0x24, 0x21, 0x9f, - 0x7e, 0x94, 0x05, 0x34, 0x1e, 0xf0, 0x0e, 0x9c, 0x7a, 0x76, 0xc2, 0x93, 0x4b, 0x00, 0x17, 0xa8, - 0x67, 0xc7, 0x3f, 0xd5, 0xfb, 0xf1, 0x7b, 0x55, 0x6b, 0x40, 0xad, 0xbe, 0x90, 0xa4, 0xef, 0xc2, - 0x1c, 0x6f, 0x2e, 0x68, 0xb4, 0x82, 0xc4, 0x11, 0xdf, 0x1e, 0xa7, 0x4a, 0xd4, 0x90, 0x00, 0xf5, - 0xef, 0x08, 0x5e, 0xbc, 0x78, 0xdb, 0xc4, 0x37, 0x82, 0xac, 0xa0, 0xa0, 0x69, 0x04, 0xe5, 0x62, - 0xbe, 0x2b, 0x53, 0xe7, 0x7b, 0xd2, 0xc9, 0x14, 0xa6, 0xe9, 0x64, 0x7e, 0x00, 0x5f, 0x1f, 0x71, - 0x19, 0xaf, 0x67, 0x8b, 0xf5, 0x2f, 0x95, 0x3f, 0x9e, 0xad, 0xa1, 0x27, 0x67, 0x6b, 0xe8, 0x1f, - 0x67, 0x6b, 0xe8, 0x97, 0x4f, 0xd7, 0x66, 0x9e, 0x3c, 0x5d, 0x9b, 0xf9, 0xdb, 0xd3, 0xb5, 0x19, - 0x58, 0xb3, 0xfc, 0xde, 0x33, 0xd8, 0xea, 0xa5, 0x26, 0x1d, 0xe8, 0xa1, 0xcf, 0x7c, 0x1d, 0x7d, - 0x66, 0x3c, 0x72, 0x58, 0xb7, 0x7f, 0x58, 0xb5, 0xfc, 0xde, 0xba, 0xe5, 0x47, 0x3d, 0x3f, 0x5a, - 0x0f, 0xa9, 0x4b, 0x4e, 0x69, 0xb8, 0x7e, 0xac, 0x0d, 0x7f, 0x5a, 0x5d, 0xe2, 0x78, 0xd1, 0xfa, - 0xd5, 0x7f, 0xa5, 0xdc, 0xb5, 0xe9, 0x20, 0xf9, 0xfd, 0x1b, 0xa5, 0xa0, 0x37, 0x9a, 0xbf, 0x55, - 0x56, 0xf5, 0xc4, 0x85, 0x06, 0x77, 0xa1, 0x49, 0x07, 0xd5, 0x07, 0xd2, 0xe4, 0x4f, 0xe9, 0xe2, - 0x01, 0x5f, 0x3c, 0x68, 0xd2, 0xc1, 0x41, 0xb2, 0x78, 0xa6, 0xbc, 0x76, 0xf5, 0xe2, 0xc1, 0x87, - 0x7a, 0x7d, 0x87, 0x32, 0x62, 0x13, 0x46, 0xfe, 0xa5, 0xbc, 0x94, 0x18, 0x6e, 0x6c, 0x70, 0xcb, - 0x8d, 0x8d, 0x26, 0x1d, 0x6c, 0x6c, 0x24, 0xb6, 0x87, 0x73, 0xe2, 0x4f, 0x99, 0xb7, 0xff, 0x17, - 0x00, 0x00, 0xff, 0xff, 0x38, 0x61, 0x76, 0x55, 0x04, 0x1a, 0x00, 0x00, + 0x15, 0x37, 0x29, 0xd9, 0x96, 0x9f, 0xe4, 0x8d, 0x77, 0x1c, 0xb4, 0x86, 0x8a, 0x38, 0xbb, 0x6c, + 0xfe, 0x6c, 0x93, 0x42, 0x8a, 0x98, 0x14, 0x08, 0xbc, 0x4d, 0x36, 0xd6, 0x1f, 0xaf, 0x95, 0xc4, + 0x32, 0x43, 0x3b, 0xbb, 0x45, 0xba, 0x28, 0x31, 0x26, 0xc7, 0x2b, 0xa2, 0x14, 0xc9, 0x25, 0x47, + 0xb6, 0x7c, 0x2a, 0x50, 0xb4, 0xe8, 0xa9, 0x68, 0xf3, 0x01, 0x8a, 0x22, 0x3d, 0x16, 0xfd, 0x08, + 0x45, 0x7b, 0x2d, 0x8a, 0x1e, 0x72, 0x6b, 0x4f, 0x45, 0xe1, 0x3d, 0x14, 0xe8, 0x07, 0x28, 0x7a, + 0xe8, 0xa1, 0x98, 0xe1, 0x8c, 0x48, 0xdb, 0xf2, 0x4a, 0xf4, 0xba, 0x97, 0xdc, 0x34, 0x33, 0xef, + 0xf7, 0xe3, 0x7b, 0xf3, 0xfe, 0x92, 0x82, 0x57, 0x42, 0xe2, 0x0f, 0x07, 0x07, 0x11, 0xae, 0xdb, + 0x41, 0x44, 0xea, 0x0e, 0x19, 0xd5, 0x8f, 0x1a, 0xd8, 0x0b, 0xfb, 0xb8, 0xc1, 0x16, 0xb5, 0x30, + 0x0a, 0x68, 0x80, 0xaa, 0x52, 0xaa, 0xc6, 0xa4, 0x6a, 0xec, 0x40, 0x4a, 0x55, 0xdf, 0x38, 0xcb, + 0x60, 0x47, 0x27, 0x21, 0x0d, 0x52, 0x92, 0x64, 0x9d, 0xf0, 0x68, 0x3f, 0x56, 0xa0, 0xb8, 0x77, + 0x8c, 0x43, 0xf4, 0x01, 0xcc, 0x87, 0x51, 0x10, 0x1c, 0xae, 0x29, 0xb7, 0x94, 0x3b, 0x65, 0xfd, + 0x8d, 0xda, 0xd9, 0x07, 0x08, 0x90, 0x24, 0xa9, 0x7d, 0xf6, 0x11, 0x43, 0x19, 0x0c, 0x61, 0x26, + 0x40, 0xf4, 0x2e, 0x14, 0x0f, 0x02, 0xe7, 0x64, 0xad, 0xc8, 0x09, 0x5e, 0xa9, 0x5d, 0xae, 0x61, + 0x8d, 0x61, 0x9b, 0x81, 0x73, 0x62, 0x72, 0x84, 0xf6, 0x33, 0x05, 0x96, 0xd8, 0x56, 0xcb, 0xc3, + 0xee, 0x00, 0xbd, 0x98, 0xd5, 0xa4, 0x22, 0xd9, 0xdf, 0x13, 0xec, 0x2a, 0x67, 0xff, 0xd6, 0x34, + 0x76, 0x4e, 0x95, 0x3e, 0x02, 0xbd, 0x0a, 0x37, 0x48, 0x18, 0xd8, 0x7d, 0xcb, 0x19, 0x46, 0x98, + 0xba, 0x81, 0xbf, 0xb6, 0x78, 0x4b, 0xb9, 0x53, 0x34, 0x97, 0xf9, 0x6e, 0x5b, 0x6c, 0x6a, 0xbf, + 0x2e, 0xc0, 0xf2, 0x19, 0x38, 0xda, 0x82, 0x25, 0x7f, 0xe8, 0x79, 0xee, 0xa1, 0x4b, 0x22, 0x71, + 0x37, 0x77, 0xa6, 0xdc, 0x4d, 0x4f, 0xca, 0x9b, 0x29, 0x14, 0xbd, 0x03, 0x85, 0x43, 0x42, 0x84, + 0xfa, 0xda, 0x14, 0x86, 0x2d, 0x42, 0x4c, 0x26, 0x8e, 0x7e, 0x00, 0xab, 0xc1, 0x90, 0x86, 0x43, + 0x6a, 0x35, 0x2c, 0x3b, 0x18, 0x0c, 0x5c, 0x3a, 0x20, 0x3e, 0x5d, 0x2b, 0x70, 0x96, 0xda, 0x14, + 0x96, 0x3d, 0x8a, 0x29, 0x69, 0x8d, 0x51, 0xe6, 0xcd, 0x84, 0xaa, 0x91, 0x6e, 0x65, 0xf8, 0xf5, + 0x2c, 0x7f, 0xf1, 0x79, 0xf8, 0xf5, 0x0c, 0xbf, 0x01, 0x65, 0xc1, 0xef, 0x60, 0x8a, 0xd7, 0x16, + 0x38, 0x6f, 0xfd, 0x59, 0xce, 0x6b, 0x62, 0x6a, 0xf7, 0x99, 0x0b, 0x76, 0x39, 0xae, 0x8d, 0x29, + 0x36, 0x21, 0x18, 0xff, 0xd6, 0xfe, 0xa3, 0x42, 0x49, 0x86, 0x0f, 0xfa, 0x10, 0x2a, 0x34, 0xc2, + 0x8e, 0xeb, 0x3f, 0xb6, 0x42, 0xec, 0x4a, 0xff, 0xbc, 0xfe, 0x2c, 0xfe, 0xfd, 0x44, 0xde, 0xc0, + 0x6e, 0x64, 0x96, 0x69, 0xba, 0x40, 0x9b, 0xb0, 0xe4, 0x10, 0x8f, 0x62, 0xab, 0x61, 0xb9, 0xc2, + 0x4d, 0xaf, 0x4e, 0xb9, 0x80, 0xcd, 0x41, 0x30, 0xf4, 0xa9, 0xb9, 0xc8, 0x71, 0x8d, 0x6e, 0x4a, + 0xa1, 0x5b, 0xae, 0xf0, 0x51, 0x2e, 0x0a, 0xbd, 0x8b, 0x1e, 0xc2, 0x8d, 0x43, 0x42, 0x2e, 0xfa, + 0xe2, 0xad, 0x29, 0x3c, 0x4d, 0xec, 0x61, 0xdf, 0xce, 0x7a, 0x63, 0xf9, 0x90, 0x64, 0x96, 0x68, + 0x13, 0x16, 0x43, 0x7c, 0xe2, 0x05, 0xd8, 0x59, 0x9b, 0x9f, 0x7e, 0x4b, 0x3c, 0xb9, 0x13, 0x71, + 0x53, 0xe2, 0xb4, 0x9f, 0x28, 0x50, 0xce, 0x1c, 0xa0, 0x1e, 0x40, 0x46, 0x4f, 0xe5, 0x4a, 0x31, + 0x93, 0x61, 0xe0, 0x39, 0xea, 0x73, 0x00, 0x71, 0xac, 0xf8, 0x18, 0x87, 0xdc, 0x0d, 0x15, 0x73, + 0x79, 0xbc, 0xcb, 0x9e, 0xae, 0xfd, 0x54, 0xe4, 0xa8, 0xe1, 0x61, 0xd7, 0xa7, 0x64, 0x44, 0xbf, + 0x82, 0x61, 0x70, 0x0f, 0x96, 0x6c, 0x56, 0x82, 0x2c, 0x56, 0x33, 0x8a, 0x33, 0xd7, 0x8c, 0x12, + 0x07, 0x6d, 0x11, 0x82, 0x3e, 0x82, 0xe5, 0x84, 0x00, 0x3b, 0x4e, 0x44, 0xe2, 0x58, 0x38, 0xfd, + 0xb5, 0x69, 0x7a, 0x24, 0xd2, 0x66, 0x85, 0x83, 0xc5, 0x8a, 0x55, 0xe4, 0x28, 0x26, 0xc4, 0xe1, + 0xf9, 0x5b, 0x31, 0x93, 0x85, 0xf6, 0x09, 0xa0, 0x9d, 0xc0, 0xfe, 0xe1, 0x96, 0x17, 0x1c, 0xb7, + 0xdc, 0xb0, 0x4f, 0x22, 0xee, 0x8b, 0xbb, 0x30, 0x7f, 0x84, 0xbd, 0x21, 0x11, 0x4e, 0x98, 0xd1, + 0xf0, 0x04, 0xa3, 0xfd, 0x28, 0xc9, 0x6d, 0xc3, 0xc3, 0x3e, 0x32, 0xe0, 0x06, 0x8b, 0x01, 0x2b, + 0x94, 0x6e, 0x16, 0x8c, 0x53, 0x4b, 0xff, 0x38, 0x2e, 0xcc, 0xe5, 0xf8, 0x4c, 0x98, 0xdc, 0x86, + 0x0a, 0xcb, 0xad, 0x03, 0xcf, 0xf5, 0x99, 0xbb, 0x45, 0x74, 0x95, 0x0f, 0x09, 0x69, 0x8a, 0x2d, + 0xed, 0xdf, 0x4a, 0xa6, 0xfe, 0xff, 0x9f, 0xd4, 0xa8, 0x42, 0x29, 0x0c, 0x62, 0x97, 0x37, 0x21, + 0x95, 0x37, 0xa1, 0xf1, 0xfa, 0x7c, 0xbd, 0x2c, 0x3c, 0x77, 0xbd, 0x9c, 0xd0, 0xf8, 0x8a, 0x93, + 0x1a, 0xdf, 0x7f, 0x45, 0x59, 0x7d, 0xe0, 0x92, 0x63, 0xb4, 0x0d, 0x8b, 0x47, 0x6e, 0xec, 0x1e, + 0x78, 0xd2, 0x8b, 0xdf, 0x9e, 0x66, 0x2c, 0x83, 0xd5, 0x1e, 0x24, 0x98, 0xed, 0x39, 0x53, 0xc2, + 0x51, 0x07, 0x16, 0x82, 0x10, 0x3f, 0x19, 0xca, 0xc6, 0xf7, 0xe6, 0x4c, 0x44, 0xbb, 0x1c, 0xb2, + 0x3d, 0x67, 0x0a, 0x70, 0xf5, 0x73, 0x05, 0x16, 0x05, 0x3b, 0x7a, 0x07, 0x8a, 0xbc, 0x36, 0x24, + 0x9a, 0xdd, 0x9a, 0x46, 0x68, 0x72, 0xe9, 0x09, 0x6e, 0x2c, 0x3c, 0x9f, 0x1b, 0xab, 0xef, 0xc3, + 0x42, 0xa2, 0xe7, 0xd5, 0x34, 0x6a, 0x96, 0x61, 0x89, 0x6b, 0x74, 0xe4, 0x92, 0x63, 0xed, 0x9f, + 0xd9, 0xb9, 0x83, 0xfb, 0x60, 0xe7, 0xbc, 0x0f, 0x1a, 0x33, 0x8d, 0x3c, 0x97, 0x39, 0xe2, 0xc3, + 0x73, 0x8e, 0x78, 0x6b, 0x76, 0xb6, 0x0b, 0xde, 0xf8, 0x6b, 0xc6, 0x1b, 0x6d, 0x00, 0x6e, 0x05, + 0xaf, 0x17, 0x97, 0xe4, 0xfc, 0x64, 0x6e, 0x93, 0x9b, 0x9f, 0x8c, 0x7c, 0x4d, 0x28, 0xc9, 0x31, + 0x47, 0xe8, 0xf7, 0xfa, 0xb4, 0x19, 0x2b, 0xa0, 0x84, 0x69, 0x67, 0x2e, 0x8a, 0xa1, 0x26, 0xc3, + 0xa1, 0x0b, 0xdf, 0xe6, 0xe5, 0xd0, 0xab, 0xbd, 0xb1, 0x4f, 0xaf, 0xc5, 0xae, 0xe6, 0x4d, 0x78, + 0x21, 0x65, 0x49, 0x3c, 0xfd, 0x0b, 0x05, 0xca, 0x99, 0xe6, 0x83, 0xee, 0xc1, 0x22, 0x8e, 0x63, + 0xc2, 0x2c, 0x57, 0x66, 0x2b, 0xd1, 0x4c, 0xba, 0xeb, 0x98, 0x0b, 0x1c, 0xd6, 0x48, 0x09, 0x74, + 0x71, 0x75, 0xf9, 0x08, 0x74, 0xed, 0xe7, 0x0a, 0xac, 0xb6, 0xdd, 0x88, 0xd8, 0x94, 0x38, 0x59, + 0xcd, 0xbe, 0x0b, 0xf3, 0x31, 0xc5, 0x11, 0xcd, 0xa9, 0x57, 0x02, 0x42, 0xef, 0x42, 0x81, 0xf8, + 0x4e, 0x4e, 0x95, 0x18, 0x44, 0xfb, 0x5d, 0x11, 0x56, 0x27, 0x54, 0x35, 0xf4, 0x3e, 0x2c, 0x8a, + 0xce, 0x9c, 0xaf, 0xb7, 0x2c, 0x24, 0x7d, 0x39, 0xc5, 0xeb, 0xf9, 0xfa, 0x7a, 0x82, 0xd7, 0xd1, + 0x07, 0x50, 0xf2, 0xf0, 0xe0, 0xc0, 0x61, 0x0a, 0xe4, 0xeb, 0xea, 0x09, 0xac, 0x91, 0x61, 0xd0, + 0x45, 0x53, 0xcf, 0xc7, 0xa0, 0xb3, 0xb0, 0x1c, 0xfa, 0x87, 0xae, 0xe7, 0x11, 0xc7, 0x6a, 0x88, + 0x9e, 0x3e, 0x23, 0xc7, 0x92, 0x04, 0x36, 0xce, 0xb0, 0xe8, 0x62, 0x28, 0xcf, 0xcb, 0xa2, 0xa3, + 0xaf, 0xc1, 0x42, 0x9f, 0xb8, 0x8f, 0xfb, 0x54, 0xbc, 0x4a, 0x89, 0xd5, 0x85, 0x69, 0xac, 0xf4, + 0x1c, 0xd3, 0xd8, 0x6d, 0xa8, 0x24, 0xdd, 0x4b, 0x3c, 0x69, 0x89, 0x3f, 0xa9, 0xcc, 0xf7, 0xb6, + 0xf9, 0x96, 0xf6, 0x2b, 0x05, 0x5e, 0x10, 0xf8, 0xad, 0xa1, 0x6f, 0xf3, 0x36, 0xba, 0x03, 0x4b, + 0x76, 0x30, 0x08, 0x03, 0x3f, 0x1d, 0x4c, 0xa7, 0x34, 0xd1, 0x88, 0x9c, 0xe3, 0x30, 0x53, 0x06, + 0x74, 0x17, 0x8a, 0xdc, 0x12, 0x35, 0x9f, 0x25, 0x1c, 0xa4, 0x7d, 0xae, 0xb0, 0x70, 0xbe, 0xc0, + 0x8f, 0x56, 0x92, 0x17, 0x42, 0xa6, 0xdd, 0x72, 0xf2, 0xb2, 0xf7, 0x36, 0x28, 0x61, 0xbe, 0xd0, + 0x54, 0x42, 0x06, 0x7a, 0x92, 0x2f, 0x1c, 0x95, 0x27, 0xda, 0x08, 0x4a, 0x26, 0x89, 0x49, 0x74, + 0x44, 0x62, 0xf4, 0x1d, 0x50, 0xa3, 0x9c, 0x19, 0xa5, 0x46, 0x0d, 0x0e, 0xcb, 0x99, 0x48, 0x6a, + 0xa4, 0x6b, 0xa7, 0x0a, 0x94, 0x0c, 0x39, 0xed, 0xbc, 0x07, 0x85, 0xb0, 0xef, 0x8a, 0x67, 0xbf, + 0x39, 0xc3, 0xb5, 0x8e, 0x9d, 0xc3, 0x70, 0x6c, 0x2c, 0xf5, 0x03, 0xdf, 0x26, 0x62, 0x90, 0x4b, + 0x16, 0xe8, 0x1e, 0x2f, 0x5b, 0x94, 0xcc, 0xd2, 0xe0, 0xa5, 0x26, 0xfc, 0xad, 0xc4, 0x4c, 0x70, + 0x2c, 0x4b, 0x23, 0x71, 0x39, 0xb3, 0x7c, 0xcb, 0x90, 0x17, 0x69, 0x8e, 0x51, 0x9a, 0x06, 0x20, + 0x99, 0xbb, 0x0e, 0x53, 0xd3, 0xf5, 0x7d, 0xf1, 0xf5, 0xa0, 0x62, 0x26, 0x0b, 0xed, 0x0b, 0x15, + 0x96, 0xcf, 0x3c, 0x1e, 0x7d, 0x22, 0x15, 0x67, 0x72, 0x37, 0xf4, 0xbb, 0x33, 0x2b, 0x7e, 0x76, + 0xd5, 0xf1, 0x87, 0x03, 0x61, 0x8a, 0xf6, 0x7b, 0x05, 0x6e, 0x5e, 0x38, 0x44, 0xdf, 0x84, 0x97, + 0x8d, 0xdd, 0xbd, 0xee, 0x7e, 0x77, 0xb7, 0x67, 0xed, 0xed, 0x6f, 0xee, 0x77, 0xac, 0x4e, 0xef, + 0xd3, 0x1d, 0xeb, 0xd3, 0xde, 0x9e, 0xd1, 0x69, 0x75, 0xb7, 0xba, 0x9d, 0xf6, 0xca, 0x1c, 0x5a, + 0x87, 0xea, 0x24, 0xa1, 0x5d, 0xa3, 0xd3, 0xeb, 0xb4, 0x57, 0x94, 0xcb, 0xce, 0x5b, 0x1f, 0xef, + 0xee, 0x75, 0xda, 0x2b, 0x2a, 0xba, 0x0d, 0x2f, 0x4d, 0x3a, 0x7f, 0xd8, 0xdd, 0xdf, 0x6e, 0x9b, + 0x9b, 0x0f, 0x7b, 0x2b, 0x05, 0xf4, 0x32, 0x7c, 0x63, 0x32, 0xc5, 0x66, 0x77, 0xa7, 0xd3, 0x5e, + 0x29, 0xb2, 0xd4, 0x99, 0xff, 0x38, 0xec, 0x1d, 0x52, 0x74, 0x1f, 0xca, 0x72, 0x46, 0xb6, 0x5c, + 0xe7, 0x92, 0x8e, 0x34, 0xf1, 0x86, 0xba, 0x8e, 0x09, 0x61, 0xea, 0x8c, 0x71, 0x74, 0xa8, 0x57, + 0x8b, 0x0e, 0xcd, 0x80, 0x8a, 0xdc, 0xdf, 0x0d, 0x89, 0xcf, 0xa2, 0x65, 0x3c, 0xcd, 0x2b, 0xd3, + 0xa3, 0x45, 0x62, 0xd3, 0x99, 0x5f, 0xfb, 0x5e, 0x1a, 0x08, 0x2d, 0x2f, 0x88, 0xc9, 0xb5, 0x19, + 0xab, 0xfd, 0x41, 0x81, 0x15, 0x79, 0xf4, 0xd0, 0xa5, 0x7d, 0x27, 0xc2, 0xc7, 0xd7, 0x77, 0x95, + 0x18, 0x56, 0x65, 0xc4, 0x67, 0xbf, 0x57, 0xa8, 0x57, 0xfc, 0x5e, 0x81, 0x24, 0x59, 0xba, 0xa7, + 0xfd, 0x51, 0x81, 0xd5, 0xf1, 0x8d, 0x91, 0x63, 0x1c, 0x39, 0xc9, 0xbc, 0x78, 0x6d, 0x36, 0x58, + 0x80, 0x22, 0xce, 0x7b, 0x2d, 0x26, 0xdc, 0x14, 0x5c, 0x19, 0x0b, 0xfe, 0xa2, 0x40, 0xd1, 0xc0, + 0xb4, 0x8f, 0x5a, 0xa2, 0x87, 0xcc, 0xd0, 0x8d, 0x26, 0x0c, 0x63, 0x49, 0x2f, 0x61, 0x23, 0x59, + 0x14, 0x0c, 0x79, 0xf4, 0x16, 0xf2, 0x8c, 0x64, 0x1c, 0x84, 0x36, 0x93, 0x72, 0x5b, 0xb8, 0x5a, + 0x3f, 0x64, 0x58, 0xd6, 0x6c, 0xf9, 0x7b, 0x4a, 0x67, 0x44, 0xec, 0x21, 0xaf, 0xe1, 0xf7, 0x61, + 0x81, 0x46, 0xd8, 0x26, 0xf1, 0x9a, 0xc2, 0x75, 0xaa, 0x4f, 0x1b, 0x92, 0xc7, 0x50, 0x56, 0xd4, + 0x6d, 0x62, 0x0a, 0x78, 0xb5, 0x05, 0xf3, 0x7c, 0x03, 0x6d, 0xa4, 0x5f, 0x10, 0x0a, 0x13, 0xd2, + 0xe9, 0xbc, 0x91, 0x0f, 0x98, 0xac, 0xfc, 0x80, 0xf0, 0x77, 0x05, 0x5e, 0x3c, 0x1f, 0xf1, 0xfc, + 0x35, 0x3e, 0x5b, 0xd4, 0x95, 0xab, 0x14, 0xf5, 0xf3, 0x31, 0xa7, 0x5e, 0x39, 0xe6, 0xe4, 0x34, + 0x51, 0xb8, 0xca, 0x34, 0xf1, 0x7d, 0xf8, 0xfa, 0x84, 0x84, 0xb8, 0x1e, 0x13, 0x9b, 0x5f, 0xa8, + 0x7f, 0x3a, 0x5d, 0x57, 0xbe, 0x3c, 0x5d, 0x57, 0xfe, 0x71, 0xba, 0xae, 0xfc, 0xf2, 0xe9, 0xfa, + 0xdc, 0x97, 0x4f, 0xd7, 0xe7, 0xfe, 0xf6, 0x74, 0x7d, 0x0e, 0xd6, 0xed, 0x60, 0xf0, 0x0c, 0xb6, + 0x66, 0xa9, 0x4d, 0x46, 0x46, 0x14, 0xd0, 0xc0, 0x50, 0x3e, 0x33, 0x1f, 0xbb, 0xb4, 0x3f, 0x3c, + 0xa8, 0xd9, 0xc1, 0xa0, 0x6e, 0x07, 0xf1, 0x20, 0x88, 0xeb, 0x11, 0xf1, 0xf0, 0x09, 0x89, 0xea, + 0x47, 0xfa, 0xf8, 0xa7, 0xdd, 0xc7, 0xae, 0x1f, 0xd7, 0x2f, 0xff, 0xb7, 0xe3, 0xae, 0x43, 0x46, + 0xf2, 0xf7, 0x6f, 0xd4, 0x82, 0xd1, 0x6a, 0xff, 0x56, 0xad, 0x1a, 0x52, 0x85, 0x16, 0x53, 0xa1, + 0x4d, 0x46, 0xb5, 0x07, 0x42, 0xe4, 0xcf, 0xe9, 0xe1, 0x23, 0x76, 0xf8, 0xa8, 0x4d, 0x46, 0x8f, + 0xe4, 0xe1, 0xa9, 0xfa, 0xda, 0xe5, 0x87, 0x8f, 0xee, 0x1b, 0xcd, 0x1d, 0x42, 0xb1, 0x83, 0x29, + 0xfe, 0x97, 0xfa, 0x92, 0x14, 0xdc, 0xd8, 0x60, 0x92, 0x1b, 0x1b, 0x6d, 0x32, 0xda, 0xd8, 0x90, + 0xb2, 0x07, 0x0b, 0xfc, 0x7f, 0x93, 0xb7, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x95, 0x49, 0x5f, + 0xa1, 0xa7, 0x19, 0x00, 0x00, } func (m *Swap) Marshal() (dAtA []byte, err error) { @@ -3305,6 +3295,11 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.EpochHeight != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.EpochHeight)) + i-- + dAtA[i] = 0x48 + } if m.TradingPair != nil { { size, err := m.TradingPair.MarshalToSizedBuffer(dAtA[:i]) @@ -3322,9 +3317,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x38 } - if m.Lambda_2_2 != nil { + if m.Unfilled_2 != nil { { - size, err := m.Lambda_2_2.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Unfilled_2.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3334,9 +3329,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x32 } - if m.Lambda_1_2 != nil { + if m.Unfilled_1 != nil { { - size, err := m.Lambda_1_2.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Unfilled_1.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3346,9 +3341,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x2a } - if m.Lambda_2_1 != nil { + if m.Lambda_2 != nil { { - size, err := m.Lambda_2_1.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Lambda_2.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3358,9 +3353,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if m.Lambda_1_1 != nil { + if m.Lambda_1 != nil { { - size, err := m.Lambda_1_1.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Lambda_1.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3939,7 +3934,7 @@ func (m *Path) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Trade) Marshal() (dAtA []byte, err error) { +func (m *SwapExecution) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3949,56 +3944,34 @@ func (m *Trade) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Trade) MarshalTo(dAtA []byte) (int, error) { +func (m *SwapExecution) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Trade) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *SwapExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.EndAmount != nil { - { - size, err := m.EndAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.StartAmount != nil { - { - size, err := m.StartAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Path != nil { - { - size, err := m.Path.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.Traces) > 0 { + for iNdEx := len(m.Traces) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Traces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *SwapExecution) Marshal() (dAtA []byte, err error) { +func (m *SwapExecution_Trace) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4008,20 +3981,20 @@ func (m *SwapExecution) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *SwapExecution) MarshalTo(dAtA []byte) (int, error) { +func (m *SwapExecution_Trace) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *SwapExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *SwapExecution_Trace) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Trades) > 0 { - for iNdEx := len(m.Trades) - 1; iNdEx >= 0; iNdEx-- { + if len(m.Value) > 0 { + for iNdEx := len(m.Value) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Trades[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Value[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -4522,20 +4495,20 @@ func (m *BatchSwapOutputData) Size() (n int) { l = m.Delta_2.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_1_1 != nil { - l = m.Lambda_1_1.Size() + if m.Lambda_1 != nil { + l = m.Lambda_1.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_2_1 != nil { - l = m.Lambda_2_1.Size() + if m.Lambda_2 != nil { + l = m.Lambda_2.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_1_2 != nil { - l = m.Lambda_1_2.Size() + if m.Unfilled_1 != nil { + l = m.Unfilled_1.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_2_2 != nil { - l = m.Lambda_2_2.Size() + if m.Unfilled_2 != nil { + l = m.Unfilled_2.Size() n += 1 + l + sovDex(uint64(l)) } if m.Height != 0 { @@ -4545,6 +4518,9 @@ func (m *BatchSwapOutputData) Size() (n int) { l = m.TradingPair.Size() n += 1 + l + sovDex(uint64(l)) } + if m.EpochHeight != 0 { + n += 1 + sovDex(uint64(m.EpochHeight)) + } return n } @@ -4752,35 +4728,29 @@ func (m *Path) Size() (n int) { return n } -func (m *Trade) Size() (n int) { +func (m *SwapExecution) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Path != nil { - l = m.Path.Size() - n += 1 + l + sovDex(uint64(l)) - } - if m.StartAmount != nil { - l = m.StartAmount.Size() - n += 1 + l + sovDex(uint64(l)) - } - if m.EndAmount != nil { - l = m.EndAmount.Size() - n += 1 + l + sovDex(uint64(l)) + if len(m.Traces) > 0 { + for _, e := range m.Traces { + l = e.Size() + n += 1 + l + sovDex(uint64(l)) + } } return n } -func (m *SwapExecution) Size() (n int) { +func (m *SwapExecution_Trace) Size() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.Trades) > 0 { - for _, e := range m.Trades { + if len(m.Value) > 0 { + for _, e := range m.Value { l = e.Size() n += 1 + l + sovDex(uint64(l)) } @@ -7338,7 +7308,7 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1_1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7365,16 +7335,16 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_1_1 == nil { - m.Lambda_1_1 = &v1alpha1.Amount{} + if m.Lambda_1 == nil { + m.Lambda_1 = &v1alpha1.Amount{} } - if err := m.Lambda_1_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Lambda_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2_1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7401,16 +7371,16 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_2_1 == nil { - m.Lambda_2_1 = &v1alpha1.Amount{} + if m.Lambda_2 == nil { + m.Lambda_2 = &v1alpha1.Amount{} } - if err := m.Lambda_2_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Lambda_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1_2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Unfilled_1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7437,16 +7407,16 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_1_2 == nil { - m.Lambda_1_2 = &v1alpha1.Amount{} + if m.Unfilled_1 == nil { + m.Unfilled_1 = &v1alpha1.Amount{} } - if err := m.Lambda_1_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Unfilled_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2_2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Unfilled_2", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7473,10 +7443,10 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_2_2 == nil { - m.Lambda_2_2 = &v1alpha1.Amount{} + if m.Unfilled_2 == nil { + m.Unfilled_2 = &v1alpha1.Amount{} } - if err := m.Lambda_2_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Unfilled_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -7535,6 +7505,25 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochHeight", wireType) + } + m.EpochHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -8980,7 +8969,7 @@ func (m *Path) Unmarshal(dAtA []byte) error { } return nil } -func (m *Trade) Unmarshal(dAtA []byte) error { +func (m *SwapExecution) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9003,15 +8992,15 @@ func (m *Trade) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Trade: wiretype end group for non-group") + return fmt.Errorf("proto: SwapExecution: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Trade: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SwapExecution: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Traces", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9038,82 +9027,8 @@ func (m *Trade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Path == nil { - m.Path = &Path{} - } - if err := m.Path.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartAmount", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StartAmount == nil { - m.StartAmount = &v1alpha1.Amount{} - } - if err := m.StartAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndAmount", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.EndAmount == nil { - m.EndAmount = &v1alpha1.Amount{} - } - if err := m.EndAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Traces = append(m.Traces, &SwapExecution_Trace{}) + if err := m.Traces[len(m.Traces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9138,7 +9053,7 @@ func (m *Trade) Unmarshal(dAtA []byte) error { } return nil } -func (m *SwapExecution) Unmarshal(dAtA []byte) error { +func (m *SwapExecution_Trace) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9161,15 +9076,15 @@ func (m *SwapExecution) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SwapExecution: wiretype end group for non-group") + return fmt.Errorf("proto: Trace: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SwapExecution: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Trace: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Trades", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9196,8 +9111,8 @@ func (m *SwapExecution) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Trades = append(m.Trades, &Trade{}) - if err := m.Trades[len(m.Trades)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Value = append(m.Value, &v1alpha1.Value{}) + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go index 2dab3ab79..2228a0a81 100644 --- a/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go +++ b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go @@ -650,7 +650,6 @@ func (m *ValidatorStatus) GetBondingState() *BondingState { type BondingState struct { State BondingState_BondingStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.stake.v1alpha1.BondingState_BondingStateEnum" json:"state,omitempty"` // Types that are valid to be assigned to XUnbondingEpoch: - // // *BondingState_UnbondingEpoch XUnbondingEpoch isBondingState_XUnbondingEpoch `protobuf_oneof:"_unbonding_epoch"` } diff --git a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go index e11591783..027751ff9 100644 --- a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go +++ b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go @@ -658,7 +658,9 @@ type TransactionPerspective struct { // Any relevant address views. AddressViews []*v1alpha1.AddressView `protobuf:"bytes,4,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` // Any relevant denoms for viewed assets. - Denoms []*v1alpha1.Denom `protobuf:"bytes,5,rep,name=denoms,proto3" json:"denoms,omitempty"` + Denoms []*v1alpha1.DenomMetadata `protobuf:"bytes,5,rep,name=denoms,proto3" json:"denoms,omitempty"` + // The transaction ID associated with this TransactionPerspective + TransactionId *Id `protobuf:"bytes,6,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` } func (m *TransactionPerspective) Reset() { *m = TransactionPerspective{} } @@ -722,13 +724,20 @@ func (m *TransactionPerspective) GetAddressViews() []*v1alpha1.AddressView { return nil } -func (m *TransactionPerspective) GetDenoms() []*v1alpha1.Denom { +func (m *TransactionPerspective) GetDenoms() []*v1alpha1.DenomMetadata { if m != nil { return m.Denoms } return nil } +func (m *TransactionPerspective) GetTransactionId() *Id { + if m != nil { + return m.TransactionId + } + return nil +} + type PayloadKey struct { Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` } @@ -3369,172 +3378,173 @@ func init() { } var fileDescriptor_cd20ea79758052c4 = []byte{ - // 2631 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x9f, 0x9e, 0xb1, 0xc7, 0xf6, 0x9b, 0xf1, 0x57, 0xc5, 0x9b, 0x1d, 0x2c, 0xe4, 0x8d, 0x7a, - 0x93, 0xe0, 0x24, 0xec, 0x38, 0xb1, 0x9d, 0x8d, 0xe4, 0x0d, 0xb0, 0x1e, 0x7b, 0xb3, 0xe3, 0x64, - 0x1d, 0xcf, 0x76, 0x82, 0xa3, 0x04, 0xb3, 0x4d, 0x4d, 0x77, 0xd9, 0xd3, 0x72, 0x4f, 0x77, 0xd3, - 0xdd, 0x33, 0x8e, 0xf7, 0x1f, 0x00, 0x2e, 0x68, 0x91, 0x38, 0x20, 0x2e, 0x48, 0x5c, 0x90, 0x38, - 0x70, 0xe0, 0x08, 0xe2, 0xcc, 0x0a, 0x24, 0x14, 0x89, 0x0b, 0xd2, 0x0a, 0x09, 0x92, 0x13, 0x1f, - 0x17, 0xfe, 0x01, 0x84, 0xaa, 0xba, 0xfa, 0x73, 0xda, 0x99, 0x1e, 0x3b, 0x61, 0x95, 0x4d, 0x4e, - 0xae, 0x7a, 0x7e, 0xef, 0x57, 0x55, 0xef, 0xbd, 0xaa, 0x7a, 0xef, 0x55, 0x0f, 0x2c, 0x5b, 0xc4, + // 2656 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4f, 0x6f, 0x1c, 0x49, + 0x15, 0x9f, 0x9e, 0xb1, 0xc7, 0xf6, 0x9b, 0xf1, 0xbf, 0x8a, 0x93, 0x1d, 0x2c, 0xe4, 0x8d, 0x7a, + 0x93, 0xe0, 0x24, 0xbb, 0xe3, 0xc4, 0x76, 0x36, 0x92, 0x77, 0x81, 0xf5, 0xd8, 0x9b, 0x1d, 0x27, + 0xeb, 0x78, 0xb6, 0x13, 0x1c, 0x25, 0x98, 0x6d, 0x6a, 0xba, 0xcb, 0x9e, 0x96, 0x7b, 0xba, 0x9b, + 0xee, 0x9e, 0x71, 0xbc, 0x5f, 0x00, 0xb8, 0xa0, 0x45, 0xe2, 0x80, 0xb8, 0x20, 0x71, 0x41, 0xe2, + 0xc0, 0x07, 0x00, 0x71, 0x66, 0x05, 0x12, 0x8a, 0xc4, 0x05, 0x69, 0x85, 0x04, 0xc9, 0x89, 0x3f, + 0x17, 0xbe, 0x00, 0x42, 0x55, 0x5d, 0xfd, 0x77, 0xda, 0x99, 0x1e, 0x3b, 0x61, 0x95, 0x4d, 0x4e, + 0xae, 0x7a, 0xf3, 0xde, 0xaf, 0xaa, 0xde, 0x7b, 0x55, 0xf5, 0xde, 0xab, 0x36, 0x2c, 0x5b, 0xc4, 0xe8, 0xb4, 0x9b, 0x36, 0x5e, 0x50, 0x4c, 0x9b, 0x2c, 0xb8, 0x36, 0x36, 0x1c, 0xac, 0xb8, 0x9a, - 0x69, 0x2c, 0x74, 0xaf, 0x60, 0xdd, 0x6a, 0xe1, 0x2b, 0x51, 0x62, 0xd5, 0xb2, 0x4d, 0xd7, 0x44, - 0xa2, 0x2f, 0x55, 0xa5, 0x52, 0xd5, 0x28, 0x83, 0x2f, 0x35, 0x7b, 0x31, 0x8e, 0xac, 0xd8, 0x87, + 0x69, 0x2c, 0x74, 0xaf, 0x62, 0xdd, 0x6a, 0xe1, 0xab, 0x51, 0x62, 0xd5, 0xb2, 0x4d, 0xd7, 0x44, + 0xa2, 0x2f, 0x55, 0xa5, 0x52, 0xd5, 0x28, 0x83, 0x2f, 0x35, 0x7b, 0x29, 0x8e, 0xac, 0xd8, 0x87, 0x96, 0x6b, 0x86, 0xa0, 0x5e, 0xdf, 0xc3, 0x9b, 0x9d, 0x8f, 0xf3, 0x3a, 0x2e, 0xde, 0x27, 0x21, - 0x2b, 0xeb, 0x72, 0xce, 0xb3, 0x71, 0x4e, 0xad, 0xa9, 0x84, 0x7c, 0x5a, 0x53, 0x49, 0xe7, 0x52, + 0x2b, 0xeb, 0x72, 0xce, 0x73, 0x71, 0x4e, 0xad, 0xa9, 0x84, 0x7c, 0x5a, 0x53, 0x49, 0xe7, 0x52, 0xc9, 0xc3, 0x90, 0x4b, 0x25, 0x0f, 0x39, 0xd7, 0x62, 0x9c, 0x6b, 0xcf, 0xec, 0x12, 0xdb, 0xc0, - 0x86, 0x12, 0x19, 0x3a, 0xa4, 0x79, 0x32, 0xe2, 0x6f, 0x04, 0x28, 0xdd, 0x0d, 0x97, 0x8b, 0xde, - 0x87, 0xa1, 0xa6, 0xa9, 0x1e, 0x56, 0x84, 0x33, 0xc2, 0x7c, 0x69, 0x71, 0xa9, 0xda, 0x5f, 0x31, - 0xd5, 0x88, 0x78, 0xcd, 0x54, 0x0f, 0x25, 0x06, 0x80, 0xde, 0x80, 0x52, 0x53, 0x33, 0x54, 0xcd, - 0xd8, 0x93, 0x1d, 0x6d, 0xaf, 0x92, 0x3f, 0x23, 0xcc, 0x97, 0x25, 0xe0, 0xa4, 0x3b, 0xda, 0x1e, - 0x5a, 0x85, 0x22, 0x36, 0x94, 0x96, 0x69, 0x57, 0x0a, 0x6c, 0xac, 0x0b, 0x89, 0xb1, 0xb8, 0x42, + 0x86, 0x12, 0x19, 0x3a, 0xa4, 0x79, 0x32, 0xe2, 0x6f, 0x04, 0x28, 0xdd, 0x0d, 0x97, 0x8b, 0x3e, + 0x80, 0xa1, 0xa6, 0xa9, 0x1e, 0x56, 0x84, 0xb3, 0xc2, 0x7c, 0x69, 0x71, 0xa9, 0xda, 0x5f, 0x31, + 0xd5, 0x88, 0x78, 0xcd, 0x54, 0x0f, 0x25, 0x06, 0x80, 0x5e, 0x87, 0x52, 0x53, 0x33, 0x54, 0xcd, + 0xd8, 0x93, 0x1d, 0x6d, 0xaf, 0x92, 0x3f, 0x2b, 0xcc, 0x97, 0x25, 0xe0, 0xa4, 0x3b, 0xda, 0x1e, + 0x5a, 0x85, 0x22, 0x36, 0x94, 0x96, 0x69, 0x57, 0x0a, 0x6c, 0xac, 0x8b, 0x89, 0xb1, 0xb8, 0x42, 0x83, 0x61, 0x36, 0x89, 0xbd, 0xaf, 0x13, 0xc9, 0x34, 0x5d, 0x89, 0x0b, 0x8a, 0x15, 0xc8, 0x6f, - 0xa8, 0x08, 0xc1, 0x50, 0x0b, 0x3b, 0x2d, 0x36, 0xe5, 0xb2, 0xc4, 0xda, 0xa2, 0x08, 0xf0, 0xde, + 0xa8, 0x08, 0xc1, 0x50, 0x0b, 0x3b, 0x2d, 0x36, 0xe5, 0xb2, 0xc4, 0xda, 0xa2, 0x08, 0xf0, 0xfe, 0xee, 0x2e, 0x51, 0xdc, 0x3a, 0x76, 0x5a, 0x68, 0x06, 0x86, 0x35, 0xc3, 0x20, 0x36, 0x67, 0xf1, - 0x3a, 0xe2, 0x9f, 0xf2, 0x30, 0x99, 0x98, 0x3b, 0x5a, 0x87, 0x11, 0xaf, 0xe7, 0x54, 0x84, 0x33, - 0x85, 0xf9, 0xd2, 0xe2, 0xc5, 0x2c, 0x1a, 0x58, 0x65, 0x7d, 0xc9, 0x17, 0x45, 0x6f, 0xc2, 0x38, + 0x3a, 0xe2, 0x9f, 0xf2, 0x30, 0x99, 0x98, 0x3b, 0x5a, 0x87, 0x11, 0xaf, 0xe7, 0x54, 0x84, 0xb3, + 0x85, 0xf9, 0xd2, 0xe2, 0xa5, 0x2c, 0x1a, 0x58, 0x65, 0x7d, 0xc9, 0x17, 0x45, 0x6f, 0xc0, 0x38, 0x79, 0x68, 0x69, 0xf6, 0xa1, 0xdc, 0x22, 0xda, 0x5e, 0xcb, 0x65, 0xab, 0x1f, 0x92, 0xca, 0x1e, - 0xb1, 0xce, 0x68, 0xe8, 0x4b, 0x30, 0xaa, 0xb4, 0xb0, 0x66, 0xc8, 0x9a, 0xca, 0x34, 0x30, 0x26, + 0xb1, 0xce, 0x68, 0xe8, 0x2b, 0x30, 0xaa, 0xb4, 0xb0, 0x66, 0xc8, 0x9a, 0xca, 0x34, 0x30, 0x26, 0x8d, 0xb0, 0xfe, 0x86, 0x8a, 0x96, 0xa1, 0xb0, 0x4b, 0x48, 0x65, 0x88, 0xe9, 0x45, 0xec, 0xa3, - 0x97, 0x1b, 0x84, 0x48, 0x94, 0x1d, 0xbd, 0x0b, 0x63, 0xbb, 0x6d, 0x55, 0x56, 0xf4, 0x0e, 0x71, - 0x2a, 0xc3, 0x6c, 0xf6, 0x6f, 0xf6, 0x91, 0x5d, 0xd3, 0x3b, 0x44, 0x1a, 0xdd, 0x6d, 0xab, 0xb4, - 0xe1, 0xa0, 0x8b, 0x30, 0x41, 0x0c, 0xc6, 0x43, 0x54, 0xb9, 0x4d, 0xda, 0x66, 0xa5, 0x48, 0x15, - 0x56, 0xcf, 0x49, 0xe3, 0x01, 0x7d, 0x93, 0xb4, 0xcd, 0xef, 0x0b, 0x42, 0x6d, 0x1a, 0x26, 0xe5, + 0x97, 0x1b, 0x84, 0x48, 0x94, 0x1d, 0xbd, 0x07, 0x63, 0xbb, 0x6d, 0x55, 0x56, 0xf4, 0x0e, 0x71, + 0x2a, 0xc3, 0x6c, 0xf6, 0x6f, 0xf4, 0x91, 0x5d, 0xd3, 0x3b, 0x44, 0x1a, 0xdd, 0x6d, 0xab, 0xb4, + 0xe1, 0xa0, 0x4b, 0x30, 0x41, 0x0c, 0xc6, 0x43, 0x54, 0xb9, 0x4d, 0xda, 0x66, 0xa5, 0x48, 0x15, + 0x56, 0xcf, 0x49, 0xe3, 0x01, 0x7d, 0x93, 0xb4, 0xcd, 0x1f, 0x08, 0x42, 0x6d, 0x1a, 0x26, 0xe5, 0x38, 0xb3, 0xf8, 0xe7, 0x09, 0x28, 0x7a, 0xaa, 0x40, 0xab, 0x30, 0xec, 0x58, 0xc4, 0x50, 0xb9, - 0x1f, 0x5d, 0xc8, 0xa2, 0xc5, 0x3b, 0x54, 0xa0, 0x9e, 0x93, 0x3c, 0x49, 0xb4, 0x0e, 0x45, 0xb3, + 0x1f, 0x5d, 0xcc, 0xa2, 0xc5, 0x3b, 0x54, 0xa0, 0x9e, 0x93, 0x3c, 0x49, 0xb4, 0x0e, 0x45, 0xb3, 0xe3, 0x5a, 0x1d, 0x4f, 0x7b, 0x19, 0x2d, 0xb1, 0xc5, 0x24, 0xea, 0x39, 0x89, 0xcb, 0xa2, 0xb7, - 0x61, 0xc8, 0x39, 0xc0, 0x16, 0xf7, 0xb1, 0x33, 0x09, 0x0c, 0xba, 0x77, 0xc2, 0xf1, 0x0f, 0xb0, + 0x61, 0xc8, 0x39, 0xc0, 0x16, 0xf7, 0xb1, 0xb3, 0x09, 0x0c, 0xba, 0x77, 0xc2, 0xf1, 0x0f, 0xb0, 0x55, 0xcf, 0x49, 0x8c, 0x1f, 0xdd, 0x00, 0xa0, 0x7f, 0x65, 0x45, 0xc7, 0x5a, 0x9b, 0x5b, 0xe2, - 0x5c, 0x3f, 0xe9, 0x35, 0xca, 0x5c, 0xcf, 0x49, 0x63, 0x8e, 0xdf, 0x41, 0xbb, 0x30, 0xd3, 0xc5, + 0x7c, 0x3f, 0xe9, 0x35, 0xca, 0x5c, 0xcf, 0x49, 0x63, 0x8e, 0xdf, 0x41, 0xbb, 0x30, 0xd3, 0xc5, 0xba, 0xa6, 0x62, 0xd7, 0xb4, 0x65, 0x95, 0xec, 0x6a, 0x86, 0x46, 0x67, 0x5c, 0x99, 0x62, 0x88, - 0x57, 0x12, 0x88, 0xde, 0xc9, 0x10, 0x60, 0x6e, 0xfb, 0x92, 0xeb, 0x81, 0x60, 0x3d, 0x27, 0x9d, + 0x57, 0x13, 0x88, 0xde, 0xc9, 0x10, 0x60, 0x6e, 0xfb, 0x92, 0xeb, 0x81, 0x60, 0x3d, 0x27, 0x9d, 0xea, 0xf6, 0x92, 0xe9, 0x7c, 0xb5, 0xa6, 0x22, 0x7b, 0xfa, 0xa8, 0x4c, 0xa7, 0xce, 0x97, 0x9e, 0x27, 0x01, 0xf6, 0x46, 0x53, 0xf1, 0x6c, 0x45, 0xe7, 0xab, 0xf9, 0x1d, 0xb4, 0x03, 0x93, 0x96, 0x6d, 0x5a, 0xa6, 0x83, 0x75, 0xd9, 0xe9, 0x34, 0xdb, 0x9a, 0x5b, 0x41, 0xa9, 0x53, 0x8d, 0x9c, 0x24, 0x01, 0x66, 0x83, 0x4b, 0xde, 0x61, 0x82, 0xf5, 0x9c, 0x34, 0x61, 0xc5, 0x28, 0xa8, 0x09, 0xd3, 0x01, 0xfa, 0x81, 0xe6, 0xb6, 0x54, 0x1b, 0x1f, 0x54, 0x4e, 0xa5, 0x1e, 0x35, 0x4f, 0xc3, 0xbf, 0xc7, 0x45, 0xeb, 0x39, 0x69, 0xca, 0x4a, 0xd0, 0xd0, 0x7d, 0x98, 0x08, 0x35, 0xde, 0x35, - 0x5d, 0x52, 0x99, 0x61, 0x03, 0x5c, 0xce, 0x30, 0x40, 0xa0, 0xf0, 0x6d, 0xd3, 0x25, 0xd4, 0xed, - 0xbb, 0x51, 0x02, 0x85, 0x56, 0x89, 0x4e, 0xf6, 0x42, 0xe8, 0xd7, 0x32, 0x43, 0xaf, 0xfb, 0x82, - 0x3e, 0xb4, 0x1a, 0x25, 0x20, 0x13, 0x4e, 0x07, 0x9a, 0x51, 0x89, 0x65, 0x3a, 0x9a, 0xcb, 0x7d, - 0xef, 0x34, 0x1b, 0xe2, 0xda, 0x00, 0xea, 0x59, 0xf7, 0xe4, 0x7d, 0x6f, 0x9c, 0xb1, 0x52, 0xe8, - 0x68, 0x0b, 0xc6, 0x59, 0x4f, 0x33, 0x0d, 0xd9, 0xb4, 0x88, 0x51, 0x99, 0x63, 0xe3, 0xcc, 0x3f, - 0xcd, 0xc7, 0x1b, 0x5c, 0x60, 0xcb, 0x22, 0xd4, 0x6d, 0xca, 0x56, 0xa4, 0x8f, 0x24, 0x98, 0x08, - 0x00, 0x15, 0xdd, 0x74, 0x48, 0xe5, 0x8d, 0xd4, 0xbd, 0x9f, 0x8a, 0xb8, 0x46, 0x05, 0xa8, 0x56, - 0xac, 0x28, 0x01, 0x7d, 0x0b, 0xa6, 0x03, 0xcc, 0xc0, 0x5f, 0xce, 0x30, 0xd8, 0xaf, 0x66, 0x81, - 0x8d, 0x39, 0x4a, 0x82, 0x86, 0x08, 0xbc, 0x16, 0x80, 0xdb, 0xe4, 0x00, 0xdb, 0x2a, 0xd7, 0xb8, - 0xc8, 0x06, 0x58, 0xc8, 0x32, 0x80, 0xc4, 0xe4, 0x7c, 0x4d, 0x9f, 0xb2, 0x7a, 0xc9, 0x68, 0x1d, - 0x46, 0xb9, 0xa9, 0x49, 0x65, 0x9e, 0x21, 0x9f, 0x7f, 0xfa, 0xae, 0xe7, 0x9e, 0x42, 0xd5, 0x11, - 0x48, 0xa2, 0x9b, 0x00, 0x1d, 0x23, 0xc0, 0xb9, 0x90, 0x6a, 0xab, 0x04, 0xce, 0x37, 0x03, 0xfe, - 0x7a, 0x4e, 0x8a, 0x48, 0xa3, 0x07, 0x30, 0x15, 0xf6, 0xf8, 0x9a, 0x2f, 0x32, 0xc4, 0xb7, 0xb2, - 0x22, 0xfa, 0x2b, 0x9e, 0xec, 0xc4, 0x49, 0xe8, 0x26, 0x8c, 0xa9, 0xd8, 0x94, 0xbd, 0xc3, 0x7f, - 0x91, 0x81, 0x5e, 0xca, 0xb2, 0x3b, 0xb0, 0xe9, 0x1f, 0xff, 0xa3, 0x2a, 0x6f, 0xa3, 0x4d, 0x00, - 0x8a, 0xc5, 0x6f, 0x81, 0xa5, 0x54, 0xb3, 0x1f, 0x01, 0x16, 0xdc, 0x03, 0x74, 0x36, 0x5e, 0x07, - 0x35, 0xa0, 0x44, 0xe1, 0xf8, 0xee, 0xaa, 0x2c, 0xa7, 0xae, 0xf8, 0x08, 0x3c, 0xbe, 0x75, 0xa8, - 0x22, 0xd5, 0xa0, 0x87, 0xee, 0xc3, 0x94, 0xa6, 0x38, 0x8b, 0x97, 0x03, 0xdf, 0xc4, 0x7a, 0xe5, - 0x53, 0x21, 0x75, 0xd1, 0xf1, 0xb3, 0x97, 0x0a, 0xdd, 0x0b, 0x64, 0xa8, 0x1e, 0xb5, 0x38, 0xa9, - 0x36, 0x0a, 0x45, 0xef, 0x2c, 0x17, 0x7f, 0x5d, 0x80, 0xd3, 0x91, 0x30, 0xa5, 0x41, 0x6c, 0xc7, - 0x22, 0x8a, 0xab, 0x75, 0x09, 0x92, 0xa1, 0x6c, 0xe1, 0x43, 0xdd, 0xc4, 0xaa, 0xbc, 0x4f, 0x0e, - 0xfd, 0x90, 0xe5, 0x7a, 0x96, 0x8b, 0xb2, 0xe1, 0xc9, 0xdd, 0x22, 0x87, 0x74, 0xd0, 0x35, 0xb3, - 0xdd, 0xd6, 0xdc, 0x36, 0x31, 0x5c, 0xa9, 0x64, 0x05, 0xff, 0x71, 0xd0, 0x77, 0x60, 0x8a, 0x59, - 0x52, 0x36, 0x3a, 0xba, 0xae, 0xed, 0x6a, 0xc4, 0x76, 0x2a, 0x79, 0x36, 0xc8, 0xd5, 0x2c, 0x83, - 0xdc, 0xf6, 0xa5, 0xe8, 0x18, 0xb7, 0x4d, 0x97, 0x48, 0x93, 0x0c, 0x2e, 0xa0, 0x3b, 0xe8, 0x06, - 0x94, 0xb1, 0xda, 0xd5, 0x14, 0x22, 0x1b, 0xa6, 0x4b, 0x9c, 0x4a, 0x21, 0x53, 0xdc, 0xc2, 0xb0, - 0x4a, 0x9e, 0x20, 0x6d, 0x3b, 0xf4, 0x38, 0xc3, 0xaa, 0x6a, 0x13, 0xc7, 0x91, 0xbb, 0x1a, 0x39, - 0x70, 0x2a, 0x43, 0xa9, 0xe1, 0x5b, 0x12, 0x68, 0xd5, 0x93, 0xd9, 0xd6, 0xc8, 0x81, 0x54, 0xc6, - 0x61, 0xc7, 0x41, 0xd7, 0xa1, 0xa8, 0x12, 0xc3, 0x6c, 0xfb, 0xa1, 0xd4, 0xd9, 0x3e, 0x48, 0xeb, - 0x94, 0x59, 0xe2, 0x32, 0x34, 0xfe, 0x0c, 0x35, 0x7c, 0x44, 0xfc, 0xf9, 0x5b, 0x01, 0x2a, 0x47, - 0x99, 0x01, 0x6d, 0x41, 0x29, 0x62, 0x5a, 0x1e, 0x46, 0x55, 0x07, 0xb3, 0xac, 0x04, 0xa1, 0x2d, - 0xd1, 0x6d, 0x00, 0x25, 0x80, 0xe7, 0x21, 0x55, 0xb5, 0xcf, 0x9a, 0xee, 0xb8, 0x74, 0x5f, 0x87, - 0xbe, 0x11, 0x41, 0x10, 0x7f, 0x2c, 0xc0, 0x74, 0x8f, 0x7d, 0xd1, 0x0d, 0x18, 0x0b, 0x5c, 0x85, - 0x4f, 0x7a, 0xbe, 0x9f, 0x2d, 0x7d, 0x7e, 0x29, 0x14, 0x45, 0xd7, 0x60, 0x88, 0xfa, 0x03, 0x9f, - 0x67, 0x26, 0x77, 0x60, 0x02, 0xe2, 0x1f, 0x85, 0x58, 0x50, 0x4f, 0x6d, 0x89, 0xee, 0xc2, 0x18, - 0x4d, 0x49, 0x98, 0x63, 0xf0, 0x49, 0x5d, 0x3b, 0x46, 0x62, 0xc3, 0x9c, 0x64, 0xb4, 0xc9, 0x5b, - 0xff, 0x97, 0x04, 0xe7, 0xbf, 0x79, 0x38, 0x95, 0x32, 0x0b, 0xf4, 0x21, 0x94, 0x3d, 0x0a, 0x77, - 0x76, 0x6f, 0xe3, 0x57, 0xb3, 0xe7, 0x2a, 0x6c, 0x2d, 0xa5, 0x50, 0x47, 0x2f, 0x6e, 0xce, 0x72, - 0x1b, 0xc6, 0x68, 0xf2, 0xe1, 0x19, 0xb7, 0x98, 0x7a, 0x47, 0xa4, 0xea, 0x81, 0xe6, 0x31, 0x74, - 0xe5, 0xf4, 0xc6, 0x69, 0xf3, 0x36, 0xcd, 0x6b, 0xca, 0x00, 0x72, 0x00, 0x28, 0xfe, 0x67, 0x02, - 0x20, 0xd4, 0x18, 0x7a, 0x2f, 0x9e, 0xd6, 0xbc, 0x95, 0x39, 0xad, 0xe1, 0x23, 0xf1, 0xd4, 0xa6, - 0x9e, 0x48, 0x6d, 0xaa, 0xd9, 0x53, 0x1b, 0x0e, 0xe4, 0xa7, 0x37, 0x2b, 0xb1, 0xf4, 0xe6, 0x6c, - 0xbf, 0x04, 0x85, 0x4b, 0x7b, 0x29, 0xce, 0xcd, 0x94, 0x14, 0xe7, 0x42, 0xa6, 0x14, 0x87, 0xc3, - 0xbc, 0x4a, 0x73, 0xbe, 0x98, 0x69, 0xce, 0x47, 0x47, 0xa4, 0x39, 0x99, 0xee, 0xfc, 0x58, 0x9e, - 0xc3, 0x1d, 0xe5, 0x55, 0xae, 0xf3, 0x12, 0xe6, 0x3a, 0x17, 0x9e, 0x51, 0xae, 0x73, 0xf1, 0x44, - 0xb9, 0xce, 0x4b, 0x95, 0x8f, 0xa4, 0x25, 0x76, 0x97, 0x9e, 0x51, 0x62, 0xf7, 0x1c, 0x73, 0x9d, - 0x71, 0x28, 0x45, 0xa2, 0x19, 0xf1, 0x47, 0x05, 0x18, 0x0b, 0x2e, 0x4d, 0xf4, 0x21, 0x8c, 0x74, - 0x35, 0x47, 0x6b, 0xea, 0x84, 0x5f, 0xba, 0x57, 0x07, 0xba, 0x74, 0xab, 0xdb, 0x9e, 0x70, 0x3d, - 0x27, 0xf9, 0x38, 0xe8, 0x36, 0x14, 0x4d, 0x0b, 0x7f, 0xb7, 0xe3, 0x87, 0x97, 0xcb, 0x83, 0x21, - 0x6e, 0x31, 0x59, 0x76, 0x09, 0xb3, 0xd6, 0xec, 0xf7, 0x04, 0x18, 0xe1, 0xc3, 0xa0, 0x6f, 0x1c, - 0xb7, 0xf0, 0xe9, 0xc7, 0x06, 0xef, 0xc4, 0x22, 0xdf, 0xaf, 0x64, 0x88, 0x7c, 0x59, 0x2c, 0xc7, - 0x84, 0x66, 0x37, 0xa0, 0xe8, 0xcd, 0xee, 0xc4, 0xf3, 0xa0, 0x71, 0x90, 0x97, 0xfa, 0x31, 0x9b, - 0xfc, 0xb5, 0x00, 0xd3, 0x3d, 0x27, 0x3b, 0xba, 0x9f, 0xb4, 0xcd, 0xd7, 0x8e, 0x75, 0x43, 0xa4, - 0xd9, 0x68, 0x3b, 0x61, 0xa3, 0xeb, 0xc7, 0x43, 0xee, 0xb1, 0xd5, 0xcf, 0x22, 0xb6, 0xba, 0xd7, - 0x73, 0xcf, 0x09, 0xc7, 0x2b, 0xe7, 0x25, 0x2f, 0xb8, 0x13, 0xd9, 0x10, 0x07, 0x36, 0x7c, 0x5e, - 0xf3, 0xab, 0x4d, 0x25, 0x81, 0xc5, 0x7f, 0x17, 0x00, 0xc2, 0x00, 0x13, 0x49, 0x49, 0xc3, 0xbe, - 0x3d, 0x58, 0x84, 0x9a, 0x66, 0xd1, 0xad, 0x84, 0x45, 0xaf, 0x0e, 0x08, 0xd9, 0x63, 0xca, 0xcf, - 0x22, 0xa6, 0xac, 0x05, 0x11, 0xb5, 0x30, 0xe8, 0x63, 0x41, 0x10, 0x4b, 0x9f, 0xc4, 0x6a, 0xc9, - 0x7c, 0xbd, 0x70, 0xd2, 0x7c, 0x7d, 0xf6, 0x83, 0xc0, 0x0d, 0x9e, 0xc1, 0xda, 0xe8, 0x11, 0xeb, - 0xb5, 0xbc, 0xed, 0xfc, 0x99, 0x00, 0xc3, 0xde, 0x9d, 0xb6, 0x1a, 0x7b, 0xef, 0xcb, 0x9e, 0xd0, - 0x44, 0x5e, 0xfa, 0x3e, 0x80, 0x51, 0xdc, 0x71, 0x5b, 0x41, 0x16, 0xdc, 0x1b, 0x44, 0xf7, 0xd4, - 0x15, 0x28, 0xc2, 0x6a, 0xc7, 0x6d, 0xdd, 0xd1, 0xf6, 0x0c, 0xec, 0x76, 0x6c, 0x22, 0x8d, 0x60, - 0xaf, 0x8b, 0x56, 0x61, 0xd8, 0xb2, 0x4d, 0x73, 0x97, 0xab, 0xf0, 0x52, 0x1f, 0xa8, 0x07, 0xb7, - 0x18, 0x58, 0x83, 0x8a, 0x48, 0x9e, 0xa4, 0xf8, 0x53, 0x81, 0x5f, 0x20, 0xec, 0x49, 0x4f, 0x06, - 0xd4, 0xc4, 0x3a, 0xdd, 0x1d, 0x72, 0xa4, 0x00, 0x92, 0xbe, 0x93, 0x92, 0xe8, 0x35, 0x4f, 0x30, - 0x52, 0x02, 0x99, 0x6e, 0x26, 0x49, 0xe8, 0xcb, 0xd1, 0x9a, 0x47, 0x81, 0x95, 0x01, 0x22, 0x95, - 0x8c, 0x09, 0xc8, 0xdb, 0xfb, 0x2c, 0xbb, 0x2a, 0x4b, 0x79, 0x7b, 0x5f, 0xfc, 0x44, 0x80, 0x22, - 0x0f, 0x00, 0x6a, 0x31, 0xdd, 0x0f, 0x90, 0x04, 0x46, 0x94, 0x5f, 0xf3, 0xd5, 0x95, 0x4f, 0x0d, - 0x47, 0x7a, 0xd5, 0xe5, 0x21, 0xc4, 0xf4, 0xf5, 0xc3, 0xbc, 0xbf, 0xf9, 0x99, 0xc2, 0x36, 0xa1, - 0x4c, 0x5d, 0x5a, 0xe6, 0xce, 0x78, 0x84, 0xd7, 0xa5, 0xed, 0x07, 0xee, 0xca, 0x52, 0xc9, 0x08, - 0x3b, 0x47, 0xe8, 0x3f, 0xff, 0xec, 0xf4, 0x3f, 0x0f, 0x53, 0x07, 0x36, 0xb6, 0x2c, 0xfe, 0x0c, - 0x19, 0xec, 0xbf, 0xb2, 0x34, 0xc1, 0xe9, 0x34, 0xd7, 0xbf, 0x45, 0x0e, 0xd1, 0x79, 0x98, 0x34, - 0xbb, 0xfb, 0xb2, 0xcf, 0x4d, 0x19, 0x3d, 0xc3, 0x8c, 0x9b, 0xdd, 0xfd, 0x7b, 0x1e, 0xf5, 0x16, - 0x39, 0x14, 0x7f, 0x92, 0x87, 0x69, 0xea, 0x9e, 0xa6, 0xad, 0x7d, 0x8c, 0xa9, 0x01, 0xd6, 0xb1, - 0x8b, 0xd1, 0x4d, 0x28, 0x11, 0xf6, 0xa6, 0x2c, 0x07, 0xcf, 0xcd, 0xfd, 0x8b, 0x3a, 0xe1, 0x2b, - 0xb4, 0x04, 0x24, 0x7c, 0x91, 0x96, 0xa0, 0xe4, 0xdd, 0xae, 0xd4, 0xed, 0xfd, 0x9a, 0xea, 0x31, - 0xb6, 0x8d, 0x77, 0x47, 0x53, 0x9a, 0x83, 0x14, 0x98, 0x89, 0x9f, 0xea, 0x1c, 0xbc, 0x70, 0x5c, - 0x70, 0x14, 0xbb, 0x35, 0xd8, 0x20, 0xe2, 0xef, 0x04, 0x28, 0xdd, 0xd3, 0x5c, 0x83, 0x38, 0x0e, - 0x53, 0x4a, 0x58, 0xe4, 0x12, 0x8e, 0x59, 0xe4, 0x42, 0xfb, 0xf0, 0xba, 0xe3, 0xb2, 0x80, 0x35, - 0xb0, 0xa9, 0xcc, 0x1c, 0xd3, 0xd7, 0xcb, 0xd2, 0x60, 0x65, 0x4a, 0xcf, 0xb7, 0x5f, 0x73, 0x52, - 0xa8, 0x8e, 0xf8, 0x8f, 0xf8, 0xa3, 0x7f, 0x43, 0xc7, 0x06, 0xaa, 0x27, 0x1f, 0xfd, 0x07, 0x28, - 0xa4, 0x51, 0x80, 0xcf, 0xfb, 0xe1, 0xff, 0x16, 0x80, 0xa2, 0x77, 0x88, 0x6c, 0xe9, 0xd8, 0xf0, - 0xab, 0x68, 0x99, 0x6a, 0x60, 0x6b, 0x7a, 0x87, 0xb0, 0x05, 0x8c, 0x29, 0xbc, 0xe5, 0xa0, 0x0d, - 0x5e, 0x4f, 0xa3, 0x60, 0x83, 0xd6, 0xd3, 0x18, 0x16, 0xab, 0xa6, 0xd1, 0x96, 0xf8, 0xaf, 0xa0, - 0x78, 0xc6, 0xd4, 0x7c, 0xec, 0xe2, 0x19, 0x95, 0x7e, 0x26, 0xc5, 0x33, 0x0e, 0x74, 0xcc, 0xe2, - 0x19, 0x97, 0x3e, 0x69, 0xf1, 0x8c, 0xc3, 0xbc, 0x2a, 0x9e, 0x7d, 0x31, 0x8b, 0x67, 0xdf, 0x3e, - 0xa2, 0x78, 0xb6, 0x3c, 0x68, 0xd0, 0xce, 0xfd, 0xe4, 0xf3, 0xae, 0x9d, 0x6d, 0x02, 0x44, 0x32, - 0xfe, 0xd7, 0x8f, 0x93, 0xf0, 0x47, 0x00, 0x5e, 0x8c, 0x52, 0x9c, 0x7c, 0x74, 0x29, 0xee, 0xf2, - 0x20, 0xa5, 0x38, 0x6e, 0xc2, 0xde, 0x72, 0x9c, 0xf6, 0xf4, 0x72, 0xdc, 0xd2, 0x80, 0xe5, 0x38, - 0x3e, 0xce, 0x0b, 0xf2, 0xf9, 0xc1, 0x47, 0x47, 0x7e, 0x7e, 0x70, 0x65, 0xa0, 0x2a, 0x15, 0x5f, - 0xf5, 0x4b, 0xfd, 0x09, 0x42, 0xe4, 0x3b, 0x81, 0x1f, 0x08, 0x30, 0xea, 0x5f, 0xe8, 0xe8, 0x5d, - 0x18, 0xe1, 0xaf, 0xd9, 0xfc, 0xb6, 0x3d, 0x9f, 0xed, 0x21, 0x5c, 0xf2, 0xc5, 0xd0, 0x0c, 0x0c, - 0xdb, 0x0e, 0x21, 0x2a, 0x7f, 0xd8, 0xf4, 0x3a, 0xe8, 0x1c, 0x4c, 0x58, 0x36, 0x51, 0x34, 0x87, - 0x7a, 0x6e, 0x53, 0x73, 0x1d, 0x76, 0x79, 0x0e, 0x49, 0xe3, 0x01, 0xb5, 0xa6, 0xb9, 0x8e, 0xd8, - 0x86, 0x51, 0x3f, 0x1e, 0x40, 0x5b, 0x30, 0x66, 0xe9, 0x58, 0x33, 0x5c, 0xf2, 0xd0, 0x4f, 0xbb, - 0xae, 0x0c, 0x10, 0x50, 0x78, 0x82, 0x52, 0x88, 0x81, 0xa6, 0xa0, 0x40, 0x23, 0x77, 0x6f, 0x5e, - 0xb4, 0x29, 0x9e, 0x87, 0x09, 0xca, 0xbd, 0xa6, 0x59, 0x2d, 0x62, 0x33, 0x9e, 0xf4, 0x17, 0x77, - 0x05, 0xc6, 0x63, 0xa8, 0xe8, 0xeb, 0x50, 0x74, 0x88, 0xa1, 0x06, 0x6f, 0xd5, 0x59, 0xb5, 0xc4, - 0xa5, 0x10, 0x82, 0x21, 0xb6, 0xac, 0x3c, 0x0b, 0xe3, 0x58, 0x5b, 0xfc, 0x7d, 0xc1, 0x5b, 0x3c, - 0x2b, 0xa4, 0x34, 0x92, 0x85, 0x94, 0xe5, 0x41, 0xde, 0x26, 0xd3, 0xca, 0x28, 0x9b, 0x89, 0x32, - 0xca, 0xd2, 0x40, 0x80, 0x3d, 0x45, 0x94, 0x5f, 0x45, 0x8a, 0x28, 0x12, 0x80, 0x12, 0xa8, 0x90, - 0xcf, 0x77, 0x31, 0x2b, 0x7c, 0xa8, 0x7c, 0x29, 0x82, 0x12, 0xb7, 0x7e, 0xfe, 0xe4, 0xd6, 0x9f, - 0xdd, 0x09, 0xea, 0x22, 0xcf, 0x61, 0xba, 0xb5, 0x52, 0xe4, 0x35, 0x59, 0xfc, 0x85, 0x5f, 0x47, - 0x60, 0x7e, 0xec, 0x7f, 0x92, 0x20, 0x0c, 0xf8, 0x49, 0x02, 0x9a, 0x85, 0x51, 0xff, 0x60, 0xe6, - 0xf9, 0x40, 0xd0, 0x47, 0x73, 0x00, 0x36, 0x36, 0x54, 0xb3, 0xad, 0x7d, 0x1c, 0x14, 0x0f, 0x22, - 0x14, 0xba, 0xdf, 0xba, 0x98, 0xc6, 0xf6, 0x4d, 0xdd, 0xfb, 0xb0, 0xc0, 0x4f, 0x58, 0x19, 0xb5, - 0xc6, 0x89, 0xe2, 0x23, 0xc1, 0xcf, 0xe0, 0xd9, 0x54, 0x57, 0x60, 0x98, 0xfd, 0x9f, 0xcf, 0xb5, - 0xdf, 0xa7, 0x2b, 0xdb, 0x94, 0x57, 0xf2, 0x44, 0xd0, 0x06, 0x94, 0x55, 0xe2, 0xb8, 0xb2, 0x7f, - 0x7c, 0xe4, 0x07, 0xda, 0x18, 0x25, 0x2a, 0xbb, 0x9a, 0x3c, 0x42, 0x0a, 0x89, 0x23, 0x24, 0xc3, - 0x92, 0x6a, 0x7f, 0xcf, 0x7f, 0xfa, 0x78, 0x4e, 0x78, 0xf4, 0x78, 0x4e, 0xf8, 0xdb, 0xe3, 0x39, - 0xe1, 0x93, 0x27, 0x73, 0xb9, 0x47, 0x4f, 0xe6, 0x72, 0x7f, 0x79, 0x32, 0x97, 0x83, 0xf3, 0x8a, - 0xd9, 0xce, 0x60, 0xe7, 0xda, 0x54, 0x34, 0xd1, 0xb3, 0x4d, 0xd7, 0x6c, 0x08, 0x0f, 0x9a, 0x7b, - 0x9a, 0xdb, 0xea, 0x34, 0xab, 0x8a, 0xd9, 0x5e, 0x50, 0x4c, 0xa7, 0x6d, 0x3a, 0x0b, 0x36, 0xd1, - 0xf1, 0x21, 0xb1, 0x17, 0xba, 0x8b, 0x41, 0x93, 0xe5, 0x63, 0xce, 0x42, 0xff, 0xdf, 0x12, 0xbc, - 0x13, 0x21, 0xfa, 0xb4, 0x9f, 0xe7, 0x0b, 0x8d, 0xb5, 0xbb, 0xbf, 0xcc, 0x8b, 0x0d, 0x7f, 0x8a, - 0x6b, 0x74, 0x8a, 0x91, 0xc9, 0x54, 0xb7, 0x39, 0xeb, 0x1f, 0x42, 0xa6, 0x1d, 0xca, 0xb4, 0x13, - 0x61, 0xda, 0xf1, 0x99, 0x1e, 0xe7, 0xab, 0xfd, 0x99, 0x76, 0xde, 0x6f, 0xd4, 0x36, 0x89, 0x8b, - 0x55, 0xec, 0xe2, 0x7f, 0xe6, 0xcf, 0xf9, 0x02, 0x2b, 0x2b, 0x54, 0x62, 0x65, 0x25, 0x22, 0xb2, - 0xb2, 0xe2, 0xcb, 0x34, 0x8b, 0xec, 0x37, 0x00, 0x4b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xa7, - 0x60, 0xeb, 0xa7, 0x35, 0x31, 0x00, 0x00, + 0x5d, 0x52, 0x99, 0x61, 0x03, 0x5c, 0xc9, 0x30, 0x40, 0xa0, 0xf0, 0x6d, 0xd3, 0x25, 0xd4, 0xed, + 0xbb, 0x51, 0x02, 0x85, 0x56, 0x89, 0x4e, 0xf6, 0x42, 0xe8, 0xd3, 0x99, 0xa1, 0xd7, 0x7d, 0x41, + 0x1f, 0x5a, 0x8d, 0x12, 0x90, 0x09, 0x67, 0x02, 0xcd, 0xa8, 0xc4, 0x32, 0x1d, 0xcd, 0xe5, 0xbe, + 0x77, 0x86, 0x0d, 0x71, 0x7d, 0x00, 0xf5, 0xac, 0x7b, 0xf2, 0xbe, 0x37, 0xce, 0x58, 0x29, 0x74, + 0xb4, 0x05, 0xe3, 0xac, 0xa7, 0x99, 0x86, 0x6c, 0x5a, 0xc4, 0xa8, 0xcc, 0xb1, 0x71, 0xe6, 0x9f, + 0xe6, 0xe3, 0x0d, 0x2e, 0xb0, 0x65, 0x11, 0xea, 0x36, 0x65, 0x2b, 0xd2, 0x47, 0x12, 0x4c, 0x04, + 0x80, 0x8a, 0x6e, 0x3a, 0xa4, 0xf2, 0x7a, 0xea, 0xde, 0x4f, 0x45, 0x5c, 0xa3, 0x02, 0x54, 0x2b, + 0x56, 0x94, 0x80, 0xbe, 0x0d, 0xd3, 0x01, 0x66, 0xe0, 0x2f, 0x67, 0x19, 0xec, 0x9b, 0x59, 0x60, + 0x63, 0x8e, 0x92, 0xa0, 0x21, 0x02, 0xa7, 0x03, 0x70, 0x9b, 0x1c, 0x60, 0x5b, 0xe5, 0x1a, 0x17, + 0xd9, 0x00, 0x0b, 0x59, 0x06, 0x90, 0x98, 0x9c, 0xaf, 0xe9, 0x53, 0x56, 0x2f, 0x19, 0xad, 0xc3, + 0x28, 0x37, 0x35, 0xa9, 0xcc, 0x33, 0xe4, 0x0b, 0x4f, 0xdf, 0xf5, 0xdc, 0x53, 0xa8, 0x3a, 0x02, + 0x49, 0x74, 0x13, 0xa0, 0x63, 0x04, 0x38, 0x17, 0x53, 0x6d, 0x95, 0xc0, 0xf9, 0x56, 0xc0, 0x5f, + 0xcf, 0x49, 0x11, 0x69, 0xf4, 0x00, 0xa6, 0xc2, 0x1e, 0x5f, 0xf3, 0x25, 0x86, 0xf8, 0x56, 0x56, + 0x44, 0x7f, 0xc5, 0x93, 0x9d, 0x38, 0x09, 0xdd, 0x84, 0x31, 0x15, 0x9b, 0xb2, 0x77, 0xf8, 0x2f, + 0x32, 0xd0, 0xcb, 0x59, 0x76, 0x07, 0x36, 0xfd, 0xe3, 0x7f, 0x54, 0xe5, 0x6d, 0xb4, 0x09, 0x40, + 0xb1, 0xf8, 0x2d, 0xb0, 0x94, 0x6a, 0xf6, 0x23, 0xc0, 0x82, 0x7b, 0x80, 0xce, 0xc6, 0xeb, 0xa0, + 0x06, 0x94, 0x28, 0x1c, 0xdf, 0x5d, 0x95, 0xe5, 0xd4, 0x15, 0x1f, 0x81, 0xc7, 0xb7, 0x0e, 0x55, + 0xa4, 0x1a, 0xf4, 0xd0, 0x7d, 0x98, 0xd2, 0x14, 0x67, 0xf1, 0x4a, 0xe0, 0x9b, 0x58, 0xaf, 0x7c, + 0x26, 0xa4, 0x2e, 0x3a, 0x7e, 0xf6, 0x52, 0xa1, 0x7b, 0x81, 0x0c, 0xd5, 0xa3, 0x16, 0x27, 0xd5, + 0x46, 0xa1, 0xe8, 0x9d, 0xe5, 0xe2, 0x0f, 0x87, 0xe0, 0x4c, 0x24, 0x4c, 0x69, 0x10, 0xdb, 0xb1, + 0x88, 0xe2, 0x6a, 0x5d, 0x82, 0x64, 0x28, 0x5b, 0xf8, 0x50, 0x37, 0xb1, 0x2a, 0xef, 0x93, 0x43, + 0x3f, 0x64, 0x79, 0x37, 0xcb, 0x45, 0xd9, 0xf0, 0xe4, 0x6e, 0x91, 0x43, 0x3a, 0xe8, 0x9a, 0xd9, + 0x6e, 0x6b, 0x6e, 0x9b, 0x18, 0xae, 0x54, 0xb2, 0x82, 0x5f, 0x1c, 0xf4, 0x5d, 0x98, 0x62, 0x96, + 0x94, 0x8d, 0x8e, 0xae, 0x6b, 0xbb, 0x1a, 0xb1, 0x9d, 0x4a, 0x9e, 0x0d, 0x72, 0x2d, 0xcb, 0x20, + 0xb7, 0x7d, 0x29, 0x3a, 0xc6, 0x6d, 0xd3, 0x25, 0xd2, 0x24, 0x83, 0x0b, 0xe8, 0x0e, 0xba, 0x01, + 0x65, 0xac, 0x76, 0x35, 0x85, 0xc8, 0x86, 0xe9, 0x12, 0xa7, 0x52, 0xc8, 0x14, 0xb7, 0x30, 0xac, + 0x92, 0x27, 0x48, 0xdb, 0x0e, 0x3d, 0xce, 0xb0, 0xaa, 0xda, 0xc4, 0x71, 0xe4, 0xae, 0x46, 0x0e, + 0x9c, 0xca, 0x50, 0x6a, 0xf8, 0x96, 0x04, 0x5a, 0xf5, 0x64, 0xb6, 0x35, 0x72, 0x20, 0x95, 0x71, + 0xd8, 0x71, 0x68, 0xf8, 0xa1, 0x12, 0xc3, 0x6c, 0xfb, 0xa1, 0xd4, 0x9b, 0x7d, 0x90, 0xd6, 0x29, + 0xf3, 0x26, 0x71, 0xb1, 0x8a, 0x5d, 0x2c, 0x71, 0x59, 0xb4, 0x09, 0x13, 0x11, 0xcd, 0xd0, 0x50, + 0xaf, 0x98, 0x7a, 0x04, 0xa4, 0xaa, 0x6f, 0x43, 0x95, 0xc6, 0x23, 0x3f, 0x6c, 0xa8, 0x34, 0xac, + 0x0d, 0x0d, 0x77, 0x44, 0x58, 0xfb, 0x5b, 0x01, 0x2a, 0x47, 0x59, 0x17, 0x6d, 0x41, 0x29, 0xe2, + 0x31, 0x3c, 0x3a, 0xab, 0x0e, 0xe6, 0x30, 0x12, 0x84, 0x2e, 0x82, 0x6e, 0x03, 0x28, 0x01, 0x3c, + 0x8f, 0xd4, 0xaa, 0x7d, 0x54, 0x75, 0xc7, 0xa5, 0xc7, 0x45, 0xe8, 0x72, 0x11, 0x04, 0xf1, 0x27, + 0x02, 0x4c, 0xf7, 0xb8, 0x0d, 0xba, 0x01, 0x63, 0x81, 0x07, 0xf2, 0x49, 0xcf, 0xf7, 0x73, 0x11, + 0x9f, 0x5f, 0x0a, 0x45, 0xd1, 0x75, 0x18, 0xa2, 0x6e, 0xc6, 0xe7, 0x99, 0xc9, 0xcb, 0x98, 0x80, + 0xf8, 0x47, 0x21, 0x96, 0x2b, 0x50, 0x17, 0x41, 0x77, 0x61, 0x8c, 0x66, 0x3a, 0xcc, 0xdf, 0xf8, + 0xa4, 0xae, 0x1f, 0x23, 0x5f, 0x62, 0xbe, 0x37, 0xda, 0xe4, 0xad, 0xff, 0x4b, 0xde, 0xf4, 0xdf, + 0x3c, 0x9c, 0x4a, 0x99, 0x05, 0xfa, 0x08, 0xca, 0xdc, 0x51, 0xbd, 0x3d, 0xe4, 0x9d, 0x27, 0xd5, + 0xec, 0x29, 0x10, 0x5b, 0x4b, 0x29, 0xd4, 0xd1, 0x8b, 0x9b, 0x0a, 0xdd, 0x86, 0x31, 0x9a, 0xd3, + 0x78, 0xc6, 0x2d, 0xa6, 0x5e, 0x3d, 0xa9, 0x7a, 0xa0, 0xe9, 0x11, 0x5d, 0x39, 0xbd, 0xc8, 0xda, + 0xbc, 0x4d, 0xd3, 0xa5, 0x32, 0x80, 0x1c, 0x00, 0x8a, 0xff, 0x99, 0x00, 0x08, 0x35, 0x86, 0xde, + 0x8f, 0x67, 0x4b, 0x6f, 0x65, 0xce, 0x96, 0xf8, 0x48, 0x3c, 0x63, 0xaa, 0x27, 0x32, 0xa6, 0x6a, + 0xf6, 0x8c, 0x89, 0x03, 0xf9, 0x59, 0xd3, 0x4a, 0x2c, 0x6b, 0x3a, 0xd7, 0x2f, 0xef, 0xe1, 0xd2, + 0x5e, 0xe6, 0x74, 0x33, 0x25, 0x73, 0xba, 0x98, 0x29, 0x73, 0xe2, 0x30, 0xaf, 0xb2, 0xa7, 0x2f, + 0x67, 0xf6, 0xf4, 0xf1, 0x11, 0xd9, 0x53, 0xa6, 0x50, 0x22, 0x96, 0x3e, 0x71, 0x47, 0x79, 0x95, + 0x42, 0xbd, 0x84, 0x29, 0xd4, 0xc5, 0x67, 0x94, 0x42, 0x5d, 0x3a, 0x51, 0x0a, 0xf5, 0x52, 0xa5, + 0x39, 0x69, 0xf9, 0xe2, 0xe5, 0x67, 0x94, 0x2f, 0x3e, 0xc7, 0x14, 0x6a, 0x1c, 0x4a, 0x91, 0x68, + 0x46, 0xfc, 0x71, 0x01, 0xc6, 0x82, 0x4b, 0x13, 0x7d, 0x04, 0x23, 0x5d, 0xcd, 0xd1, 0x9a, 0x3a, + 0xe1, 0x97, 0xee, 0xb5, 0x81, 0x2e, 0xdd, 0xea, 0xb6, 0x27, 0x5c, 0xcf, 0x49, 0x3e, 0x0e, 0xba, + 0x0d, 0x45, 0xd3, 0xc2, 0xdf, 0xeb, 0xf8, 0xe1, 0xe5, 0xf2, 0x60, 0x88, 0x5b, 0x4c, 0x96, 0x5d, + 0xc2, 0xac, 0x35, 0xfb, 0x7d, 0x01, 0x46, 0xf8, 0x30, 0xe8, 0x9b, 0xc7, 0xad, 0xa7, 0xfa, 0xb1, + 0xc1, 0x3b, 0xb1, 0xc8, 0xf7, 0x6b, 0x19, 0x22, 0x5f, 0x16, 0xcb, 0x31, 0xa1, 0xd9, 0x0d, 0x28, + 0x7a, 0xb3, 0x3b, 0xf1, 0x3c, 0x68, 0x1c, 0xe4, 0x65, 0x94, 0xcc, 0x26, 0x7f, 0x2d, 0xc0, 0x74, + 0xcf, 0xc9, 0x8e, 0xee, 0x27, 0x6d, 0xf3, 0xf5, 0x63, 0xdd, 0x10, 0x69, 0x36, 0xda, 0x4e, 0xd8, + 0xe8, 0xdd, 0xe3, 0x21, 0xf7, 0xd8, 0xea, 0xe7, 0x11, 0x5b, 0xdd, 0xeb, 0xb9, 0xe7, 0x84, 0xe3, + 0x55, 0x09, 0x93, 0x17, 0xdc, 0x89, 0x6c, 0x88, 0x03, 0x1b, 0x3e, 0xaf, 0xf9, 0xd5, 0xa6, 0x92, + 0xc0, 0xe2, 0xbf, 0x0b, 0x00, 0x61, 0x80, 0x89, 0xa4, 0xa4, 0x61, 0xdf, 0x1e, 0x2c, 0x42, 0x4d, + 0xb3, 0xe8, 0x56, 0xc2, 0xa2, 0xd7, 0x06, 0x84, 0xec, 0x31, 0xe5, 0xe7, 0x11, 0x53, 0xd6, 0x82, + 0x88, 0x5a, 0x18, 0xf4, 0x0d, 0x22, 0x88, 0xa5, 0x4f, 0x62, 0xb5, 0x64, 0xbe, 0x5e, 0x38, 0x69, + 0xbe, 0x3e, 0xfb, 0x61, 0xe0, 0x06, 0xcf, 0x60, 0x6d, 0xf4, 0x88, 0xf5, 0x5a, 0xde, 0x76, 0xfe, + 0x5c, 0x80, 0x61, 0xef, 0x4e, 0x5b, 0x8d, 0x3d, 0x23, 0x66, 0x4f, 0x68, 0x22, 0x0f, 0x88, 0x1f, + 0xc2, 0x28, 0xee, 0xb8, 0xad, 0x20, 0x0b, 0xee, 0x0d, 0xa2, 0x7b, 0xea, 0x0a, 0x14, 0x61, 0xb5, + 0xe3, 0xb6, 0xee, 0x68, 0x7b, 0x06, 0x76, 0x3b, 0x36, 0x91, 0x46, 0xb0, 0xd7, 0x45, 0xab, 0x30, + 0x6c, 0xd9, 0xa6, 0xb9, 0xcb, 0x55, 0x78, 0xb9, 0x0f, 0xd4, 0x83, 0x5b, 0x0c, 0xac, 0x41, 0x45, + 0x24, 0x4f, 0x52, 0xfc, 0x99, 0xc0, 0x2f, 0x10, 0xf6, 0x52, 0x28, 0x03, 0x6a, 0x62, 0x9d, 0xee, + 0x0e, 0x39, 0x52, 0x00, 0x49, 0xdf, 0x49, 0x49, 0xf4, 0x9a, 0x27, 0x18, 0x29, 0x81, 0x4c, 0x37, + 0x93, 0x24, 0xf4, 0xd5, 0x68, 0xcd, 0xa3, 0xc0, 0xca, 0x00, 0x91, 0x4a, 0xc6, 0x04, 0xe4, 0xed, + 0x7d, 0x96, 0x5d, 0x95, 0xa5, 0xbc, 0xbd, 0x2f, 0x7e, 0x2a, 0x40, 0x91, 0x07, 0x00, 0xb5, 0x98, + 0xee, 0x07, 0x48, 0x02, 0x23, 0xca, 0xaf, 0xf9, 0xea, 0xca, 0xa7, 0x86, 0x23, 0xbd, 0xea, 0xf2, + 0x10, 0x62, 0xfa, 0xfa, 0x51, 0xde, 0xdf, 0xfc, 0x4c, 0x61, 0x9b, 0x50, 0xa6, 0x2e, 0x2d, 0x73, + 0x67, 0x3c, 0xc2, 0xeb, 0xd2, 0xf6, 0x03, 0x77, 0x65, 0xa9, 0x64, 0x84, 0x9d, 0x23, 0xf4, 0x9f, + 0x7f, 0x76, 0xfa, 0x9f, 0x87, 0xa9, 0x03, 0x1b, 0x5b, 0x16, 0x7f, 0xdd, 0x0c, 0xf6, 0x5f, 0x59, + 0x9a, 0xe0, 0x74, 0x9a, 0xeb, 0xdf, 0x22, 0x87, 0xe8, 0x02, 0x4c, 0x9a, 0xdd, 0x7d, 0xd9, 0xe7, + 0xa6, 0x8c, 0x9e, 0x61, 0xc6, 0xcd, 0xee, 0xfe, 0x3d, 0x8f, 0x7a, 0x8b, 0x1c, 0x8a, 0x3f, 0xcd, + 0xc3, 0x34, 0x75, 0x4f, 0xd3, 0xd6, 0x3e, 0xc1, 0xd4, 0x00, 0xeb, 0xd8, 0xc5, 0xe8, 0x26, 0x94, + 0x08, 0x7b, 0xaa, 0x96, 0x83, 0x57, 0xec, 0xfe, 0x45, 0x9d, 0xf0, 0x71, 0x5b, 0x02, 0x12, 0x3e, + 0x74, 0x4b, 0x50, 0xf2, 0x6e, 0x57, 0xea, 0xf6, 0x7e, 0xa9, 0xf6, 0x18, 0xdb, 0xc6, 0xbb, 0xa3, + 0x29, 0xcd, 0x41, 0x0a, 0xcc, 0xc4, 0x4f, 0x75, 0x0e, 0x5e, 0x38, 0x2e, 0x38, 0x8a, 0xdd, 0x1a, + 0x6c, 0x10, 0xf1, 0x77, 0x02, 0x94, 0xee, 0x69, 0xae, 0x41, 0x1c, 0x87, 0x29, 0x25, 0x2c, 0x72, + 0x09, 0xc7, 0x2c, 0x72, 0xa1, 0x7d, 0x78, 0xcd, 0x71, 0x59, 0xc0, 0x1a, 0xd8, 0x54, 0x66, 0x8e, + 0xe9, 0xeb, 0x65, 0x69, 0xb0, 0x32, 0xa5, 0xe7, 0xdb, 0xa7, 0x9d, 0x14, 0xaa, 0x23, 0xfe, 0x23, + 0xfe, 0x2d, 0x41, 0x43, 0xc7, 0x06, 0xaa, 0x27, 0xbf, 0x25, 0x18, 0xa0, 0x90, 0x46, 0x01, 0xbe, + 0xe8, 0xef, 0x09, 0x6e, 0x01, 0x28, 0x7a, 0x87, 0xc8, 0x96, 0x8e, 0x8d, 0xa3, 0xaa, 0xe0, 0xa9, + 0x4b, 0x58, 0xd3, 0x3b, 0x84, 0x2d, 0x60, 0x4c, 0xe1, 0x2d, 0x07, 0x6d, 0xf0, 0x7a, 0x1a, 0x05, + 0x1b, 0xb4, 0x9e, 0xc6, 0xb0, 0x58, 0x35, 0x8d, 0xb6, 0xc4, 0x7f, 0x05, 0xc5, 0x33, 0xa6, 0xe6, + 0x63, 0x17, 0xcf, 0xa8, 0xf4, 0x33, 0x29, 0x9e, 0x71, 0xa0, 0x63, 0x16, 0xcf, 0xb8, 0xf4, 0x49, + 0x8b, 0x67, 0x1c, 0xe6, 0x55, 0xf1, 0xec, 0xcb, 0x59, 0x3c, 0xfb, 0xce, 0x11, 0xc5, 0xb3, 0xe5, + 0x41, 0x83, 0x76, 0xee, 0x27, 0x5f, 0x74, 0xed, 0x6c, 0x13, 0x20, 0x92, 0xf1, 0xbf, 0x76, 0x9c, + 0x84, 0x3f, 0x02, 0xf0, 0x62, 0x94, 0xe2, 0xe4, 0xa3, 0x4b, 0x71, 0x57, 0x06, 0x29, 0xc5, 0x71, + 0x13, 0xf6, 0x96, 0xe3, 0xb4, 0xa7, 0x97, 0xe3, 0x96, 0x06, 0x2c, 0xc7, 0xf1, 0x71, 0x5e, 0x90, + 0xaf, 0x1a, 0x3e, 0x3e, 0xf2, 0xab, 0x86, 0xab, 0x03, 0x55, 0xa9, 0xf8, 0xaa, 0x5f, 0xea, 0x2f, + 0x1b, 0xa2, 0x9f, 0x1f, 0x08, 0x30, 0xea, 0x5f, 0xe8, 0xe8, 0x3d, 0x18, 0xe1, 0x8f, 0xe4, 0xfc, + 0xb6, 0xbd, 0x90, 0xed, 0x7d, 0x5d, 0xf2, 0xc5, 0xd0, 0x0c, 0x0c, 0xdb, 0x0e, 0x21, 0x2a, 0x7f, + 0xd8, 0xf4, 0x3a, 0xe8, 0x3c, 0x4c, 0x58, 0x36, 0x51, 0x34, 0x87, 0x7a, 0x6e, 0x53, 0x73, 0x1d, + 0x76, 0x79, 0x0e, 0x49, 0xe3, 0x01, 0xb5, 0xa6, 0xb9, 0x8e, 0xd8, 0x86, 0x51, 0x3f, 0x1e, 0x40, + 0x5b, 0x30, 0x66, 0xe9, 0x58, 0x33, 0x5c, 0xf2, 0xd0, 0x4f, 0xbb, 0xae, 0x0e, 0x10, 0x50, 0x78, + 0x82, 0x52, 0x88, 0x81, 0xa6, 0xa0, 0x40, 0x23, 0x77, 0x6f, 0x5e, 0xb4, 0x29, 0x5e, 0x80, 0x09, + 0xca, 0xbd, 0xa6, 0x59, 0x2d, 0x62, 0x33, 0x9e, 0xf4, 0x17, 0x77, 0x05, 0xc6, 0x63, 0xa8, 0xe8, + 0x1b, 0x50, 0x74, 0x88, 0xa1, 0x06, 0x6f, 0xd5, 0x59, 0xb5, 0xc4, 0xa5, 0x10, 0x82, 0x21, 0xb6, + 0xac, 0x3c, 0x0b, 0xe3, 0x58, 0x5b, 0xfc, 0x7d, 0xc1, 0x5b, 0x3c, 0x2b, 0xa4, 0x34, 0x92, 0x85, + 0x94, 0xe5, 0x41, 0xde, 0x26, 0xd3, 0xca, 0x28, 0x9b, 0x89, 0x32, 0xca, 0xd2, 0x40, 0x80, 0x3d, + 0x45, 0x94, 0x5f, 0x47, 0x8a, 0x28, 0x12, 0x80, 0x12, 0xa8, 0x90, 0xcf, 0x77, 0x31, 0x2b, 0x7c, + 0xa8, 0x7c, 0x29, 0x82, 0x12, 0xb7, 0x7e, 0xfe, 0xe4, 0xd6, 0x9f, 0xdd, 0x09, 0xea, 0x22, 0xcf, + 0x61, 0xba, 0xb5, 0x52, 0xe4, 0x35, 0x59, 0xfc, 0xa5, 0x5f, 0x47, 0x60, 0x7e, 0xec, 0x7f, 0x92, + 0x20, 0x0c, 0xf8, 0x49, 0x02, 0x9a, 0x85, 0x51, 0xff, 0x60, 0xe6, 0xf9, 0x40, 0xd0, 0x47, 0x73, + 0x00, 0x36, 0x36, 0x54, 0xb3, 0xad, 0x7d, 0x12, 0x14, 0x0f, 0x22, 0x14, 0xba, 0xdf, 0xba, 0x98, + 0xc6, 0xf6, 0x4d, 0xdd, 0xfb, 0xb0, 0xc0, 0x4f, 0x58, 0x19, 0xb5, 0xc6, 0x89, 0xe2, 0x23, 0xc1, + 0xcf, 0xe0, 0xd9, 0x54, 0x57, 0x60, 0x98, 0xfd, 0xce, 0xe7, 0x7a, 0xae, 0xcf, 0x5c, 0xb7, 0x29, + 0xaf, 0xe4, 0x89, 0xa0, 0x0d, 0x28, 0xab, 0xc4, 0x71, 0x65, 0xff, 0xf8, 0xc8, 0x0f, 0xb4, 0x31, + 0x4a, 0x54, 0x76, 0x35, 0x79, 0x84, 0x14, 0x12, 0x47, 0x48, 0x86, 0x25, 0xd5, 0xfe, 0x9e, 0xff, + 0xec, 0xf1, 0x9c, 0xf0, 0xe8, 0xf1, 0x9c, 0xf0, 0xb7, 0xc7, 0x73, 0xc2, 0xa7, 0x4f, 0xe6, 0x72, + 0x8f, 0x9e, 0xcc, 0xe5, 0xfe, 0xf2, 0x64, 0x2e, 0x07, 0x17, 0x14, 0xb3, 0x9d, 0xc1, 0xce, 0xb5, + 0xa9, 0x68, 0xa2, 0x67, 0x9b, 0xae, 0xd9, 0x10, 0x1e, 0x34, 0xf7, 0x34, 0xb7, 0xd5, 0x69, 0x56, + 0x15, 0xb3, 0xbd, 0xa0, 0x98, 0x4e, 0xdb, 0x74, 0x16, 0x6c, 0xa2, 0xe3, 0x43, 0x62, 0x2f, 0x74, + 0x17, 0x83, 0x26, 0xcb, 0xc7, 0x9c, 0x85, 0xfe, 0xff, 0xa2, 0xf0, 0x4e, 0x84, 0xe8, 0xd3, 0x7e, + 0x91, 0x2f, 0x34, 0xd6, 0xee, 0xfe, 0x2a, 0x2f, 0x36, 0xfc, 0x29, 0xae, 0xd1, 0x29, 0x46, 0x26, + 0x53, 0xdd, 0xe6, 0xac, 0x7f, 0x08, 0x99, 0x76, 0x28, 0xd3, 0x4e, 0x84, 0x69, 0xc7, 0x67, 0x7a, + 0x9c, 0xaf, 0xf6, 0x67, 0xda, 0xf9, 0xa0, 0x51, 0xf3, 0x3f, 0x6a, 0xfa, 0x67, 0xfe, 0xbc, 0x2f, + 0xb0, 0xb2, 0x42, 0x25, 0x56, 0x56, 0x22, 0x22, 0x2b, 0x2b, 0xbe, 0x4c, 0xb3, 0xc8, 0xfe, 0xb5, + 0x60, 0xe9, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x83, 0x14, 0xde, 0x8c, 0x31, 0x00, 0x00, } func (m *Transaction) Marshal() (dAtA []byte, err error) { @@ -4301,6 +4311,18 @@ func (m *TransactionPerspective) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.TransactionId != nil { + { + size, err := m.TransactionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } if len(m.Denoms) > 0 { for iNdEx := len(m.Denoms) - 1; iNdEx >= 0; iNdEx-- { { @@ -7461,6 +7483,10 @@ func (m *TransactionPerspective) Size() (n int) { n += 1 + l + sovTransaction(uint64(l)) } } + if m.TransactionId != nil { + l = m.TransactionId.Size() + n += 1 + l + sovTransaction(uint64(l)) + } return n } @@ -10261,11 +10287,47 @@ func (m *TransactionPerspective) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Denoms = append(m.Denoms, &v1alpha1.Denom{}) + m.Denoms = append(m.Denoms, &v1alpha1.DenomMetadata{}) if err := m.Denoms[len(m.Denoms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransactionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TransactionId == nil { + m.TransactionId = &Id{} + } + if err := m.TransactionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTransaction(dAtA[iNdEx:]) diff --git a/relayer/chains/penumbra/view/v1alpha1/view.pb.go b/relayer/chains/penumbra/view/v1alpha1/view.pb.go index 5e28b5218..217129d5f 100644 --- a/relayer/chains/penumbra/view/v1alpha1/view.pb.go +++ b/relayer/chains/penumbra/view/v1alpha1/view.pb.go @@ -89,6 +89,9 @@ func (m *BroadcastTransactionRequest) GetAwaitDetection() bool { type BroadcastTransactionResponse struct { // The hash of the transaction that was broadcast. Id *v1alpha1.Id `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The height in which the transaction was detected as included in the chain, if any. + // Will not be included unless await_detection was true. + DetectionHeight uint64 `protobuf:"varint,2,opt,name=detection_height,json=detectionHeight,proto3" json:"detection_height,omitempty"` } func (m *BroadcastTransactionResponse) Reset() { *m = BroadcastTransactionResponse{} } @@ -131,6 +134,13 @@ func (m *BroadcastTransactionResponse) GetId() *v1alpha1.Id { return nil } +func (m *BroadcastTransactionResponse) GetDetectionHeight() uint64 { + if m != nil { + return m.DetectionHeight + } + return 0 +} + type TransactionPlannerRequest struct { // The expiry height for the requested TransactionPlan ExpiryHeight uint64 `protobuf:"varint,1,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` @@ -141,9 +151,6 @@ type TransactionPlannerRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *TransactionPlannerRequest_AccountGroupId XAccountGroupId isTransactionPlannerRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *TransactionPlannerRequest_Token - XToken isTransactionPlannerRequest_XToken `protobuf_oneof:"_token"` // Request contents Outputs []*TransactionPlannerRequest_Output `protobuf:"bytes,20,rep,name=outputs,proto3" json:"outputs,omitempty"` Swaps []*TransactionPlannerRequest_Swap `protobuf:"bytes,30,rep,name=swaps,proto3" json:"swaps,omitempty"` @@ -190,21 +197,12 @@ type isTransactionPlannerRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isTransactionPlannerRequest_XToken interface { - isTransactionPlannerRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type TransactionPlannerRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type TransactionPlannerRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*TransactionPlannerRequest_AccountGroupId) isTransactionPlannerRequest_XAccountGroupId() {} -func (*TransactionPlannerRequest_Token) isTransactionPlannerRequest_XToken() {} func (m *TransactionPlannerRequest) GetXAccountGroupId() isTransactionPlannerRequest_XAccountGroupId { if m != nil { @@ -212,12 +210,6 @@ func (m *TransactionPlannerRequest) GetXAccountGroupId() isTransactionPlannerReq } return nil } -func (m *TransactionPlannerRequest) GetXToken() isTransactionPlannerRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *TransactionPlannerRequest) GetExpiryHeight() uint64 { if m != nil { @@ -247,13 +239,6 @@ func (m *TransactionPlannerRequest) GetAccountGroupId() *v1alpha11.AccountGroupI return nil } -func (m *TransactionPlannerRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*TransactionPlannerRequest_Token); ok { - return x.Token - } - return nil -} - func (m *TransactionPlannerRequest) GetOutputs() []*TransactionPlannerRequest_Output { if m != nil { return m.Outputs @@ -293,7 +278,6 @@ func (m *TransactionPlannerRequest) GetIbcActions() []*v1alpha12.IbcAction { func (*TransactionPlannerRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*TransactionPlannerRequest_AccountGroupId)(nil), - (*TransactionPlannerRequest_Token)(nil), } } @@ -939,8 +923,6 @@ func (m *BalanceByAddressResponse) GetAmount() *v1alpha11.Amount { } // Scaffolding for bearer-token authentication for the ViewService. -// The `account_group_id` and `token` fields are both optional, -// and numbered as 14 & 15 throughout the view service protocol. type ViewAuthToken struct { Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` } @@ -1078,9 +1060,6 @@ type StatusRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *StatusRequest_AccountGroupId XAccountGroupId isStatusRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *StatusRequest_Token - XToken isStatusRequest_XToken `protobuf_oneof:"_token"` } func (m *StatusRequest) Reset() { *m = StatusRequest{} } @@ -1121,21 +1100,12 @@ type isStatusRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isStatusRequest_XToken interface { - isStatusRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type StatusRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type StatusRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*StatusRequest_AccountGroupId) isStatusRequest_XAccountGroupId() {} -func (*StatusRequest_Token) isStatusRequest_XToken() {} func (m *StatusRequest) GetXAccountGroupId() isStatusRequest_XAccountGroupId { if m != nil { @@ -1143,12 +1113,6 @@ func (m *StatusRequest) GetXAccountGroupId() isStatusRequest_XAccountGroupId { } return nil } -func (m *StatusRequest) GetXToken() isStatusRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *StatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { if x, ok := m.GetXAccountGroupId().(*StatusRequest_AccountGroupId); ok { @@ -1157,18 +1121,10 @@ func (m *StatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *StatusRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*StatusRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*StatusRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*StatusRequest_AccountGroupId)(nil), - (*StatusRequest_Token)(nil), } } @@ -1232,9 +1188,6 @@ type StatusStreamRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *StatusStreamRequest_AccountGroupId XAccountGroupId isStatusStreamRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *StatusStreamRequest_Token - XToken isStatusStreamRequest_XToken `protobuf_oneof:"_token"` } func (m *StatusStreamRequest) Reset() { *m = StatusStreamRequest{} } @@ -1275,21 +1228,12 @@ type isStatusStreamRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isStatusStreamRequest_XToken interface { - isStatusStreamRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type StatusStreamRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type StatusStreamRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*StatusStreamRequest_AccountGroupId) isStatusStreamRequest_XAccountGroupId() {} -func (*StatusStreamRequest_Token) isStatusStreamRequest_XToken() {} func (m *StatusStreamRequest) GetXAccountGroupId() isStatusStreamRequest_XAccountGroupId { if m != nil { @@ -1297,12 +1241,6 @@ func (m *StatusStreamRequest) GetXAccountGroupId() isStatusStreamRequest_XAccoun } return nil } -func (m *StatusStreamRequest) GetXToken() isStatusStreamRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *StatusStreamRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { if x, ok := m.GetXAccountGroupId().(*StatusStreamRequest_AccountGroupId); ok { @@ -1311,18 +1249,10 @@ func (m *StatusStreamRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *StatusStreamRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*StatusStreamRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*StatusStreamRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*StatusStreamRequest_AccountGroupId)(nil), - (*StatusStreamRequest_Token)(nil), } } @@ -1393,13 +1323,10 @@ type NotesRequest struct { // If set, stop returning notes once the total exceeds this amount. // // Ignored if `asset_id` is unset or if `include_spent` is set. - AmountToSpend uint64 `protobuf:"varint,5,opt,name=amount_to_spend,json=amountToSpend,proto3" json:"amount_to_spend,omitempty"` + AmountToSpend *v1alpha11.Amount `protobuf:"bytes,6,opt,name=amount_to_spend,json=amountToSpend,proto3" json:"amount_to_spend,omitempty"` // Types that are valid to be assigned to XAccountGroupId: // *NotesRequest_AccountGroupId XAccountGroupId isNotesRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NotesRequest_Token - XToken isNotesRequest_XToken `protobuf_oneof:"_token"` } func (m *NotesRequest) Reset() { *m = NotesRequest{} } @@ -1440,21 +1367,12 @@ type isNotesRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNotesRequest_XToken interface { - isNotesRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NotesRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NotesRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NotesRequest_AccountGroupId) isNotesRequest_XAccountGroupId() {} -func (*NotesRequest_Token) isNotesRequest_XToken() {} func (m *NotesRequest) GetXAccountGroupId() isNotesRequest_XAccountGroupId { if m != nil { @@ -1462,12 +1380,6 @@ func (m *NotesRequest) GetXAccountGroupId() isNotesRequest_XAccountGroupId { } return nil } -func (m *NotesRequest) GetXToken() isNotesRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NotesRequest) GetIncludeSpent() bool { if m != nil { @@ -1490,11 +1402,11 @@ func (m *NotesRequest) GetAddressIndex() *v1alpha11.AddressIndex { return nil } -func (m *NotesRequest) GetAmountToSpend() uint64 { +func (m *NotesRequest) GetAmountToSpend() *v1alpha11.Amount { if m != nil { return m.AmountToSpend } - return 0 + return nil } func (m *NotesRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { @@ -1504,18 +1416,10 @@ func (m *NotesRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *NotesRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NotesRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NotesRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NotesRequest_AccountGroupId)(nil), - (*NotesRequest_Token)(nil), } } @@ -1528,9 +1432,6 @@ type NotesForVotingRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *NotesForVotingRequest_AccountGroupId XAccountGroupId isNotesForVotingRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NotesForVotingRequest_Token - XToken isNotesForVotingRequest_XToken `protobuf_oneof:"_token"` } func (m *NotesForVotingRequest) Reset() { *m = NotesForVotingRequest{} } @@ -1571,21 +1472,12 @@ type isNotesForVotingRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNotesForVotingRequest_XToken interface { - isNotesForVotingRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NotesForVotingRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NotesForVotingRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NotesForVotingRequest_AccountGroupId) isNotesForVotingRequest_XAccountGroupId() {} -func (*NotesForVotingRequest_Token) isNotesForVotingRequest_XToken() {} func (m *NotesForVotingRequest) GetXAccountGroupId() isNotesForVotingRequest_XAccountGroupId { if m != nil { @@ -1593,12 +1485,6 @@ func (m *NotesForVotingRequest) GetXAccountGroupId() isNotesForVotingRequest_XAc } return nil } -func (m *NotesForVotingRequest) GetXToken() isNotesForVotingRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NotesForVotingRequest) GetVotableAtHeight() uint64 { if m != nil { @@ -1621,18 +1507,10 @@ func (m *NotesForVotingRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *NotesForVotingRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NotesForVotingRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NotesForVotingRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NotesForVotingRequest_AccountGroupId)(nil), - (*NotesForVotingRequest_Token)(nil), } } @@ -1644,9 +1522,6 @@ type WitnessRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *WitnessRequest_AccountGroupId XAccountGroupId isWitnessRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *WitnessRequest_Token - XToken isWitnessRequest_XToken `protobuf_oneof:"_token"` } func (m *WitnessRequest) Reset() { *m = WitnessRequest{} } @@ -1687,21 +1562,12 @@ type isWitnessRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isWitnessRequest_XToken interface { - isWitnessRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type WitnessRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type WitnessRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*WitnessRequest_AccountGroupId) isWitnessRequest_XAccountGroupId() {} -func (*WitnessRequest_Token) isWitnessRequest_XToken() {} func (m *WitnessRequest) GetXAccountGroupId() isWitnessRequest_XAccountGroupId { if m != nil { @@ -1709,12 +1575,6 @@ func (m *WitnessRequest) GetXAccountGroupId() isWitnessRequest_XAccountGroupId { } return nil } -func (m *WitnessRequest) GetXToken() isWitnessRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *WitnessRequest) GetNoteCommitments() []*v1alpha11.StateCommitment { if m != nil { @@ -1737,18 +1597,10 @@ func (m *WitnessRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *WitnessRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*WitnessRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*WitnessRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*WitnessRequest_AccountGroupId)(nil), - (*WitnessRequest_Token)(nil), } } @@ -2207,9 +2059,6 @@ type NoteByCommitmentRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *NoteByCommitmentRequest_AccountGroupId XAccountGroupId isNoteByCommitmentRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NoteByCommitmentRequest_Token - XToken isNoteByCommitmentRequest_XToken `protobuf_oneof:"_token"` } func (m *NoteByCommitmentRequest) Reset() { *m = NoteByCommitmentRequest{} } @@ -2250,21 +2099,12 @@ type isNoteByCommitmentRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNoteByCommitmentRequest_XToken interface { - isNoteByCommitmentRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NoteByCommitmentRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NoteByCommitmentRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NoteByCommitmentRequest_AccountGroupId) isNoteByCommitmentRequest_XAccountGroupId() {} -func (*NoteByCommitmentRequest_Token) isNoteByCommitmentRequest_XToken() {} func (m *NoteByCommitmentRequest) GetXAccountGroupId() isNoteByCommitmentRequest_XAccountGroupId { if m != nil { @@ -2272,12 +2112,6 @@ func (m *NoteByCommitmentRequest) GetXAccountGroupId() isNoteByCommitmentRequest } return nil } -func (m *NoteByCommitmentRequest) GetXToken() isNoteByCommitmentRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NoteByCommitmentRequest) GetNoteCommitment() *v1alpha11.StateCommitment { if m != nil { @@ -2300,18 +2134,10 @@ func (m *NoteByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId return nil } -func (m *NoteByCommitmentRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NoteByCommitmentRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NoteByCommitmentRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NoteByCommitmentRequest_AccountGroupId)(nil), - (*NoteByCommitmentRequest_Token)(nil), } } @@ -2366,9 +2192,6 @@ type SwapByCommitmentRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *SwapByCommitmentRequest_AccountGroupId XAccountGroupId isSwapByCommitmentRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *SwapByCommitmentRequest_Token - XToken isSwapByCommitmentRequest_XToken `protobuf_oneof:"_token"` } func (m *SwapByCommitmentRequest) Reset() { *m = SwapByCommitmentRequest{} } @@ -2409,21 +2232,12 @@ type isSwapByCommitmentRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isSwapByCommitmentRequest_XToken interface { - isSwapByCommitmentRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type SwapByCommitmentRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type SwapByCommitmentRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*SwapByCommitmentRequest_AccountGroupId) isSwapByCommitmentRequest_XAccountGroupId() {} -func (*SwapByCommitmentRequest_Token) isSwapByCommitmentRequest_XToken() {} func (m *SwapByCommitmentRequest) GetXAccountGroupId() isSwapByCommitmentRequest_XAccountGroupId { if m != nil { @@ -2431,12 +2245,6 @@ func (m *SwapByCommitmentRequest) GetXAccountGroupId() isSwapByCommitmentRequest } return nil } -func (m *SwapByCommitmentRequest) GetXToken() isSwapByCommitmentRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *SwapByCommitmentRequest) GetSwapCommitment() *v1alpha11.StateCommitment { if m != nil { @@ -2459,18 +2267,10 @@ func (m *SwapByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId return nil } -func (m *SwapByCommitmentRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*SwapByCommitmentRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*SwapByCommitmentRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*SwapByCommitmentRequest_AccountGroupId)(nil), - (*SwapByCommitmentRequest_Token)(nil), } } @@ -2524,9 +2324,6 @@ type NullifierStatusRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *NullifierStatusRequest_AccountGroupId XAccountGroupId isNullifierStatusRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NullifierStatusRequest_Token - XToken isNullifierStatusRequest_XToken `protobuf_oneof:"_token"` } func (m *NullifierStatusRequest) Reset() { *m = NullifierStatusRequest{} } @@ -2567,21 +2364,12 @@ type isNullifierStatusRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNullifierStatusRequest_XToken interface { - isNullifierStatusRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NullifierStatusRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NullifierStatusRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NullifierStatusRequest_AccountGroupId) isNullifierStatusRequest_XAccountGroupId() {} -func (*NullifierStatusRequest_Token) isNullifierStatusRequest_XToken() {} func (m *NullifierStatusRequest) GetXAccountGroupId() isNullifierStatusRequest_XAccountGroupId { if m != nil { @@ -2589,12 +2377,6 @@ func (m *NullifierStatusRequest) GetXAccountGroupId() isNullifierStatusRequest_X } return nil } -func (m *NullifierStatusRequest) GetXToken() isNullifierStatusRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NullifierStatusRequest) GetNullifier() *v1alpha11.Nullifier { if m != nil { @@ -2617,18 +2399,10 @@ func (m *NullifierStatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *NullifierStatusRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NullifierStatusRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NullifierStatusRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NullifierStatusRequest_AccountGroupId)(nil), - (*NullifierStatusRequest_Token)(nil), } } @@ -2676,27 +2450,72 @@ func (m *NullifierStatusResponse) GetSpent() bool { return false } -type TransactionHashesRequest struct { +type TransactionInfoByHashRequest struct { + // The transaction hash to query for. + Id *v1alpha1.Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *TransactionInfoByHashRequest) Reset() { *m = TransactionInfoByHashRequest{} } +func (m *TransactionInfoByHashRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoByHashRequest) ProtoMessage() {} +func (*TransactionInfoByHashRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{37} +} +func (m *TransactionInfoByHashRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionInfoByHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionInfoByHashRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TransactionInfoByHashRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoByHashRequest.Merge(m, src) +} +func (m *TransactionInfoByHashRequest) XXX_Size() int { + return m.Size() +} +func (m *TransactionInfoByHashRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoByHashRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionInfoByHashRequest proto.InternalMessageInfo + +func (m *TransactionInfoByHashRequest) GetId() *v1alpha1.Id { + if m != nil { + return m.Id + } + return nil +} + +type TransactionInfoRequest struct { // Types that are valid to be assigned to XStartHeight: - // *TransactionHashesRequest_StartHeight - XStartHeight isTransactionHashesRequest_XStartHeight `protobuf_oneof:"_start_height"` + // *TransactionInfoRequest_StartHeight + XStartHeight isTransactionInfoRequest_XStartHeight `protobuf_oneof:"_start_height"` // Types that are valid to be assigned to XEndHeight: - // *TransactionHashesRequest_EndHeight - XEndHeight isTransactionHashesRequest_XEndHeight `protobuf_oneof:"_end_height"` + // *TransactionInfoRequest_EndHeight + XEndHeight isTransactionInfoRequest_XEndHeight `protobuf_oneof:"_end_height"` } -func (m *TransactionHashesRequest) Reset() { *m = TransactionHashesRequest{} } -func (m *TransactionHashesRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionHashesRequest) ProtoMessage() {} -func (*TransactionHashesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{37} +func (m *TransactionInfoRequest) Reset() { *m = TransactionInfoRequest{} } +func (m *TransactionInfoRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoRequest) ProtoMessage() {} +func (*TransactionInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{38} } -func (m *TransactionHashesRequest) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionHashesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionHashesRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfoRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2706,91 +2525,100 @@ func (m *TransactionHashesRequest) XXX_Marshal(b []byte, deterministic bool) ([] return b[:n], nil } } -func (m *TransactionHashesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionHashesRequest.Merge(m, src) +func (m *TransactionInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoRequest.Merge(m, src) } -func (m *TransactionHashesRequest) XXX_Size() int { +func (m *TransactionInfoRequest) XXX_Size() int { return m.Size() } -func (m *TransactionHashesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionHashesRequest.DiscardUnknown(m) +func (m *TransactionInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoRequest.DiscardUnknown(m) } -var xxx_messageInfo_TransactionHashesRequest proto.InternalMessageInfo +var xxx_messageInfo_TransactionInfoRequest proto.InternalMessageInfo -type isTransactionHashesRequest_XStartHeight interface { - isTransactionHashesRequest_XStartHeight() +type isTransactionInfoRequest_XStartHeight interface { + isTransactionInfoRequest_XStartHeight() MarshalTo([]byte) (int, error) Size() int } -type isTransactionHashesRequest_XEndHeight interface { - isTransactionHashesRequest_XEndHeight() +type isTransactionInfoRequest_XEndHeight interface { + isTransactionInfoRequest_XEndHeight() MarshalTo([]byte) (int, error) Size() int } -type TransactionHashesRequest_StartHeight struct { +type TransactionInfoRequest_StartHeight struct { StartHeight uint64 `protobuf:"varint,1,opt,name=start_height,json=startHeight,proto3,oneof" json:"start_height,omitempty"` } -type TransactionHashesRequest_EndHeight struct { +type TransactionInfoRequest_EndHeight struct { EndHeight uint64 `protobuf:"varint,2,opt,name=end_height,json=endHeight,proto3,oneof" json:"end_height,omitempty"` } -func (*TransactionHashesRequest_StartHeight) isTransactionHashesRequest_XStartHeight() {} -func (*TransactionHashesRequest_EndHeight) isTransactionHashesRequest_XEndHeight() {} +func (*TransactionInfoRequest_StartHeight) isTransactionInfoRequest_XStartHeight() {} +func (*TransactionInfoRequest_EndHeight) isTransactionInfoRequest_XEndHeight() {} -func (m *TransactionHashesRequest) GetXStartHeight() isTransactionHashesRequest_XStartHeight { +func (m *TransactionInfoRequest) GetXStartHeight() isTransactionInfoRequest_XStartHeight { if m != nil { return m.XStartHeight } return nil } -func (m *TransactionHashesRequest) GetXEndHeight() isTransactionHashesRequest_XEndHeight { +func (m *TransactionInfoRequest) GetXEndHeight() isTransactionInfoRequest_XEndHeight { if m != nil { return m.XEndHeight } return nil } -func (m *TransactionHashesRequest) GetStartHeight() uint64 { - if x, ok := m.GetXStartHeight().(*TransactionHashesRequest_StartHeight); ok { +func (m *TransactionInfoRequest) GetStartHeight() uint64 { + if x, ok := m.GetXStartHeight().(*TransactionInfoRequest_StartHeight); ok { return x.StartHeight } return 0 } -func (m *TransactionHashesRequest) GetEndHeight() uint64 { - if x, ok := m.GetXEndHeight().(*TransactionHashesRequest_EndHeight); ok { +func (m *TransactionInfoRequest) GetEndHeight() uint64 { + if x, ok := m.GetXEndHeight().(*TransactionInfoRequest_EndHeight); ok { return x.EndHeight } return 0 } // XXX_OneofWrappers is for the internal use of the proto package. -func (*TransactionHashesRequest) XXX_OneofWrappers() []interface{} { +func (*TransactionInfoRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ - (*TransactionHashesRequest_StartHeight)(nil), - (*TransactionHashesRequest_EndHeight)(nil), + (*TransactionInfoRequest_StartHeight)(nil), + (*TransactionInfoRequest_EndHeight)(nil), } } -type TransactionHashesResponse struct { - BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` - TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +type TransactionInfo struct { + // Types that are valid to be assigned to XHeight: + // *TransactionInfo_Height + XHeight isTransactionInfo_XHeight `protobuf_oneof:"_height"` + // The hash of the transaction. + Id *v1alpha1.Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The transaction data itself. + Transaction *v1alpha1.Transaction `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"` + // The transaction perspective, as seen by this view server. + Perspective *v1alpha1.TransactionPerspective `protobuf:"bytes,4,opt,name=perspective,proto3" json:"perspective,omitempty"` + // A precomputed transaction view of `transaction` from `perspective`, included for convenience of clients that don't have support for viewing transactions on their own. + View *v1alpha1.TransactionView `protobuf:"bytes,5,opt,name=view,proto3" json:"view,omitempty"` } -func (m *TransactionHashesResponse) Reset() { *m = TransactionHashesResponse{} } -func (m *TransactionHashesResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionHashesResponse) ProtoMessage() {} -func (*TransactionHashesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{38} +func (m *TransactionInfo) Reset() { *m = TransactionInfo{} } +func (m *TransactionInfo) String() string { return proto.CompactTextString(m) } +func (*TransactionInfo) ProtoMessage() {} +func (*TransactionInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{39} } -func (m *TransactionHashesResponse) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionHashesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionHashesResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfo.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2800,49 +2628,95 @@ func (m *TransactionHashesResponse) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *TransactionHashesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionHashesResponse.Merge(m, src) +func (m *TransactionInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfo.Merge(m, src) } -func (m *TransactionHashesResponse) XXX_Size() int { +func (m *TransactionInfo) XXX_Size() int { return m.Size() } -func (m *TransactionHashesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionHashesResponse.DiscardUnknown(m) +func (m *TransactionInfo) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionInfo proto.InternalMessageInfo + +type isTransactionInfo_XHeight interface { + isTransactionInfo_XHeight() + MarshalTo([]byte) (int, error) + Size() int +} + +type TransactionInfo_Height struct { + Height uint64 `protobuf:"varint,1,opt,name=height,proto3,oneof" json:"height,omitempty"` } -var xxx_messageInfo_TransactionHashesResponse proto.InternalMessageInfo +func (*TransactionInfo_Height) isTransactionInfo_XHeight() {} -func (m *TransactionHashesResponse) GetBlockHeight() uint64 { +func (m *TransactionInfo) GetXHeight() isTransactionInfo_XHeight { if m != nil { - return m.BlockHeight + return m.XHeight + } + return nil +} + +func (m *TransactionInfo) GetHeight() uint64 { + if x, ok := m.GetXHeight().(*TransactionInfo_Height); ok { + return x.Height } return 0 } -func (m *TransactionHashesResponse) GetTxHash() []byte { +func (m *TransactionInfo) GetId() *v1alpha1.Id { + if m != nil { + return m.Id + } + return nil +} + +func (m *TransactionInfo) GetTransaction() *v1alpha1.Transaction { if m != nil { - return m.TxHash + return m.Transaction } return nil } -type TransactionByHashRequest struct { - // The transaction hash to query for. - TxHash []byte `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +func (m *TransactionInfo) GetPerspective() *v1alpha1.TransactionPerspective { + if m != nil { + return m.Perspective + } + return nil } -func (m *TransactionByHashRequest) Reset() { *m = TransactionByHashRequest{} } -func (m *TransactionByHashRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionByHashRequest) ProtoMessage() {} -func (*TransactionByHashRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{39} +func (m *TransactionInfo) GetView() *v1alpha1.TransactionView { + if m != nil { + return m.View + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransactionInfo) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransactionInfo_Height)(nil), + } +} + +type TransactionInfoResponse struct { + TxInfo *TransactionInfo `protobuf:"bytes,1,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"` +} + +func (m *TransactionInfoResponse) Reset() { *m = TransactionInfoResponse{} } +func (m *TransactionInfoResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoResponse) ProtoMessage() {} +func (*TransactionInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{40} } -func (m *TransactionByHashRequest) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionByHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionByHashRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfoResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2852,42 +2726,41 @@ func (m *TransactionByHashRequest) XXX_Marshal(b []byte, deterministic bool) ([] return b[:n], nil } } -func (m *TransactionByHashRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionByHashRequest.Merge(m, src) +func (m *TransactionInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoResponse.Merge(m, src) } -func (m *TransactionByHashRequest) XXX_Size() int { +func (m *TransactionInfoResponse) XXX_Size() int { return m.Size() } -func (m *TransactionByHashRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionByHashRequest.DiscardUnknown(m) +func (m *TransactionInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoResponse.DiscardUnknown(m) } -var xxx_messageInfo_TransactionByHashRequest proto.InternalMessageInfo +var xxx_messageInfo_TransactionInfoResponse proto.InternalMessageInfo -func (m *TransactionByHashRequest) GetTxHash() []byte { +func (m *TransactionInfoResponse) GetTxInfo() *TransactionInfo { if m != nil { - return m.TxHash + return m.TxInfo } return nil } -// A full transaction response -type TransactionByHashResponse struct { - Tx *v1alpha1.Transaction `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` +type TransactionInfoByHashResponse struct { + TxInfo *TransactionInfo `protobuf:"bytes,1,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"` } -func (m *TransactionByHashResponse) Reset() { *m = TransactionByHashResponse{} } -func (m *TransactionByHashResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionByHashResponse) ProtoMessage() {} -func (*TransactionByHashResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{40} +func (m *TransactionInfoByHashResponse) Reset() { *m = TransactionInfoByHashResponse{} } +func (m *TransactionInfoByHashResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoByHashResponse) ProtoMessage() {} +func (*TransactionInfoByHashResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{41} } -func (m *TransactionByHashResponse) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfoByHashResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionByHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfoByHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionByHashResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfoByHashResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2897,46 +2770,41 @@ func (m *TransactionByHashResponse) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *TransactionByHashResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionByHashResponse.Merge(m, src) +func (m *TransactionInfoByHashResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoByHashResponse.Merge(m, src) } -func (m *TransactionByHashResponse) XXX_Size() int { +func (m *TransactionInfoByHashResponse) XXX_Size() int { return m.Size() } -func (m *TransactionByHashResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionByHashResponse.DiscardUnknown(m) +func (m *TransactionInfoByHashResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoByHashResponse.DiscardUnknown(m) } -var xxx_messageInfo_TransactionByHashResponse proto.InternalMessageInfo +var xxx_messageInfo_TransactionInfoByHashResponse proto.InternalMessageInfo -func (m *TransactionByHashResponse) GetTx() *v1alpha1.Transaction { +func (m *TransactionInfoByHashResponse) GetTxInfo() *TransactionInfo { if m != nil { - return m.Tx + return m.TxInfo } return nil } -type TransactionsRequest struct { - // Types that are valid to be assigned to XStartHeight: - // *TransactionsRequest_StartHeight - XStartHeight isTransactionsRequest_XStartHeight `protobuf_oneof:"_start_height"` - // Types that are valid to be assigned to XEndHeight: - // *TransactionsRequest_EndHeight - XEndHeight isTransactionsRequest_XEndHeight `protobuf_oneof:"_end_height"` +type NotesResponse struct { + NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` } -func (m *TransactionsRequest) Reset() { *m = TransactionsRequest{} } -func (m *TransactionsRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionsRequest) ProtoMessage() {} -func (*TransactionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{41} +func (m *NotesResponse) Reset() { *m = NotesResponse{} } +func (m *NotesResponse) String() string { return proto.CompactTextString(m) } +func (*NotesResponse) ProtoMessage() {} +func (*NotesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{42} } -func (m *TransactionsRequest) XXX_Unmarshal(b []byte) error { +func (m *NotesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *NotesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionsRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_NotesResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2946,93 +2814,42 @@ func (m *TransactionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *TransactionsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionsRequest.Merge(m, src) +func (m *NotesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotesResponse.Merge(m, src) } -func (m *TransactionsRequest) XXX_Size() int { +func (m *NotesResponse) XXX_Size() int { return m.Size() } -func (m *TransactionsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionsRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionsRequest proto.InternalMessageInfo - -type isTransactionsRequest_XStartHeight interface { - isTransactionsRequest_XStartHeight() - MarshalTo([]byte) (int, error) - Size() int -} -type isTransactionsRequest_XEndHeight interface { - isTransactionsRequest_XEndHeight() - MarshalTo([]byte) (int, error) - Size() int -} - -type TransactionsRequest_StartHeight struct { - StartHeight uint64 `protobuf:"varint,1,opt,name=start_height,json=startHeight,proto3,oneof" json:"start_height,omitempty"` -} -type TransactionsRequest_EndHeight struct { - EndHeight uint64 `protobuf:"varint,2,opt,name=end_height,json=endHeight,proto3,oneof" json:"end_height,omitempty"` +func (m *NotesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NotesResponse.DiscardUnknown(m) } -func (*TransactionsRequest_StartHeight) isTransactionsRequest_XStartHeight() {} -func (*TransactionsRequest_EndHeight) isTransactionsRequest_XEndHeight() {} +var xxx_messageInfo_NotesResponse proto.InternalMessageInfo -func (m *TransactionsRequest) GetXStartHeight() isTransactionsRequest_XStartHeight { - if m != nil { - return m.XStartHeight - } - return nil -} -func (m *TransactionsRequest) GetXEndHeight() isTransactionsRequest_XEndHeight { +func (m *NotesResponse) GetNoteRecord() *SpendableNoteRecord { if m != nil { - return m.XEndHeight + return m.NoteRecord } return nil } -func (m *TransactionsRequest) GetStartHeight() uint64 { - if x, ok := m.GetXStartHeight().(*TransactionsRequest_StartHeight); ok { - return x.StartHeight - } - return 0 -} - -func (m *TransactionsRequest) GetEndHeight() uint64 { - if x, ok := m.GetXEndHeight().(*TransactionsRequest_EndHeight); ok { - return x.EndHeight - } - return 0 -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*TransactionsRequest) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*TransactionsRequest_StartHeight)(nil), - (*TransactionsRequest_EndHeight)(nil), - } -} - -// A streaming full transaction response -type TransactionsResponse struct { - BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` - TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - Tx *v1alpha1.Transaction `protobuf:"bytes,3,opt,name=tx,proto3" json:"tx,omitempty"` +type NotesForVotingResponse struct { + NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` + IdentityKey *v1alpha11.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` } -func (m *TransactionsResponse) Reset() { *m = TransactionsResponse{} } -func (m *TransactionsResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionsResponse) ProtoMessage() {} -func (*TransactionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{42} +func (m *NotesForVotingResponse) Reset() { *m = NotesForVotingResponse{} } +func (m *NotesForVotingResponse) String() string { return proto.CompactTextString(m) } +func (*NotesForVotingResponse) ProtoMessage() {} +func (*NotesForVotingResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{43} } -func (m *TransactionsResponse) XXX_Unmarshal(b []byte) error { +func (m *NotesForVotingResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *NotesForVotingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionsResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_NotesForVotingResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -3042,217 +2859,10 @@ func (m *TransactionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte return b[:n], nil } } -func (m *TransactionsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionsResponse.Merge(m, src) +func (m *NotesForVotingResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotesForVotingResponse.Merge(m, src) } -func (m *TransactionsResponse) XXX_Size() int { - return m.Size() -} -func (m *TransactionsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionsResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionsResponse proto.InternalMessageInfo - -func (m *TransactionsResponse) GetBlockHeight() uint64 { - if m != nil { - return m.BlockHeight - } - return 0 -} - -func (m *TransactionsResponse) GetTxHash() []byte { - if m != nil { - return m.TxHash - } - return nil -} - -func (m *TransactionsResponse) GetTx() *v1alpha1.Transaction { - if m != nil { - return m.Tx - } - return nil -} - -type TransactionPerspectiveRequest struct { - TxHash []byte `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` -} - -func (m *TransactionPerspectiveRequest) Reset() { *m = TransactionPerspectiveRequest{} } -func (m *TransactionPerspectiveRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionPerspectiveRequest) ProtoMessage() {} -func (*TransactionPerspectiveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{43} -} -func (m *TransactionPerspectiveRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TransactionPerspectiveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_TransactionPerspectiveRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *TransactionPerspectiveRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionPerspectiveRequest.Merge(m, src) -} -func (m *TransactionPerspectiveRequest) XXX_Size() int { - return m.Size() -} -func (m *TransactionPerspectiveRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionPerspectiveRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionPerspectiveRequest proto.InternalMessageInfo - -func (m *TransactionPerspectiveRequest) GetTxHash() []byte { - if m != nil { - return m.TxHash - } - return nil -} - -type TransactionPerspectiveResponse struct { - Txp *v1alpha1.TransactionPerspective `protobuf:"bytes,1,opt,name=txp,proto3" json:"txp,omitempty"` - Tx *v1alpha1.Transaction `protobuf:"bytes,2,opt,name=tx,proto3" json:"tx,omitempty"` - Txv *v1alpha1.TransactionView `protobuf:"bytes,3,opt,name=txv,proto3" json:"txv,omitempty"` -} - -func (m *TransactionPerspectiveResponse) Reset() { *m = TransactionPerspectiveResponse{} } -func (m *TransactionPerspectiveResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionPerspectiveResponse) ProtoMessage() {} -func (*TransactionPerspectiveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{44} -} -func (m *TransactionPerspectiveResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TransactionPerspectiveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_TransactionPerspectiveResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *TransactionPerspectiveResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionPerspectiveResponse.Merge(m, src) -} -func (m *TransactionPerspectiveResponse) XXX_Size() int { - return m.Size() -} -func (m *TransactionPerspectiveResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionPerspectiveResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionPerspectiveResponse proto.InternalMessageInfo - -func (m *TransactionPerspectiveResponse) GetTxp() *v1alpha1.TransactionPerspective { - if m != nil { - return m.Txp - } - return nil -} - -func (m *TransactionPerspectiveResponse) GetTx() *v1alpha1.Transaction { - if m != nil { - return m.Tx - } - return nil -} - -func (m *TransactionPerspectiveResponse) GetTxv() *v1alpha1.TransactionView { - if m != nil { - return m.Txv - } - return nil -} - -type NotesResponse struct { - NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` -} - -func (m *NotesResponse) Reset() { *m = NotesResponse{} } -func (m *NotesResponse) String() string { return proto.CompactTextString(m) } -func (*NotesResponse) ProtoMessage() {} -func (*NotesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{45} -} -func (m *NotesResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NotesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_NotesResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *NotesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NotesResponse.Merge(m, src) -} -func (m *NotesResponse) XXX_Size() int { - return m.Size() -} -func (m *NotesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NotesResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NotesResponse proto.InternalMessageInfo - -func (m *NotesResponse) GetNoteRecord() *SpendableNoteRecord { - if m != nil { - return m.NoteRecord - } - return nil -} - -type NotesForVotingResponse struct { - NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` - IdentityKey *v1alpha11.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` -} - -func (m *NotesForVotingResponse) Reset() { *m = NotesForVotingResponse{} } -func (m *NotesForVotingResponse) String() string { return proto.CompactTextString(m) } -func (*NotesForVotingResponse) ProtoMessage() {} -func (*NotesForVotingResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{46} -} -func (m *NotesForVotingResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NotesForVotingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_NotesForVotingResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *NotesForVotingResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NotesForVotingResponse.Merge(m, src) -} -func (m *NotesForVotingResponse) XXX_Size() int { +func (m *NotesForVotingResponse) XXX_Size() int { return m.Size() } func (m *NotesForVotingResponse) XXX_DiscardUnknown() { @@ -3300,7 +2910,7 @@ func (m *SpendableNoteRecord) Reset() { *m = SpendableNoteRecord{} } func (m *SpendableNoteRecord) String() string { return proto.CompactTextString(m) } func (*SpendableNoteRecord) ProtoMessage() {} func (*SpendableNoteRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{47} + return fileDescriptor_0aa947b204e6a7c2, []int{44} } func (m *SpendableNoteRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3427,7 +3037,7 @@ func (m *SwapRecord) Reset() { *m = SwapRecord{} } func (m *SwapRecord) String() string { return proto.CompactTextString(m) } func (*SwapRecord) ProtoMessage() {} func (*SwapRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{48} + return fileDescriptor_0aa947b204e6a7c2, []int{45} } func (m *SwapRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3573,14 +3183,11 @@ func init() { proto.RegisterType((*SwapByCommitmentResponse)(nil), "penumbra.view.v1alpha1.SwapByCommitmentResponse") proto.RegisterType((*NullifierStatusRequest)(nil), "penumbra.view.v1alpha1.NullifierStatusRequest") proto.RegisterType((*NullifierStatusResponse)(nil), "penumbra.view.v1alpha1.NullifierStatusResponse") - proto.RegisterType((*TransactionHashesRequest)(nil), "penumbra.view.v1alpha1.TransactionHashesRequest") - proto.RegisterType((*TransactionHashesResponse)(nil), "penumbra.view.v1alpha1.TransactionHashesResponse") - proto.RegisterType((*TransactionByHashRequest)(nil), "penumbra.view.v1alpha1.TransactionByHashRequest") - proto.RegisterType((*TransactionByHashResponse)(nil), "penumbra.view.v1alpha1.TransactionByHashResponse") - proto.RegisterType((*TransactionsRequest)(nil), "penumbra.view.v1alpha1.TransactionsRequest") - proto.RegisterType((*TransactionsResponse)(nil), "penumbra.view.v1alpha1.TransactionsResponse") - proto.RegisterType((*TransactionPerspectiveRequest)(nil), "penumbra.view.v1alpha1.TransactionPerspectiveRequest") - proto.RegisterType((*TransactionPerspectiveResponse)(nil), "penumbra.view.v1alpha1.TransactionPerspectiveResponse") + proto.RegisterType((*TransactionInfoByHashRequest)(nil), "penumbra.view.v1alpha1.TransactionInfoByHashRequest") + proto.RegisterType((*TransactionInfoRequest)(nil), "penumbra.view.v1alpha1.TransactionInfoRequest") + proto.RegisterType((*TransactionInfo)(nil), "penumbra.view.v1alpha1.TransactionInfo") + proto.RegisterType((*TransactionInfoResponse)(nil), "penumbra.view.v1alpha1.TransactionInfoResponse") + proto.RegisterType((*TransactionInfoByHashResponse)(nil), "penumbra.view.v1alpha1.TransactionInfoByHashResponse") proto.RegisterType((*NotesResponse)(nil), "penumbra.view.v1alpha1.NotesResponse") proto.RegisterType((*NotesForVotingResponse)(nil), "penumbra.view.v1alpha1.NotesForVotingResponse") proto.RegisterType((*SpendableNoteRecord)(nil), "penumbra.view.v1alpha1.SpendableNoteRecord") @@ -3590,180 +3197,176 @@ func init() { func init() { proto.RegisterFile("penumbra/view/v1alpha1/view.proto", fileDescriptor_0aa947b204e6a7c2) } var fileDescriptor_0aa947b204e6a7c2 = []byte{ - // 2768 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcf, 0x73, 0xe4, 0xc4, - 0xf5, 0x5f, 0xcd, 0xf8, 0xd7, 0xbe, 0x19, 0xcf, 0x78, 0x65, 0xaf, 0x3d, 0xcc, 0x17, 0xcc, 0x22, - 0x76, 0x17, 0x7f, 0x97, 0x30, 0xde, 0xf5, 0x02, 0x21, 0x06, 0x0a, 0x3c, 0x18, 0x63, 0x17, 0xbb, - 0xe0, 0xc8, 0xac, 0x37, 0x10, 0x13, 0x55, 0x5b, 0x6a, 0x7b, 0x14, 0x6b, 0x24, 0x21, 0xf5, 0xf8, - 0x07, 0x39, 0x71, 0x21, 0x14, 0xa7, 0x54, 0xe5, 0x90, 0xe4, 0x9a, 0x5b, 0x52, 0xa9, 0xca, 0x29, - 0x7f, 0x41, 0x2e, 0x54, 0x0e, 0x29, 0x0e, 0xa4, 0x2a, 0x95, 0x54, 0xa5, 0x52, 0xcb, 0x2d, 0x7f, - 0x40, 0xae, 0x49, 0xf5, 0x2f, 0x8d, 0xa4, 0x91, 0x98, 0x19, 0xdb, 0x54, 0xb2, 0xe1, 0x36, 0xea, - 0x7e, 0xef, 0xf3, 0x5e, 0xbf, 0xd7, 0xfd, 0xfa, 0xbd, 0x37, 0x0d, 0x4f, 0xf8, 0xd8, 0xed, 0xb4, - 0x77, 0x03, 0xb4, 0x78, 0x68, 0xe3, 0xa3, 0xc5, 0xc3, 0x5b, 0xc8, 0xf1, 0x5b, 0xe8, 0x16, 0xfb, - 0x6a, 0xf8, 0x81, 0x47, 0x3c, 0x75, 0x56, 0x92, 0x34, 0xd8, 0xa0, 0x24, 0xa9, 0x2f, 0x44, 0xac, - 0xa6, 0x17, 0xe0, 0x45, 0xb3, 0x85, 0x6c, 0xb7, 0x0b, 0xc0, 0x3e, 0x39, 0x42, 0xfd, 0x46, 0x8a, - 0x32, 0x38, 0xf1, 0x89, 0x17, 0x23, 0x65, 0xdf, 0x82, 0xf6, 0x6a, 0x92, 0xd6, 0xc2, 0xc7, 0x5d, - 0x42, 0x0b, 0x1f, 0x0b, 0xaa, 0x67, 0x93, 0x54, 0x24, 0x40, 0x6e, 0x88, 0x4c, 0x62, 0x7b, 0x31, - 0x0d, 0x62, 0x83, 0xd9, 0xd8, 0xf6, 0xae, 0xd9, 0xa5, 0xb6, 0x77, 0x4d, 0x4e, 0xa5, 0xfd, 0x42, - 0x81, 0xff, 0x6b, 0x06, 0x1e, 0xb2, 0x4c, 0x14, 0x92, 0x77, 0xba, 0x20, 0x3a, 0xfe, 0xa0, 0x83, - 0x43, 0xa2, 0x7e, 0x17, 0x4a, 0x31, 0xe8, 0x9a, 0x72, 0x45, 0x59, 0x28, 0x2d, 0x2d, 0x36, 0x22, - 0x2b, 0x51, 0xec, 0x46, 0x5c, 0xb8, 0x94, 0xd1, 0x88, 0x83, 0xc5, 0x31, 0xd4, 0xa7, 0xa0, 0x8a, - 0x8e, 0x90, 0x4d, 0x0c, 0x0b, 0x13, 0xcc, 0x61, 0x0b, 0x57, 0x94, 0x85, 0x09, 0xbd, 0xc2, 0x86, - 0x57, 0xe5, 0xa8, 0xb6, 0x0d, 0x8f, 0x66, 0xab, 0x16, 0xfa, 0x9e, 0x1b, 0x62, 0xf5, 0x79, 0x28, - 0xd8, 0x96, 0x50, 0xe9, 0xfa, 0x20, 0x2a, 0x6d, 0x58, 0x7a, 0xc1, 0xb6, 0xb4, 0x5f, 0x01, 0x3c, - 0x12, 0xc3, 0xdb, 0x74, 0x90, 0xeb, 0xe2, 0x40, 0xae, 0xf8, 0x49, 0x98, 0xc4, 0xc7, 0xbe, 0x1d, - 0x9c, 0x18, 0x2d, 0x6c, 0xef, 0xb7, 0x08, 0x13, 0x30, 0xa2, 0x97, 0xf9, 0xe0, 0x3a, 0x1b, 0x53, - 0x9f, 0x85, 0xe2, 0x1e, 0xc6, 0x4c, 0xef, 0xd2, 0x92, 0x96, 0x92, 0x2d, 0x5c, 0x1c, 0x89, 0x5d, - 0xc3, 0x58, 0xa7, 0xe4, 0xaa, 0x0a, 0x23, 0x6d, 0xdc, 0xf6, 0x6a, 0xc5, 0x2b, 0xca, 0xc2, 0x45, - 0x9d, 0xfd, 0x56, 0x77, 0x60, 0x0a, 0x99, 0xa6, 0xd7, 0x71, 0x89, 0xb1, 0x1f, 0x78, 0x1d, 0xdf, - 0xb0, 0xad, 0x5a, 0x85, 0xc1, 0x3e, 0xd3, 0x07, 0x76, 0x85, 0xb3, 0xbd, 0x41, 0xb9, 0x36, 0xac, - 0xf5, 0x0b, 0x7a, 0x05, 0x25, 0x46, 0x3e, 0x51, 0x14, 0xf5, 0x55, 0x18, 0x25, 0xde, 0x01, 0x76, - 0x6b, 0x55, 0x06, 0x79, 0xad, 0x91, 0xbd, 0xbd, 0x1b, 0xdb, 0x36, 0x3e, 0x5a, 0xe9, 0x90, 0xd6, - 0x3b, 0x94, 0x78, 0x5d, 0xd1, 0x39, 0x17, 0x45, 0xd0, 0x61, 0xdc, 0xeb, 0x10, 0xbf, 0x43, 0xc2, - 0xda, 0xcc, 0x95, 0xe2, 0x42, 0x69, 0xe9, 0x85, 0x3c, 0x8c, 0x5c, 0x93, 0x36, 0xde, 0x66, 0x00, - 0xba, 0x04, 0x52, 0xef, 0xc0, 0x68, 0x78, 0x84, 0xfc, 0xb0, 0x36, 0xcf, 0x10, 0x9f, 0x1f, 0x1e, - 0x71, 0xeb, 0x08, 0xf9, 0x3a, 0x07, 0x51, 0x77, 0xa0, 0x64, 0x61, 0x07, 0xef, 0x23, 0x4a, 0x17, - 0xd6, 0x16, 0x18, 0xe6, 0xf2, 0xf0, 0x98, 0xab, 0x1c, 0x04, 0xeb, 0x71, 0x38, 0x75, 0x17, 0x26, - 0x3b, 0x6e, 0x1c, 0x7f, 0x89, 0xe1, 0xbf, 0x34, 0x3c, 0xfe, 0x3d, 0x09, 0x83, 0xf5, 0x24, 0xa4, - 0xba, 0x06, 0x25, 0x7b, 0xd7, 0x34, 0x38, 0x57, 0x58, 0x7b, 0x89, 0x49, 0xb8, 0x96, 0x72, 0x3f, - 0x3d, 0xb3, 0xdd, 0x9d, 0xbc, 0x6b, 0xae, 0xf0, 0xc3, 0x00, 0xb6, 0xfc, 0x19, 0xd6, 0x3f, 0x56, - 0x60, 0x8c, 0xdb, 0x5a, 0x5d, 0x86, 0xd1, 0x43, 0xe4, 0x74, 0xb0, 0x38, 0x1e, 0x57, 0xfb, 0xec, - 0xa5, 0x6d, 0x4a, 0xab, 0x73, 0x16, 0xf5, 0x55, 0x18, 0x47, 0x96, 0x15, 0xe0, 0x30, 0x14, 0x1b, - 0xfc, 0x7a, 0xbf, 0x9d, 0xc8, 0xa9, 0x75, 0xc9, 0x56, 0xff, 0xbd, 0x02, 0x23, 0xd4, 0x45, 0x67, - 0x52, 0x63, 0x03, 0xca, 0x04, 0x05, 0xfb, 0x98, 0x18, 0x28, 0x0c, 0x31, 0x19, 0x54, 0x17, 0x4a, - 0xbb, 0x61, 0xe9, 0x25, 0xce, 0xcb, 0x3e, 0xe5, 0x71, 0x2d, 0x0e, 0x75, 0x5c, 0xeb, 0x3f, 0x57, - 0x60, 0x42, 0x6e, 0x0a, 0xf5, 0x65, 0x18, 0x43, 0x6d, 0x7a, 0xba, 0xc4, 0x52, 0xae, 0xf5, 0xd3, - 0x83, 0x11, 0xeb, 0x82, 0x49, 0xbd, 0x0b, 0x65, 0xdb, 0xc2, 0x2e, 0xb1, 0xc9, 0x89, 0x71, 0x80, - 0x4f, 0xc4, 0x62, 0x6e, 0xf4, 0x01, 0xd9, 0x10, 0x2c, 0x6f, 0xe2, 0x13, 0xbd, 0x64, 0x77, 0x3f, - 0xea, 0xeb, 0x00, 0xdd, 0xed, 0x74, 0x16, 0x2b, 0x37, 0xa7, 0xe1, 0x92, 0x91, 0x0e, 0x40, 0xcd, - 0x09, 0x18, 0x33, 0x58, 0x04, 0xd0, 0x30, 0xd4, 0xb3, 0x76, 0xb4, 0x88, 0xc0, 0x6f, 0xc0, 0x88, - 0xef, 0x20, 0x79, 0x2d, 0xdc, 0x1e, 0xf2, 0x5a, 0xa0, 0x68, 0x3a, 0x03, 0xd0, 0x6c, 0xb8, 0x2c, - 0x36, 0x51, 0xf3, 0x64, 0xc3, 0xb5, 0xf0, 0xb1, 0x8c, 0xc6, 0x9b, 0x30, 0x29, 0x36, 0x95, 0x61, - 0xd3, 0x71, 0x21, 0xea, 0xe9, 0xc1, 0x76, 0x24, 0x87, 0x2a, 0xa3, 0xd8, 0x97, 0xf6, 0x1e, 0xcc, - 0xa6, 0x45, 0x89, 0xd5, 0xc4, 0xf6, 0xbd, 0x72, 0xaa, 0x7d, 0xaf, 0xbd, 0x0b, 0x97, 0x19, 0x64, - 0xf3, 0x44, 0x4e, 0x89, 0x65, 0x9c, 0x1d, 0xfa, 0x23, 0x05, 0x66, 0xd3, 0xd8, 0x42, 0xef, 0x7b, - 0x67, 0xb7, 0xd1, 0xfa, 0x85, 0xa4, 0x95, 0x3e, 0x51, 0x94, 0xe6, 0x14, 0x54, 0x8c, 0x04, 0xae, - 0x76, 0x00, 0x73, 0xaf, 0xfb, 0x2d, 0xdc, 0xc6, 0x01, 0x72, 0x52, 0x0b, 0x3c, 0x7f, 0x3f, 0xed, - 0x40, 0xad, 0x57, 0xd8, 0xb9, 0x79, 0xea, 0xfb, 0x30, 0xd7, 0x44, 0x0e, 0x72, 0x4d, 0xfc, 0x35, - 0xf8, 0xea, 0x67, 0x0a, 0xd4, 0x7a, 0xd1, 0x85, 0xee, 0x2f, 0xc1, 0x28, 0x8f, 0x67, 0xca, 0x50, - 0xf1, 0x8c, 0x33, 0xc5, 0xc2, 0x50, 0xe1, 0x14, 0x61, 0x48, 0xbb, 0x06, 0x93, 0x89, 0xab, 0x5e, - 0x9d, 0x81, 0x51, 0x9b, 0x1e, 0x69, 0xa6, 0x4d, 0x59, 0xe7, 0x1f, 0x9a, 0x0e, 0x55, 0x49, 0x26, - 0xad, 0xf2, 0x0a, 0x14, 0xf7, 0x0e, 0x0f, 0x84, 0xd2, 0xfd, 0x52, 0x93, 0xb5, 0x8e, 0xe3, 0x50, - 0x00, 0xdb, 0xdd, 0xa7, 0xa1, 0x8b, 0x72, 0x6a, 0x6f, 0xc3, 0x54, 0x17, 0x53, 0xd8, 0xe2, 0x45, - 0x99, 0x9e, 0x28, 0x43, 0xa4, 0x27, 0x22, 0x39, 0xd1, 0xfe, 0xa8, 0xc0, 0xe4, 0x16, 0x41, 0xa4, - 0x13, 0x79, 0xee, 0xbf, 0x3c, 0x97, 0xea, 0x17, 0x6b, 0x75, 0xa8, 0xc8, 0xf5, 0x08, 0xfb, 0x3c, - 0x0e, 0xa5, 0xf0, 0xc4, 0x35, 0x93, 0x99, 0x28, 0xd0, 0x21, 0x91, 0x87, 0x3e, 0x0e, 0x25, 0x13, - 0x11, 0xb3, 0x65, 0xbb, 0xfb, 0x46, 0xc7, 0x17, 0x79, 0x34, 0xc8, 0xa1, 0x7b, 0xbe, 0xf6, 0x85, - 0x02, 0xd3, 0x1c, 0x74, 0x8b, 0x04, 0x18, 0xb5, 0xff, 0x47, 0x4c, 0x15, 0xc0, 0x4c, 0x72, 0x55, - 0xc2, 0x60, 0xdf, 0x81, 0x47, 0x1c, 0x44, 0x70, 0x48, 0x8c, 0x03, 0xd7, 0x3b, 0x72, 0x8d, 0x5d, - 0xc7, 0x33, 0x0f, 0x92, 0xe6, 0x9b, 0xe5, 0x04, 0x6f, 0xd2, 0xf9, 0x26, 0x9d, 0xee, 0x9a, 0x32, - 0x6e, 0xeb, 0x42, 0xda, 0xd6, 0xda, 0x6f, 0x8b, 0x50, 0x7e, 0xcb, 0x23, 0x38, 0x8c, 0x55, 0x0a, - 0xb6, 0x6b, 0x3a, 0x1d, 0x0b, 0x1b, 0xa1, 0x8f, 0xc5, 0x91, 0x9c, 0xd0, 0xcb, 0x62, 0x70, 0x8b, - 0x8e, 0xa9, 0x2b, 0x30, 0xc1, 0x4e, 0x2e, 0x35, 0x70, 0x71, 0xa8, 0x13, 0x3f, 0x8e, 0xf8, 0x8f, - 0xde, 0xd8, 0x3a, 0x72, 0xc6, 0xd8, 0xaa, 0x5e, 0x87, 0x2a, 0x0f, 0x08, 0x06, 0xf1, 0x98, 0xee, - 0x56, 0x6d, 0x94, 0xad, 0x77, 0x92, 0x0f, 0xbf, 0xe3, 0x51, 0xe5, 0xad, 0x87, 0x7d, 0x97, 0x7c, - 0x51, 0x80, 0xcb, 0xcc, 0x63, 0x6b, 0x5e, 0xb0, 0xed, 0x11, 0xdb, 0xdd, 0x97, 0xae, 0xbb, 0x01, - 0x97, 0x0e, 0x3d, 0x82, 0x76, 0x1d, 0x6c, 0x20, 0x92, 0xdc, 0x1f, 0x55, 0x31, 0xb1, 0x42, 0xc4, - 0xc6, 0xe8, 0x31, 0x7f, 0xf1, 0xac, 0xe6, 0x7f, 0xc8, 0xcd, 0xfa, 0x69, 0x11, 0x2a, 0xf7, 0x6d, - 0xe2, 0xc6, 0xee, 0xcc, 0x77, 0x61, 0xca, 0xf5, 0x08, 0x36, 0x4c, 0xaf, 0xdd, 0xb6, 0x49, 0x1b, - 0xbb, 0x84, 0xd6, 0x0e, 0xb4, 0x8c, 0x69, 0xf4, 0x59, 0x11, 0x3d, 0xc6, 0xf8, 0xb5, 0x88, 0x4d, - 0xaf, 0x52, 0x9c, 0xee, 0x77, 0xa8, 0xfe, 0x00, 0xa6, 0x62, 0x89, 0xa4, 0xc1, 0xf2, 0xcd, 0xe2, - 0xe9, 0xf3, 0xcd, 0x2a, 0x49, 0x0e, 0x3c, 0xec, 0xce, 0xc0, 0x50, 0x8d, 0x7c, 0x21, 0x82, 0xa0, - 0x0e, 0xe5, 0x23, 0x3e, 0x64, 0x58, 0x88, 0xa0, 0x61, 0x9a, 0x36, 0x02, 0x6a, 0x15, 0x11, 0xa4, - 0x97, 0x8e, 0xba, 0x1f, 0xda, 0xdf, 0x14, 0x98, 0x15, 0x93, 0x2b, 0xae, 0xd5, 0xec, 0xd8, 0x8e, - 0x25, 0x7d, 0x9f, 0xe5, 0x20, 0xe5, 0x1c, 0x1d, 0x64, 0x81, 0x8a, 0x3a, 0xa4, 0xe5, 0x05, 0xf6, - 0x87, 0xac, 0x5e, 0xe6, 0x8b, 0xe2, 0xe9, 0xcf, 0x73, 0x83, 0x48, 0x58, 0x89, 0x73, 0xb3, 0xa5, - 0x5d, 0x42, 0xe9, 0x21, 0xcd, 0x81, 0xb9, 0x9e, 0xf5, 0x09, 0x7b, 0x9e, 0x7f, 0x0f, 0x4c, 0xfb, - 0x4d, 0x11, 0x26, 0x59, 0x9c, 0x8f, 0x4e, 0x50, 0x1d, 0x26, 0xf6, 0x6c, 0x87, 0xe0, 0x00, 0xf3, - 0x96, 0xd6, 0x84, 0x1e, 0x7d, 0xab, 0x3f, 0x84, 0xf9, 0xd8, 0x45, 0x63, 0xda, 0x7b, 0xb6, 0x69, - 0x58, 0xd8, 0xf5, 0xda, 0xb6, 0x2b, 0x9a, 0x12, 0xfc, 0xac, 0xf5, 0x2b, 0xfc, 0x56, 0x29, 0x8f, - 0xfe, 0x68, 0xf7, 0x7e, 0x62, 0x50, 0xab, 0x71, 0x24, 0x75, 0x19, 0x1e, 0x91, 0xb2, 0xba, 0x2d, - 0x0a, 0xbe, 0xd7, 0x42, 0x76, 0xee, 0x26, 0xf4, 0x39, 0x41, 0xb0, 0x1a, 0xcd, 0xb3, 0x5d, 0x1b, - 0xaa, 0x2f, 0x40, 0x4d, 0xf2, 0x76, 0xdc, 0x5d, 0xcf, 0xb5, 0x68, 0x5a, 0x22, 0x58, 0x47, 0x18, - 0xeb, 0xac, 0x98, 0xbf, 0x27, 0xa7, 0x05, 0xe7, 0x75, 0xa8, 0x4a, 0x4e, 0xc7, 0x37, 0xdc, 0x3d, - 0x12, 0xb2, 0x0b, 0x69, 0x42, 0x97, 0x37, 0xec, 0x1d, 0xff, 0xad, 0x3d, 0x12, 0xaa, 0x4b, 0x70, - 0x59, 0xd2, 0xf9, 0x81, 0xe7, 0x7b, 0x21, 0x72, 0x38, 0xf5, 0x18, 0xa3, 0x9e, 0x16, 0x93, 0x9b, - 0x62, 0x8e, 0xf1, 0xac, 0xc0, 0x63, 0x92, 0xe7, 0x90, 0x5d, 0x02, 0x46, 0x80, 0x4d, 0x6c, 0xfb, - 0x44, 0xaa, 0x36, 0xce, 0x78, 0xeb, 0x82, 0x48, 0x5e, 0x14, 0x8c, 0x84, 0xab, 0xa7, 0xdd, 0x81, - 0x8a, 0xf4, 0x96, 0xd8, 0x13, 0xcb, 0xc9, 0x2c, 0xfe, 0xea, 0x20, 0x77, 0xba, 0xc8, 0xe1, 0xb5, - 0x1a, 0xcc, 0xbe, 0xd6, 0x42, 0xb6, 0xbb, 0x89, 0x02, 0xd4, 0xc6, 0x04, 0x07, 0x72, 0x13, 0x68, - 0x2d, 0x98, 0xeb, 0x99, 0x11, 0x02, 0xef, 0x02, 0xf8, 0xd1, 0x68, 0x5e, 0x1a, 0xce, 0xda, 0xd0, - 0x91, 0xd0, 0x34, 0x54, 0x0c, 0x40, 0x9b, 0x85, 0x99, 0xb5, 0xbb, 0xab, 0xbd, 0x1a, 0x58, 0x70, - 0x39, 0x35, 0x2e, 0xe4, 0xbf, 0x99, 0x21, 0xff, 0xe9, 0xaf, 0x96, 0xbf, 0xd6, 0xb6, 0x72, 0xa4, - 0xff, 0xa5, 0x00, 0x73, 0xf4, 0x62, 0x6e, 0x9e, 0xc4, 0x22, 0xbf, 0x38, 0x08, 0xf7, 0xa1, 0x9a, - 0xba, 0x4a, 0xc4, 0x59, 0x1f, 0xf6, 0x26, 0xa9, 0x24, 0x6f, 0x92, 0xac, 0xbe, 0x73, 0x31, 0xab, - 0xef, 0xfc, 0xb0, 0xdf, 0x08, 0x2e, 0xd4, 0x7a, 0x6d, 0x1b, 0x5d, 0x0d, 0x15, 0x96, 0xee, 0xb1, - 0xcc, 0x87, 0xda, 0xa7, 0xd7, 0x93, 0x49, 0x2d, 0xb6, 0x24, 0x35, 0x85, 0xd4, 0xb1, 0xe9, 0x05, - 0x96, 0x3e, 0x19, 0xc6, 0x07, 0x99, 0x33, 0xb7, 0x8e, 0x90, 0x9f, 0xe3, 0xcc, 0xf0, 0x08, 0xf9, - 0xe7, 0xe0, 0x4c, 0x0a, 0xf3, 0x0d, 0x74, 0xa6, 0x0e, 0xb5, 0x5e, 0xdb, 0x46, 0xff, 0x7f, 0x8c, - 0x50, 0xab, 0x08, 0x17, 0x6a, 0xb9, 0x2e, 0x3c, 0x42, 0xbe, 0xf0, 0x1c, 0xa3, 0xd7, 0x3e, 0x2b, - 0xc0, 0xec, 0x5b, 0x1d, 0xc7, 0xb1, 0xf7, 0x6c, 0x1c, 0x24, 0x2b, 0xe8, 0x35, 0xb8, 0xe8, 0xca, - 0x19, 0xe1, 0xa9, 0x85, 0x3e, 0x66, 0x8a, 0x90, 0xf4, 0x2e, 0xeb, 0x37, 0xc6, 0x3d, 0x8b, 0x30, - 0xd7, 0x63, 0x49, 0xe1, 0x9d, 0x19, 0x18, 0xe5, 0x55, 0x21, 0xbf, 0xcd, 0xf9, 0x87, 0xf6, 0xb1, - 0x02, 0xb5, 0x58, 0x56, 0xb0, 0x8e, 0xc2, 0x56, 0xb7, 0xa0, 0xbc, 0x0e, 0xe5, 0x90, 0xa0, 0x20, - 0x59, 0x90, 0xac, 0x5f, 0xd0, 0x4b, 0x6c, 0x94, 0x97, 0x23, 0x74, 0x59, 0x1a, 0x00, 0x76, 0xad, - 0x44, 0xa5, 0xba, 0xae, 0xe8, 0x17, 0xb1, 0x6b, 0x45, 0x34, 0xcd, 0x2a, 0x4c, 0x1a, 0x71, 0xb0, - 0xe6, 0x24, 0x94, 0x8c, 0x2e, 0x97, 0x76, 0x3f, 0xf1, 0x1f, 0x98, 0xd4, 0x43, 0xe8, 0xfe, 0x04, - 0x94, 0x33, 0x2a, 0xe7, 0xd2, 0x6e, 0xac, 0x5c, 0x9e, 0x83, 0x71, 0x72, 0x6c, 0xb4, 0x50, 0xd8, - 0x62, 0x0a, 0x94, 0xf5, 0x31, 0x72, 0x4c, 0x51, 0xb4, 0xdb, 0x89, 0x05, 0x36, 0x4f, 0xe8, 0xa0, - 0x5c, 0x60, 0x8c, 0x49, 0x49, 0x30, 0xed, 0x24, 0xb4, 0x91, 0x4c, 0x42, 0x9b, 0x57, 0xa0, 0x40, - 0x8e, 0x4f, 0x9b, 0x76, 0x15, 0xc8, 0xb1, 0xf6, 0x91, 0x02, 0xd3, 0xb1, 0xb1, 0xff, 0x88, 0xbd, - 0x7f, 0xaa, 0xc0, 0x4c, 0x52, 0x87, 0xb3, 0xdb, 0x5a, 0x58, 0xa6, 0x78, 0x7a, 0xcb, 0xbc, 0x00, - 0x8f, 0xc5, 0xf3, 0x6f, 0x1c, 0xd0, 0xfc, 0x92, 0xd8, 0x87, 0xb8, 0xaf, 0xc7, 0xfe, 0xa9, 0xc0, - 0x7c, 0x1e, 0xab, 0x58, 0xd9, 0x1d, 0x28, 0x92, 0x63, 0x19, 0x9e, 0x96, 0x87, 0xad, 0x05, 0x62, - 0x80, 0x14, 0x46, 0xac, 0xb5, 0x70, 0xea, 0xb5, 0xaa, 0xaf, 0x53, 0x75, 0x0e, 0x4f, 0x59, 0x3b, - 0xd2, 0x08, 0x41, 0xf5, 0x38, 0xd4, 0xde, 0x87, 0x49, 0xd1, 0x05, 0x8a, 0x96, 0x59, 0x62, 0x09, - 0x4b, 0xc0, 0x62, 0xec, 0x69, 0x2e, 0x54, 0x70, 0xa3, 0xdf, 0xda, 0xef, 0x14, 0x98, 0x4d, 0xf7, - 0x2c, 0xbe, 0x0e, 0x41, 0xe7, 0xfc, 0x8f, 0x94, 0xf6, 0xaf, 0x22, 0x4c, 0x67, 0x88, 0xcc, 0x4a, - 0xe7, 0x94, 0x73, 0x49, 0xe7, 0xbe, 0x0d, 0x23, 0x2c, 0x81, 0xe1, 0x7a, 0x3f, 0xd9, 0xef, 0x96, - 0xa2, 0x1a, 0x31, 0x86, 0xaf, 0xa1, 0x9f, 0x93, 0xb8, 0x35, 0x47, 0x4e, 0x7f, 0x6b, 0x5e, 0x83, - 0x0a, 0x0f, 0x02, 0x86, 0x19, 0x60, 0x44, 0x70, 0xd4, 0x95, 0xe3, 0xa3, 0xaf, 0xf1, 0x41, 0x1a, - 0xb6, 0x04, 0x19, 0xbf, 0x60, 0xc6, 0x64, 0xd8, 0xe2, 0xa3, 0xac, 0xef, 0x48, 0xc3, 0x56, 0x1d, - 0x26, 0x7c, 0x2f, 0xb4, 0xd9, 0xed, 0x3b, 0xce, 0x80, 0xa2, 0x6f, 0xf5, 0x55, 0x18, 0x0b, 0xbd, - 0x4e, 0x60, 0xe2, 0xda, 0x44, 0xb6, 0xbe, 0xc9, 0x54, 0x9e, 0x9a, 0x6f, 0x8b, 0xd1, 0xeb, 0x82, - 0x8f, 0x05, 0xbc, 0xb8, 0x1a, 0xda, 0x5f, 0x8b, 0x00, 0xdd, 0x5c, 0x23, 0x2b, 0xf5, 0x53, 0xce, - 0x25, 0xf5, 0x7b, 0x59, 0xa4, 0x3d, 0xdc, 0xf1, 0xff, 0x9f, 0x42, 0xb3, 0xf0, 0x71, 0x32, 0xf5, - 0xd9, 0x74, 0x90, 0xed, 0x12, 0x7c, 0x4c, 0x78, 0xf6, 0x93, 0xb0, 0x4a, 0x31, 0x65, 0x95, 0xf3, - 0x72, 0xe4, 0x26, 0x94, 0xf8, 0x5b, 0x07, 0xde, 0xab, 0x18, 0xcd, 0x0c, 0x5a, 0x09, 0x4d, 0x9b, - 0x88, 0x98, 0x2d, 0xaa, 0x2e, 0xff, 0xff, 0x9e, 0x75, 0x29, 0xc0, 0x8b, 0x7e, 0xab, 0x37, 0xba, - 0x5b, 0xc3, 0x41, 0x76, 0x1b, 0x5b, 0x91, 0xd7, 0xe5, 0xe6, 0xe0, 0xc3, 0x3c, 0xeb, 0x91, 0xbe, - 0x1d, 0x3f, 0xa5, 0x6f, 0x2f, 0x41, 0xd5, 0x48, 0x8a, 0x5b, 0xfa, 0xd3, 0x34, 0x4c, 0xd3, 0x20, - 0xb8, 0x19, 0x78, 0xc4, 0x33, 0x3d, 0x67, 0x0b, 0x07, 0x87, 0xb6, 0x89, 0xd5, 0xfb, 0x30, 0xc6, - 0x13, 0x1f, 0x35, 0x37, 0xbb, 0x4a, 0xa4, 0x98, 0xf5, 0xeb, 0xfd, 0xc8, 0x44, 0xb4, 0x3b, 0x80, - 0x72, 0xbc, 0xc5, 0xaf, 0x3e, 0xfd, 0xd5, 0x7c, 0x89, 0xbf, 0x37, 0xea, 0xdf, 0x1a, 0x8c, 0x98, - 0x8b, 0xba, 0xa9, 0xa8, 0xdb, 0x30, 0xca, 0x82, 0xae, 0x7a, 0x35, 0x8f, 0x31, 0xde, 0xf9, 0xaf, - 0x5f, 0xeb, 0x43, 0x15, 0xe1, 0x7e, 0x00, 0x95, 0x64, 0x30, 0x57, 0x9f, 0xf9, 0x4a, 0xd6, 0x74, - 0xa3, 0xba, 0xde, 0x18, 0x94, 0x3c, 0x12, 0xf9, 0x1e, 0x8c, 0x8b, 0x46, 0x96, 0x9a, 0x6b, 0xea, - 0x64, 0xf7, 0xb6, 0xfe, 0x54, 0x5f, 0x3a, 0xe1, 0x93, 0x20, 0x6a, 0x36, 0xca, 0x26, 0x99, 0xda, - 0xe8, 0xc3, 0x9b, 0xea, 0x16, 0xd6, 0x17, 0x07, 0xa6, 0x17, 0x32, 0xdf, 0x85, 0x31, 0xde, 0x7b, - 0xc9, 0xdf, 0x60, 0x89, 0x4e, 0x5a, 0xfe, 0x06, 0x4b, 0xb6, 0x70, 0x6e, 0x2a, 0x74, 0x39, 0xa9, - 0x1e, 0x49, 0xfe, 0x72, 0xb2, 0x3b, 0x36, 0xf9, 0xcb, 0xc9, 0xeb, 0xe3, 0x38, 0x30, 0x99, 0x68, - 0xb0, 0xa8, 0xb9, 0x5b, 0x35, 0xab, 0x3f, 0x53, 0x7f, 0x66, 0x40, 0x6a, 0x21, 0xcd, 0x83, 0x4a, - 0xf2, 0xb1, 0x43, 0xfe, 0xfe, 0xcb, 0x7c, 0x7f, 0x91, 0xbf, 0xff, 0x72, 0xde, 0x50, 0x78, 0x50, - 0x49, 0xbe, 0x52, 0xc8, 0x17, 0x98, 0xf9, 0x52, 0x22, 0x5f, 0x60, 0xce, 0xe3, 0x87, 0x0e, 0x4c, - 0xa5, 0x9f, 0x09, 0xa8, 0xb9, 0x4e, 0xc9, 0x79, 0xbd, 0x50, 0xbf, 0x39, 0x38, 0x83, 0x10, 0x7b, - 0x04, 0x53, 0xe9, 0x7f, 0xf8, 0xf3, 0xc5, 0xe6, 0xbc, 0x34, 0xc8, 0x17, 0x9b, 0xf7, 0x78, 0xe0, - 0xa6, 0x42, 0xd7, 0x9b, 0xee, 0xee, 0xe4, 0x0b, 0xce, 0xe9, 0xb1, 0xe5, 0x0b, 0xce, 0x6d, 0x1c, - 0x75, 0x60, 0x2a, 0xdd, 0x87, 0xc8, 0x17, 0x9b, 0xd3, 0x0d, 0xca, 0x17, 0x9b, 0xdb, 0xe2, 0x08, - 0xa0, 0x9a, 0xaa, 0xaf, 0xf3, 0x4f, 0x68, 0x76, 0x4b, 0x23, 0xff, 0x84, 0xe6, 0x15, 0xee, 0x1f, - 0xc2, 0xa5, 0x9e, 0xca, 0x58, 0xbd, 0x39, 0xc0, 0x7b, 0xbf, 0x44, 0x31, 0x5f, 0xbf, 0x35, 0x04, - 0x47, 0xe4, 0xdd, 0xe3, 0x84, 0x6c, 0x5e, 0x07, 0x0f, 0x24, 0x3b, 0x51, 0x67, 0x0f, 0x24, 0x3b, - 0x55, 0x64, 0x1f, 0x40, 0x39, 0x5e, 0x9e, 0xe6, 0x5f, 0xb7, 0x19, 0x85, 0x74, 0xfe, 0x75, 0x9b, - 0x55, 0xf1, 0xde, 0x54, 0xd4, 0x1f, 0x2b, 0x30, 0x9b, 0x5d, 0xeb, 0xa9, 0xcf, 0x0d, 0xf2, 0xb0, - 0xb2, 0xa7, 0x4e, 0xad, 0x3f, 0x3f, 0x2c, 0x9b, 0x58, 0xf6, 0x8f, 0x40, 0xed, 0x7d, 0xdf, 0xa6, - 0xde, 0x1a, 0xfa, 0x75, 0x67, 0x7d, 0x69, 0x18, 0x16, 0x21, 0xfc, 0x23, 0x05, 0x66, 0xb2, 0x5e, - 0x38, 0xab, 0xb7, 0x73, 0x03, 0x43, 0xfe, 0x53, 0xed, 0xfa, 0xb3, 0xc3, 0x31, 0x71, 0x1d, 0x96, - 0xfc, 0xee, 0x53, 0x1f, 0x99, 0xd2, 0xbd, 0x0f, 0x13, 0x72, 0x48, 0x7d, 0xaa, 0x5f, 0xcb, 0x4c, - 0x4a, 0x5f, 0xe8, 0x4f, 0xc8, 0x25, 0x36, 0x3f, 0x2d, 0x7c, 0xf6, 0x60, 0x5e, 0xf9, 0xfc, 0xc1, - 0xbc, 0xf2, 0xf7, 0x07, 0xf3, 0xca, 0x4f, 0xbe, 0x9c, 0xbf, 0xf0, 0xf9, 0x97, 0xf3, 0x17, 0xfe, - 0xfc, 0xe5, 0xfc, 0x05, 0xa8, 0x9b, 0x5e, 0x3b, 0x07, 0xa7, 0x79, 0x31, 0xca, 0x3e, 0x37, 0x95, - 0xf7, 0xde, 0xde, 0xb7, 0x49, 0xab, 0xb3, 0xdb, 0x30, 0xbd, 0xf6, 0xa2, 0xe9, 0x85, 0x6d, 0x2f, - 0x5c, 0x0c, 0xb0, 0x83, 0x4e, 0x70, 0xb0, 0x78, 0xb8, 0x14, 0xfd, 0x64, 0x89, 0x6e, 0xb8, 0x98, - 0xfd, 0xea, 0xff, 0x45, 0xfa, 0x25, 0x3f, 0x7e, 0x59, 0x28, 0x6e, 0x6e, 0x7f, 0xef, 0xd7, 0x85, - 0xd9, 0x4d, 0x29, 0x9c, 0x4a, 0x6b, 0x6c, 0x8b, 0xe9, 0x3f, 0x74, 0x27, 0x76, 0xe8, 0xc4, 0x8e, - 0x9c, 0x78, 0x50, 0xd0, 0xb2, 0x27, 0x76, 0xde, 0xd8, 0x6c, 0xde, 0xc5, 0x04, 0xd1, 0xfc, 0xff, - 0x1f, 0x85, 0x9a, 0x24, 0x5a, 0x5e, 0xa6, 0x54, 0xcb, 0xcb, 0x92, 0x6c, 0x77, 0x8c, 0x3d, 0xc3, - 0xbf, 0xfd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbd, 0x21, 0xb6, 0x6c, 0x9b, 0x30, 0x00, 0x00, + // 2695 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0xcd, 0x73, 0x23, 0x47, + 0x15, 0xf7, 0x48, 0xfe, 0x7c, 0xb2, 0x24, 0x6f, 0xaf, 0x3f, 0x14, 0x25, 0x71, 0x96, 0xc9, 0x7e, + 0x38, 0x1b, 0x22, 0x6f, 0x9c, 0x4d, 0x08, 0x4e, 0x52, 0xc4, 0x8a, 0xf1, 0xda, 0x95, 0xdd, 0xc4, + 0x8c, 0xb3, 0x0e, 0x49, 0x1c, 0xa6, 0xda, 0x33, 0x6d, 0x6b, 0xf0, 0x68, 0x66, 0x32, 0xd3, 0xb2, + 0x6c, 0x38, 0x85, 0x4a, 0x51, 0x5b, 0x39, 0x50, 0xdc, 0x80, 0x2b, 0x47, 0x8a, 0x2b, 0x57, 0x2e, + 0x5c, 0x28, 0x4e, 0x39, 0x52, 0x45, 0x41, 0x51, 0x9b, 0xe2, 0x02, 0xff, 0x02, 0x55, 0x50, 0xfd, + 0x31, 0xa3, 0x99, 0x91, 0x66, 0x25, 0xd9, 0xde, 0x5a, 0x38, 0x49, 0xdd, 0xfd, 0xde, 0xef, 0xbd, + 0x7e, 0xdd, 0xfd, 0xfa, 0xbd, 0xd7, 0x03, 0xdf, 0xf0, 0x88, 0xd3, 0x6a, 0xee, 0xfb, 0x78, 0xf9, + 0xd8, 0x22, 0xed, 0xe5, 0xe3, 0x97, 0xb1, 0xed, 0x35, 0xf0, 0xcb, 0xbc, 0x55, 0xf3, 0x7c, 0x97, + 0xba, 0x68, 0x3e, 0x24, 0xa9, 0xf1, 0xce, 0x90, 0xa4, 0xba, 0x14, 0xb1, 0x1a, 0xae, 0x4f, 0x96, + 0x8d, 0x06, 0xb6, 0x9c, 0x0e, 0x00, 0x6f, 0x0a, 0x84, 0xea, 0xcd, 0x14, 0xa5, 0x7f, 0xea, 0x51, + 0x37, 0x46, 0xca, 0xdb, 0x92, 0xf6, 0x6a, 0x92, 0xd6, 0x24, 0x27, 0x1d, 0x42, 0x93, 0x9c, 0x48, + 0xaa, 0xdb, 0x49, 0x2a, 0xea, 0x63, 0x27, 0xc0, 0x06, 0xb5, 0xdc, 0x98, 0x06, 0xb1, 0xce, 0xde, + 0xd8, 0xd6, 0xbe, 0xd1, 0xa1, 0xb6, 0xf6, 0x0d, 0x41, 0xa5, 0xfe, 0x4a, 0x81, 0xa7, 0xeb, 0xbe, + 0x8b, 0x4d, 0x03, 0x07, 0xf4, 0x83, 0x0e, 0x88, 0x46, 0x3e, 0x6b, 0x91, 0x80, 0xa2, 0xef, 0x41, + 0x21, 0x06, 0x5d, 0x51, 0xae, 0x28, 0x4b, 0x85, 0x95, 0xe5, 0x5a, 0x64, 0x25, 0x86, 0x5d, 0x8b, + 0x0b, 0x0f, 0x65, 0xd4, 0xe2, 0x60, 0x71, 0x0c, 0x74, 0x03, 0xca, 0xb8, 0x8d, 0x2d, 0xaa, 0x9b, + 0x84, 0x12, 0x01, 0x9b, 0xbb, 0xa2, 0x2c, 0x4d, 0x6a, 0x25, 0xde, 0xbd, 0x1e, 0xf6, 0xaa, 0x9f, + 0x2b, 0xf0, 0x4c, 0x6f, 0xdd, 0x02, 0xcf, 0x75, 0x02, 0x82, 0x5e, 0x83, 0x9c, 0x65, 0x4a, 0x9d, + 0xae, 0x0f, 0xa2, 0xd3, 0x96, 0xa9, 0xe5, 0x2c, 0x13, 0xbd, 0x00, 0x33, 0x91, 0x6c, 0xbd, 0x41, + 0xac, 0xc3, 0x06, 0xe5, 0x2a, 0x8c, 0x6a, 0xe5, 0xa8, 0x7f, 0x93, 0x77, 0xab, 0x7f, 0x9d, 0x82, + 0xa7, 0x62, 0xa2, 0xb7, 0x6d, 0xec, 0x38, 0xc4, 0x0f, 0xad, 0xf3, 0x3c, 0x14, 0xc9, 0x89, 0x67, + 0xf9, 0xa7, 0x21, 0x8a, 0xc2, 0x51, 0xa6, 0x45, 0xa7, 0x80, 0x40, 0xb7, 0x21, 0x7f, 0x40, 0x08, + 0x17, 0x50, 0x58, 0x51, 0x53, 0x6a, 0xca, 0xed, 0x10, 0x69, 0xb8, 0x41, 0x88, 0xc6, 0xc8, 0x11, + 0x82, 0xd1, 0x26, 0x69, 0xba, 0x95, 0xfc, 0x15, 0x65, 0x69, 0x4a, 0xe3, 0xff, 0xd1, 0x1e, 0xcc, + 0x60, 0xc3, 0x70, 0x5b, 0x0e, 0xd5, 0x0f, 0x7d, 0xb7, 0xe5, 0xe9, 0x96, 0x59, 0x29, 0x71, 0xd8, + 0x97, 0xfa, 0xc0, 0xae, 0x09, 0xb6, 0x3b, 0x8c, 0x6b, 0xcb, 0xdc, 0x1c, 0xd1, 0x4a, 0x38, 0xd1, + 0xf3, 0x40, 0x51, 0x90, 0x06, 0x13, 0x6e, 0x8b, 0x7a, 0x2d, 0x1a, 0x54, 0x66, 0xaf, 0xe4, 0x97, + 0x0a, 0x2b, 0xaf, 0xd7, 0x7a, 0x1f, 0x86, 0x5a, 0xa6, 0x41, 0x6a, 0xef, 0x73, 0x00, 0x2d, 0x04, + 0x42, 0x77, 0x61, 0x2c, 0x68, 0x63, 0x2f, 0xa8, 0x2c, 0x72, 0xc4, 0xd7, 0x86, 0x47, 0xdc, 0x69, + 0x63, 0x4f, 0x13, 0x20, 0x68, 0x0f, 0x0a, 0x26, 0xb1, 0xc9, 0x21, 0x66, 0x74, 0x41, 0x65, 0x89, + 0x63, 0xae, 0x0e, 0x8f, 0xb9, 0x2e, 0x40, 0x88, 0x16, 0x87, 0x43, 0xfb, 0x50, 0x6c, 0x39, 0x71, + 0xfc, 0x15, 0x8e, 0xff, 0xe6, 0xf0, 0xf8, 0xf7, 0x43, 0x18, 0xa2, 0x25, 0x21, 0xd1, 0x06, 0x14, + 0xac, 0x7d, 0x43, 0x17, 0x5c, 0x41, 0xe5, 0x4d, 0x2e, 0xe1, 0x5a, 0x6a, 0xf1, 0xd8, 0xe9, 0xec, + 0x6c, 0xd9, 0x7d, 0x63, 0x4d, 0xec, 0x7a, 0xb0, 0xc2, 0xbf, 0x41, 0xf5, 0xa7, 0x0a, 0x8c, 0x0b, + 0x5b, 0xa3, 0x55, 0x18, 0x3b, 0xc6, 0x76, 0x8b, 0xc8, 0x73, 0x70, 0xb5, 0xcf, 0x4e, 0xd8, 0x65, + 0xb4, 0x9a, 0x60, 0x41, 0x6f, 0xc3, 0x04, 0x36, 0x4d, 0x9f, 0x04, 0x81, 0xdc, 0x9e, 0xd7, 0xfb, + 0xed, 0x23, 0x41, 0xad, 0x85, 0x6c, 0xd5, 0x3f, 0x28, 0x30, 0xca, 0x96, 0xe8, 0x5c, 0x6a, 0x6c, + 0xc1, 0x34, 0xc5, 0xfe, 0x21, 0xa1, 0x3a, 0x0e, 0x02, 0x42, 0x07, 0xd5, 0x85, 0xd1, 0x6e, 0x99, + 0x5a, 0x41, 0xf0, 0xf2, 0x66, 0x78, 0xd8, 0xf2, 0x43, 0x1d, 0xb6, 0xea, 0x2f, 0x15, 0x98, 0x0c, + 0x37, 0x05, 0x7a, 0x0b, 0xc6, 0x71, 0x93, 0x9d, 0x0d, 0x39, 0x95, 0x6b, 0xfd, 0xf4, 0xe0, 0xc4, + 0x9a, 0x64, 0x42, 0xf7, 0x60, 0xda, 0x32, 0x89, 0x43, 0x2d, 0x7a, 0xaa, 0x1f, 0x91, 0x53, 0x39, + 0x99, 0x9b, 0x7d, 0x40, 0xb6, 0x24, 0xcb, 0xbb, 0xe4, 0x54, 0x2b, 0x58, 0x9d, 0x46, 0x75, 0x13, + 0xa0, 0xb3, 0x9d, 0xce, 0x63, 0xe5, 0xfa, 0x65, 0xb8, 0xa4, 0xa7, 0xdd, 0x87, 0x4a, 0xa0, 0xda, + 0x6b, 0x1f, 0x4b, 0x07, 0x7b, 0x07, 0x46, 0x3d, 0x1b, 0x87, 0x6e, 0xff, 0x95, 0x21, 0xdd, 0x3e, + 0x43, 0xd3, 0x38, 0x80, 0x6a, 0xc1, 0x9c, 0xdc, 0x3a, 0xf5, 0xd3, 0x2d, 0xc7, 0x24, 0x27, 0xa1, + 0x07, 0xdd, 0x86, 0xa2, 0xdc, 0x4a, 0xba, 0xc5, 0xfa, 0xa5, 0xa8, 0x17, 0x07, 0xdb, 0x87, 0x02, + 0x6a, 0x1a, 0xc7, 0x5a, 0xea, 0xc7, 0x30, 0x9f, 0x16, 0x25, 0x67, 0x13, 0xdb, 0xed, 0xca, 0x99, + 0x76, 0xbb, 0xfa, 0x11, 0xcc, 0x71, 0xc8, 0xfa, 0x69, 0x38, 0x24, 0xa7, 0x71, 0x7e, 0xe8, 0xcf, + 0x15, 0x98, 0x4f, 0x63, 0x4b, 0xbd, 0xef, 0x9f, 0xdf, 0x46, 0x9b, 0x23, 0x49, 0x2b, 0x3d, 0x50, + 0x94, 0xfa, 0x0c, 0x94, 0xf4, 0x04, 0xae, 0x7a, 0x04, 0x0b, 0xdf, 0xf5, 0x1a, 0xa4, 0x49, 0x7c, + 0x6c, 0xa7, 0x26, 0x78, 0xf1, 0xeb, 0xb4, 0x07, 0x95, 0x6e, 0x61, 0x17, 0xb6, 0x52, 0x9f, 0xc0, + 0x42, 0x1d, 0xdb, 0xd8, 0x31, 0xc8, 0x63, 0x58, 0xab, 0x5f, 0x28, 0x50, 0xe9, 0x46, 0x97, 0xba, + 0xbf, 0x09, 0x63, 0xc2, 0x8b, 0x29, 0x43, 0x79, 0x31, 0xc1, 0x14, 0x73, 0x3e, 0xb9, 0x33, 0x38, + 0x1f, 0xf5, 0x1a, 0x14, 0x77, 0x2d, 0xd2, 0x5e, 0x6b, 0xd1, 0xc6, 0x07, 0xee, 0x11, 0x71, 0xd0, + 0x2c, 0x8c, 0x59, 0xec, 0x48, 0x73, 0x6d, 0xa6, 0x35, 0xd1, 0x50, 0x35, 0x28, 0x87, 0x64, 0xa1, + 0x55, 0xbe, 0x03, 0xf9, 0x83, 0xe3, 0x23, 0xa9, 0x74, 0xbf, 0x70, 0x62, 0xa3, 0x65, 0xdb, 0x0c, + 0xc0, 0x72, 0x0e, 0x99, 0xc3, 0x62, 0x9c, 0xea, 0xfb, 0x30, 0xd3, 0xc1, 0x94, 0xb6, 0x78, 0x03, + 0xc6, 0x28, 0x53, 0xa3, 0xdb, 0x93, 0x26, 0xaf, 0xd2, 0x84, 0xce, 0x9a, 0xe0, 0x51, 0x7f, 0xa2, + 0x40, 0x71, 0x87, 0x62, 0xda, 0x8a, 0x56, 0xee, 0xb1, 0xc6, 0x3f, 0xbd, 0xfd, 0xa3, 0x06, 0xa5, + 0x50, 0x07, 0x39, 0xa7, 0xe7, 0xa0, 0x10, 0x9c, 0x3a, 0x46, 0x32, 0xe2, 0x03, 0xd6, 0x25, 0xe3, + 0xbd, 0xe7, 0xa0, 0x60, 0x60, 0x6a, 0x34, 0x2c, 0xe7, 0x50, 0x6f, 0x79, 0x32, 0xb6, 0x85, 0xb0, + 0xeb, 0xbe, 0xa7, 0x3e, 0x50, 0xe0, 0xb2, 0x00, 0xdd, 0xa1, 0x3e, 0xc1, 0xcd, 0x27, 0x38, 0x3d, + 0x1f, 0x66, 0x93, 0x9a, 0xc8, 0x49, 0x7e, 0x1b, 0x9e, 0xb2, 0x31, 0x25, 0x01, 0xd5, 0x8f, 0x1c, + 0xb7, 0xed, 0xe8, 0xfb, 0xb6, 0x6b, 0x1c, 0x25, 0xa7, 0x3c, 0x2f, 0x08, 0xde, 0x65, 0xe3, 0x75, + 0x36, 0xdc, 0x99, 0x7e, 0xdc, 0x3e, 0xb9, 0xb4, 0x7d, 0xd4, 0x2f, 0xf3, 0x30, 0xfd, 0x9e, 0x4b, + 0x49, 0x10, 0x8b, 0xa2, 0x2d, 0xc7, 0xb0, 0x5b, 0x26, 0xd1, 0x03, 0x8f, 0xc8, 0xad, 0x3f, 0xa9, + 0x4d, 0xcb, 0xce, 0x1d, 0xd6, 0x87, 0xd6, 0x60, 0x92, 0x9f, 0x10, 0x66, 0x94, 0xfc, 0x50, 0x27, + 0x6b, 0x02, 0x8b, 0x3f, 0xdd, 0x3e, 0x6c, 0xf4, 0x9c, 0x3e, 0x0c, 0xdd, 0x83, 0xb2, 0x38, 0x78, + 0x3a, 0x75, 0xb9, 0xee, 0x66, 0x65, 0x7c, 0x98, 0x63, 0x5b, 0x14, 0xdc, 0x1f, 0xb8, 0x6c, 0x8e, + 0xe6, 0x93, 0xd8, 0x00, 0x0f, 0x72, 0x30, 0xc7, 0x17, 0x63, 0xc3, 0xf5, 0x77, 0x5d, 0x6a, 0x39, + 0x87, 0xe1, 0xaa, 0xdc, 0x84, 0x4b, 0xc7, 0x2e, 0xc5, 0xfb, 0x36, 0xd1, 0x31, 0x4d, 0x2e, 0x7d, + 0x59, 0x0e, 0xac, 0x51, 0xb9, 0xe6, 0x5d, 0x96, 0xcd, 0x9f, 0xd7, 0xb2, 0x4f, 0xc0, 0x14, 0xbf, + 0xcf, 0x41, 0xe9, 0x43, 0x8b, 0x3a, 0xb1, 0xab, 0xe2, 0x23, 0x98, 0x71, 0x5c, 0x4a, 0x74, 0xc3, + 0x6d, 0x36, 0x2d, 0xda, 0x24, 0x0e, 0x65, 0x81, 0x32, 0x8b, 0xd9, 0x6b, 0x7d, 0xb4, 0x60, 0xa7, + 0x8a, 0xbc, 0x13, 0xb1, 0x69, 0x65, 0x86, 0xd3, 0x69, 0x07, 0xe8, 0x07, 0x30, 0x13, 0x8b, 0x9f, + 0x74, 0x1e, 0x66, 0xe5, 0xcf, 0x1e, 0x66, 0x95, 0x69, 0xb2, 0xe3, 0x49, 0x18, 0x90, 0x40, 0x39, + 0xb2, 0x9f, 0xf4, 0x23, 0x1a, 0x4c, 0xb7, 0x45, 0x97, 0x6e, 0x62, 0x8a, 0x87, 0xa9, 0x1f, 0x48, + 0xa8, 0x75, 0x4c, 0xb1, 0x56, 0x68, 0x77, 0x1a, 0xea, 0xdf, 0x14, 0x98, 0x97, 0x83, 0x6b, 0x8e, + 0x59, 0x6f, 0x59, 0xb6, 0x19, 0xae, 0x57, 0x2f, 0xa3, 0x2a, 0x17, 0x68, 0x54, 0x13, 0x10, 0x6e, + 0xd1, 0x86, 0xeb, 0x5b, 0x3f, 0xe2, 0x09, 0x9d, 0x98, 0x94, 0xb8, 0xa9, 0x5f, 0x1d, 0x44, 0xc2, + 0x5a, 0x9c, 0x9b, 0x4f, 0xed, 0x12, 0x4e, 0x77, 0xa9, 0x36, 0x2c, 0x74, 0xcd, 0x4f, 0xda, 0xf3, + 0xe2, 0xcb, 0x31, 0xea, 0x6f, 0xf3, 0x50, 0xe4, 0xae, 0x32, 0xda, 0xf5, 0x55, 0x98, 0x3c, 0xb0, + 0x6c, 0x4a, 0x7c, 0x22, 0x8a, 0x2b, 0x93, 0x5a, 0xd4, 0x46, 0x3f, 0x84, 0xc5, 0x98, 0xaf, 0x36, + 0xac, 0x03, 0xcb, 0xd0, 0x4d, 0xe2, 0xb8, 0x4d, 0xcb, 0x91, 0x59, 0xb3, 0x38, 0x1f, 0xfd, 0x32, + 0x93, 0x75, 0xc6, 0xa3, 0x3d, 0xd3, 0x71, 0xf1, 0x1c, 0x6a, 0x3d, 0x8e, 0x84, 0x56, 0xe1, 0xa9, + 0x50, 0x56, 0x27, 0x87, 0xd6, 0x79, 0x70, 0x10, 0xf0, 0xb3, 0x32, 0xa9, 0x2d, 0x48, 0x82, 0xf5, + 0x68, 0x9c, 0x87, 0x10, 0x01, 0x7a, 0x1d, 0x2a, 0x21, 0x6f, 0xcb, 0xd9, 0x77, 0x1d, 0x93, 0xdd, + 0xc6, 0x92, 0x75, 0x94, 0xb3, 0xce, 0xcb, 0xf1, 0xfb, 0xe1, 0xb0, 0xe4, 0xbc, 0x0e, 0xe5, 0x90, + 0xd3, 0xf6, 0x74, 0xe7, 0x80, 0x06, 0x95, 0x31, 0xce, 0x10, 0x5e, 0x52, 0x77, 0xbd, 0xf7, 0x0e, + 0x68, 0x80, 0x56, 0x60, 0x2e, 0xa4, 0xf3, 0x7c, 0xd7, 0x73, 0x03, 0x6c, 0x0b, 0xea, 0x71, 0x4e, + 0x7d, 0x59, 0x0e, 0x6e, 0xcb, 0x31, 0xce, 0xb3, 0x06, 0xcf, 0x86, 0x3c, 0xc7, 0xdc, 0xd9, 0xea, + 0x3e, 0x31, 0x88, 0xe5, 0xd1, 0x50, 0xb5, 0x09, 0xce, 0x5b, 0x95, 0x44, 0xa1, 0x43, 0xe6, 0x24, + 0x42, 0x3d, 0xf5, 0x2e, 0x94, 0xc2, 0xd5, 0x92, 0x7b, 0x62, 0x35, 0x19, 0x70, 0x5e, 0x1d, 0xe4, + 0x5a, 0x94, 0xe1, 0xa6, 0x5a, 0x81, 0xf9, 0x77, 0x1a, 0xd8, 0x72, 0xb6, 0xb1, 0x8f, 0x9b, 0x84, + 0x12, 0x3f, 0xdc, 0x04, 0x6a, 0x03, 0x16, 0xba, 0x46, 0xa4, 0xc0, 0x7b, 0x00, 0x5e, 0xd4, 0x9b, + 0x15, 0x31, 0xf2, 0x8a, 0x68, 0x24, 0x34, 0x0d, 0x15, 0x03, 0x50, 0xe7, 0x61, 0x76, 0xe3, 0xde, + 0x7a, 0xb7, 0x06, 0x26, 0xcc, 0xa5, 0xfa, 0xa5, 0xfc, 0x77, 0x7b, 0xc8, 0x7f, 0xf1, 0xd1, 0xf2, + 0x37, 0x9a, 0x66, 0x86, 0xf4, 0x9f, 0xe5, 0x60, 0x81, 0x5d, 0x80, 0xf5, 0xd3, 0x98, 0xb7, 0x96, + 0x07, 0xe1, 0x43, 0x28, 0xa7, 0xdc, 0xbf, 0x3c, 0xeb, 0xc3, 0x7a, 0xff, 0x52, 0xd2, 0xfb, 0xf7, + 0x2a, 0x81, 0xe6, 0x7b, 0x95, 0x40, 0x9f, 0x84, 0x17, 0x77, 0xa0, 0xd2, 0x6d, 0x8f, 0xc8, 0x9d, + 0x97, 0x78, 0x94, 0xc3, 0xa3, 0x02, 0x36, 0xa7, 0x6e, 0xeb, 0x27, 0x03, 0xfb, 0x9d, 0x90, 0x9a, + 0x41, 0x6a, 0xc4, 0x70, 0x7d, 0x53, 0x2b, 0x06, 0xf1, 0x4e, 0xbe, 0x00, 0x3b, 0x6d, 0xec, 0x65, + 0x2c, 0x40, 0xd0, 0xc6, 0xde, 0x05, 0x2c, 0x00, 0x83, 0xf9, 0x3f, 0x59, 0x00, 0x0d, 0x2a, 0xdd, + 0xf6, 0x88, 0x2a, 0xde, 0xa3, 0x6c, 0x26, 0xd2, 0xec, 0x6a, 0xa6, 0xd9, 0xdb, 0xd8, 0x93, 0xd6, + 0xe6, 0xf4, 0xea, 0xbf, 0x15, 0x98, 0x7f, 0xaf, 0x65, 0xdb, 0xd6, 0x81, 0x45, 0xfc, 0x64, 0x52, + 0xb5, 0x01, 0x53, 0x4e, 0x38, 0x22, 0xad, 0xbb, 0xd4, 0x67, 0x6a, 0x11, 0x92, 0xd6, 0x61, 0xfd, + 0x9f, 0x36, 0xe9, 0x32, 0x2c, 0x74, 0xcd, 0x5e, 0x5a, 0x74, 0x16, 0xc6, 0x44, 0xd2, 0x21, 0x6e, + 0x3a, 0xd1, 0x50, 0x77, 0xe1, 0x99, 0xd8, 0x85, 0xb9, 0xe5, 0x1c, 0xb8, 0xf5, 0xd3, 0x4d, 0x1c, + 0x44, 0xd9, 0xb2, 0x78, 0x79, 0xc8, 0x0d, 0xfb, 0xf2, 0xa0, 0x7e, 0xa1, 0xc0, 0x7c, 0x0a, 0x38, + 0x84, 0xbc, 0x0e, 0xd3, 0x01, 0xc5, 0x7e, 0x32, 0xd4, 0xde, 0x1c, 0xd1, 0x0a, 0xbc, 0x57, 0x04, + 0xda, 0x0f, 0x14, 0x05, 0xa9, 0x00, 0xc4, 0x31, 0x13, 0xe9, 0xd5, 0xa6, 0xa2, 0x4d, 0x11, 0xc7, + 0x8c, 0x68, 0xea, 0x65, 0x28, 0xea, 0x71, 0xb0, 0x7a, 0x11, 0x0a, 0x7a, 0x87, 0x4b, 0xfd, 0x57, + 0x0e, 0xca, 0x29, 0x35, 0xd0, 0xd3, 0x30, 0x9e, 0x92, 0x2c, 0xdb, 0x4c, 0xe8, 0x19, 0xe7, 0x9b, + 0x8e, 0x57, 0xf2, 0x17, 0xf0, 0x7c, 0xb4, 0x07, 0x05, 0x8f, 0xf8, 0x2c, 0xf8, 0xa0, 0xd6, 0x31, + 0x91, 0x39, 0xdc, 0xea, 0xb0, 0xe1, 0x5d, 0x07, 0x41, 0x8b, 0xc3, 0xa1, 0x3b, 0x30, 0xca, 0x8e, + 0x12, 0xbf, 0xf2, 0x87, 0x8f, 0x1a, 0x77, 0x2d, 0xd2, 0xd6, 0x38, 0x40, 0x7d, 0x0a, 0x26, 0x42, + 0x6b, 0x7f, 0x02, 0x0b, 0x5d, 0x6b, 0xde, 0x29, 0x74, 0xd1, 0x13, 0xdd, 0x72, 0x0e, 0x5c, 0x79, + 0xa4, 0x6f, 0x0c, 0xf0, 0xda, 0xc0, 0x11, 0xc6, 0xe9, 0x09, 0xfb, 0x55, 0x31, 0x3c, 0x9b, 0xb1, + 0x53, 0x2f, 0x4c, 0xc4, 0xa7, 0x50, 0x94, 0xf9, 0xba, 0x84, 0xbc, 0x0b, 0x05, 0x7e, 0x2f, 0xfa, + 0xdc, 0xc5, 0x9c, 0xe5, 0x0e, 0x00, 0x27, 0xfa, 0xaf, 0xfe, 0x8e, 0xf9, 0xa6, 0x54, 0x0a, 0xfa, + 0x38, 0x04, 0x5d, 0x70, 0x65, 0x5e, 0xfd, 0x4f, 0x1e, 0x2e, 0xf7, 0x10, 0xd9, 0x2b, 0x6a, 0x50, + 0x2e, 0x24, 0x6a, 0xf8, 0x16, 0x8c, 0xf2, 0x3b, 0x57, 0xe8, 0xfd, 0x7c, 0x3f, 0x27, 0xcd, 0x34, + 0xe2, 0x0c, 0x8f, 0x21, 0x3d, 0x4f, 0x5c, 0x1a, 0xa3, 0x67, 0xbf, 0x34, 0xae, 0x41, 0x49, 0x1c, + 0x12, 0xdd, 0xf0, 0x09, 0xa6, 0xc4, 0xe4, 0x07, 0x6f, 0x54, 0x2b, 0x8a, 0xde, 0x77, 0x44, 0x27, + 0xf3, 0x8d, 0x92, 0x4c, 0xf8, 0xea, 0xf1, 0xd0, 0x37, 0x8a, 0x5e, 0x5e, 0x21, 0x62, 0x6e, 0xaa, + 0x0a, 0x93, 0x9e, 0x1b, 0x58, 0xdc, 0xd7, 0x4c, 0x70, 0xa0, 0xa8, 0x8d, 0xde, 0x86, 0xf1, 0xc0, + 0x6d, 0xf9, 0x06, 0xa9, 0x4c, 0xf6, 0xd6, 0x37, 0x19, 0x31, 0x32, 0xf3, 0xed, 0x70, 0x7a, 0x4d, + 0xf2, 0x71, 0xaf, 0x1a, 0x57, 0x43, 0xfd, 0x4b, 0x1e, 0xa0, 0x73, 0xd5, 0xf6, 0x8a, 0x56, 0x94, + 0x0b, 0x89, 0x56, 0xde, 0x92, 0xb7, 0xbe, 0x58, 0xf8, 0x17, 0x52, 0x68, 0x26, 0x39, 0x49, 0xde, + 0xfc, 0xdb, 0x36, 0xb6, 0x1c, 0x4a, 0x4e, 0xa8, 0xb8, 0xfc, 0x13, 0x56, 0xc9, 0xa7, 0xac, 0x72, + 0x51, 0x0b, 0xb9, 0x0d, 0x05, 0xf1, 0xe6, 0x2b, 0x52, 0xe2, 0xb1, 0x9e, 0x8e, 0x3e, 0xa1, 0x69, + 0x1d, 0x53, 0xa3, 0xc1, 0xd4, 0x15, 0xef, 0x98, 0x3c, 0x19, 0x06, 0x37, 0xfa, 0x8f, 0x6e, 0x76, + 0xb6, 0x86, 0x8d, 0xad, 0x26, 0x31, 0xa3, 0x55, 0x0f, 0x37, 0x87, 0xe8, 0x66, 0xeb, 0xde, 0x59, + 0xdb, 0x89, 0x33, 0xae, 0xed, 0x25, 0x28, 0xeb, 0x49, 0x71, 0x2b, 0xff, 0xb8, 0x04, 0x97, 0x99, + 0x43, 0xdf, 0xf6, 0x5d, 0xea, 0x1a, 0xae, 0xbd, 0x43, 0xfc, 0x63, 0xcb, 0x20, 0xe8, 0x43, 0x18, + 0x17, 0x31, 0x04, 0xca, 0xac, 0x67, 0x27, 0x22, 0xac, 0xea, 0xf5, 0x7e, 0x64, 0xd2, 0xdb, 0x1d, + 0xc1, 0x74, 0xbc, 0x18, 0x8b, 0x5e, 0x7c, 0x34, 0x5f, 0xa2, 0x78, 0x5c, 0xfd, 0xe6, 0x60, 0xc4, + 0x42, 0xd4, 0x2d, 0x05, 0xed, 0xc2, 0x18, 0x77, 0xba, 0xe8, 0x6a, 0x16, 0x63, 0xbc, 0x46, 0x5b, + 0xbd, 0xd6, 0x87, 0x2a, 0xc2, 0xfd, 0x0c, 0x4a, 0x49, 0x67, 0x8e, 0x5e, 0x7a, 0x24, 0x6b, 0xba, + 0xee, 0x58, 0xad, 0x0d, 0x4a, 0x1e, 0x89, 0xfc, 0x18, 0x26, 0x64, 0xbd, 0x04, 0x65, 0x9a, 0x3a, + 0x59, 0xd8, 0xab, 0xde, 0xe8, 0x4b, 0x27, 0xd7, 0xc4, 0x8f, 0x6a, 0x5a, 0x61, 0x2d, 0x06, 0xd5, + 0xfa, 0xf0, 0xa6, 0x8a, 0x52, 0xd5, 0xe5, 0x81, 0xe9, 0xa5, 0xcc, 0x8f, 0x60, 0x5c, 0xa4, 0xf8, + 0xd9, 0x1b, 0x2c, 0x51, 0xb0, 0xc9, 0xde, 0x60, 0xc9, 0x4a, 0xc1, 0x2d, 0x85, 0x4d, 0x27, 0x95, + 0x8a, 0x67, 0x4f, 0xa7, 0x77, 0x61, 0x20, 0x7b, 0x3a, 0x59, 0xe5, 0x02, 0x1b, 0x8a, 0x89, 0x3c, + 0x1e, 0x65, 0x6e, 0xd5, 0x5e, 0x65, 0x80, 0xea, 0x4b, 0x03, 0x52, 0x4b, 0x69, 0x2e, 0x94, 0x92, + 0xcf, 0xbf, 0xd9, 0xfb, 0xaf, 0xe7, 0x8b, 0x74, 0xf6, 0xfe, 0xcb, 0x78, 0x55, 0x76, 0xa1, 0x94, + 0x7c, 0xb7, 0xcd, 0x16, 0xd8, 0xf3, 0xed, 0x38, 0x5b, 0x60, 0xc6, 0x73, 0x70, 0x0b, 0x66, 0xd2, + 0x0f, 0xa7, 0x28, 0x73, 0x51, 0x32, 0xde, 0x73, 0xab, 0xb7, 0x06, 0x67, 0x90, 0x62, 0xdb, 0x30, + 0x93, 0x7e, 0xf3, 0xcc, 0x16, 0x9b, 0xf1, 0xf6, 0x9a, 0x2d, 0x36, 0xeb, 0x39, 0xf5, 0x96, 0xc2, + 0xe6, 0x9b, 0x2e, 0x48, 0x64, 0x0b, 0xce, 0x28, 0xe5, 0x64, 0x0b, 0xce, 0xac, 0x75, 0xb4, 0x60, + 0x26, 0x9d, 0x86, 0x67, 0x8b, 0xcd, 0x28, 0x60, 0x64, 0x8b, 0xcd, 0xcc, 0xf0, 0x7d, 0x28, 0xa7, + 0x52, 0xd5, 0xec, 0x13, 0xda, 0x3b, 0xa3, 0xcf, 0x3e, 0xa1, 0x59, 0x39, 0xf0, 0x17, 0x0a, 0xcc, + 0xf5, 0x4c, 0x22, 0xd0, 0xed, 0x01, 0x73, 0x85, 0x44, 0x76, 0x5c, 0x7d, 0x75, 0x48, 0x2e, 0xa9, + 0x06, 0xed, 0x4e, 0x4a, 0x6b, 0x83, 0xe6, 0x2a, 0xfd, 0xa6, 0x9e, 0x91, 0x80, 0xdd, 0x52, 0xd0, + 0x8f, 0x01, 0x75, 0x7f, 0x01, 0x83, 0x5e, 0x1e, 0xfa, 0xab, 0xaf, 0xea, 0xca, 0x30, 0x2c, 0x72, + 0xca, 0x9f, 0x2b, 0x30, 0xdb, 0xeb, 0x13, 0x47, 0xf4, 0x4a, 0xe6, 0x41, 0xc9, 0xfe, 0x58, 0xb3, + 0x7a, 0x7b, 0x38, 0x26, 0xa1, 0xc3, 0x8a, 0xd7, 0xf9, 0x18, 0x20, 0x0c, 0x71, 0x3e, 0x85, 0xc9, + 0xb0, 0x0b, 0xdd, 0xe8, 0xf7, 0x68, 0x1f, 0x4a, 0x5f, 0xea, 0x4f, 0x28, 0x24, 0xd6, 0xbf, 0xcc, + 0xfd, 0xf1, 0xe1, 0xa2, 0xf2, 0xd5, 0xc3, 0x45, 0xe5, 0xef, 0x0f, 0x17, 0x95, 0x9f, 0x7f, 0xbd, + 0x38, 0xf2, 0xd5, 0xd7, 0x8b, 0x23, 0x7f, 0xfe, 0x7a, 0x71, 0x04, 0xaa, 0x86, 0xdb, 0xcc, 0xc0, + 0xa9, 0x4f, 0x45, 0xd1, 0xd8, 0xb6, 0xf2, 0xf1, 0xfb, 0x87, 0x16, 0x6d, 0xb4, 0xf6, 0x6b, 0x86, + 0xdb, 0x5c, 0x36, 0xdc, 0xa0, 0xe9, 0x06, 0xcb, 0x3e, 0xb1, 0xf1, 0x29, 0xf1, 0x97, 0x8f, 0x57, + 0xa2, 0xbf, 0x3c, 0xf0, 0x0b, 0x96, 0x7b, 0x7f, 0xf7, 0xfb, 0x06, 0x6b, 0x85, 0x8d, 0x5f, 0xe7, + 0xf2, 0xdb, 0xbb, 0xdf, 0xff, 0x4d, 0x6e, 0x7e, 0x3b, 0x14, 0xce, 0xa4, 0xd5, 0x76, 0xe5, 0xf0, + 0x9f, 0x3a, 0x03, 0x7b, 0x6c, 0x60, 0x2f, 0x1c, 0x78, 0x98, 0x53, 0x7b, 0x0f, 0xec, 0xdd, 0xd9, + 0xae, 0xdf, 0x23, 0x14, 0xb3, 0x78, 0xf8, 0x9f, 0xb9, 0x4a, 0x48, 0xb4, 0xba, 0xca, 0xa8, 0x56, + 0x57, 0x43, 0xb2, 0xfd, 0x71, 0xfe, 0x21, 0xee, 0x2b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x30, + 0x99, 0x71, 0xd0, 0x9d, 0x2c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3813,14 +3416,10 @@ type ViewProtocolServiceClient interface { SwapByCommitment(ctx context.Context, in *SwapByCommitmentRequest, opts ...grpc.CallOption) (*SwapByCommitmentResponse, error) // Query for whether a nullifier has been spent, optionally waiting until it is spent. NullifierStatus(ctx context.Context, in *NullifierStatusRequest, opts ...grpc.CallOption) (*NullifierStatusResponse, error) - // Query for the transaction hashes in the given range of blocks. - TransactionHashes(ctx context.Context, in *TransactionHashesRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionHashesClient, error) - // Query for a given transaction hash. - TransactionByHash(ctx context.Context, in *TransactionByHashRequest, opts ...grpc.CallOption) (*TransactionByHashResponse, error) + // Query for a given transaction by its hash. + TransactionInfoByHash(ctx context.Context, in *TransactionInfoByHashRequest, opts ...grpc.CallOption) (*TransactionInfoByHashResponse, error) // Query for the full transactions in the given range of blocks. - Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionsClient, error) - // Query for the transaction perspective of the given transaction - TransactionPerspective(ctx context.Context, in *TransactionPerspectiveRequest, opts ...grpc.CallOption) (*TransactionPerspectiveResponse, error) + TransactionInfo(ctx context.Context, in *TransactionInfoRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionInfoClient, error) // Query for a transaction plan TransactionPlanner(ctx context.Context, in *TransactionPlannerRequest, opts ...grpc.CallOption) (*TransactionPlannerResponse, error) // Broadcast a transaction to the network, optionally waiting for full confirmation. @@ -4094,53 +3693,21 @@ func (c *viewProtocolServiceClient) NullifierStatus(ctx context.Context, in *Nul return out, nil } -func (c *viewProtocolServiceClient) TransactionHashes(ctx context.Context, in *TransactionHashesRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionHashesClient, error) { - stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[5], "/penumbra.view.v1alpha1.ViewProtocolService/TransactionHashes", opts...) - if err != nil { - return nil, err - } - x := &viewProtocolServiceTransactionHashesClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type ViewProtocolService_TransactionHashesClient interface { - Recv() (*TransactionHashesResponse, error) - grpc.ClientStream -} - -type viewProtocolServiceTransactionHashesClient struct { - grpc.ClientStream -} - -func (x *viewProtocolServiceTransactionHashesClient) Recv() (*TransactionHashesResponse, error) { - m := new(TransactionHashesResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *viewProtocolServiceClient) TransactionByHash(ctx context.Context, in *TransactionByHashRequest, opts ...grpc.CallOption) (*TransactionByHashResponse, error) { - out := new(TransactionByHashResponse) - err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionByHash", in, out, opts...) +func (c *viewProtocolServiceClient) TransactionInfoByHash(ctx context.Context, in *TransactionInfoByHashRequest, opts ...grpc.CallOption) (*TransactionInfoByHashResponse, error) { + out := new(TransactionInfoByHashResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionInfoByHash", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *viewProtocolServiceClient) Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionsClient, error) { - stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[6], "/penumbra.view.v1alpha1.ViewProtocolService/Transactions", opts...) +func (c *viewProtocolServiceClient) TransactionInfo(ctx context.Context, in *TransactionInfoRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionInfoClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[5], "/penumbra.view.v1alpha1.ViewProtocolService/TransactionInfo", opts...) if err != nil { return nil, err } - x := &viewProtocolServiceTransactionsClient{stream} + x := &viewProtocolServiceTransactionInfoClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -4150,32 +3717,23 @@ func (c *viewProtocolServiceClient) Transactions(ctx context.Context, in *Transa return x, nil } -type ViewProtocolService_TransactionsClient interface { - Recv() (*TransactionsResponse, error) +type ViewProtocolService_TransactionInfoClient interface { + Recv() (*TransactionInfoResponse, error) grpc.ClientStream } -type viewProtocolServiceTransactionsClient struct { +type viewProtocolServiceTransactionInfoClient struct { grpc.ClientStream } -func (x *viewProtocolServiceTransactionsClient) Recv() (*TransactionsResponse, error) { - m := new(TransactionsResponse) +func (x *viewProtocolServiceTransactionInfoClient) Recv() (*TransactionInfoResponse, error) { + m := new(TransactionInfoResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } -func (c *viewProtocolServiceClient) TransactionPerspective(ctx context.Context, in *TransactionPerspectiveRequest, opts ...grpc.CallOption) (*TransactionPerspectiveResponse, error) { - out := new(TransactionPerspectiveResponse) - err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPerspective", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *viewProtocolServiceClient) TransactionPlanner(ctx context.Context, in *TransactionPlannerRequest, opts ...grpc.CallOption) (*TransactionPlannerResponse, error) { out := new(TransactionPlannerResponse) err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPlanner", in, out, opts...) @@ -4231,14 +3789,10 @@ type ViewProtocolServiceServer interface { SwapByCommitment(context.Context, *SwapByCommitmentRequest) (*SwapByCommitmentResponse, error) // Query for whether a nullifier has been spent, optionally waiting until it is spent. NullifierStatus(context.Context, *NullifierStatusRequest) (*NullifierStatusResponse, error) - // Query for the transaction hashes in the given range of blocks. - TransactionHashes(*TransactionHashesRequest, ViewProtocolService_TransactionHashesServer) error - // Query for a given transaction hash. - TransactionByHash(context.Context, *TransactionByHashRequest) (*TransactionByHashResponse, error) + // Query for a given transaction by its hash. + TransactionInfoByHash(context.Context, *TransactionInfoByHashRequest) (*TransactionInfoByHashResponse, error) // Query for the full transactions in the given range of blocks. - Transactions(*TransactionsRequest, ViewProtocolService_TransactionsServer) error - // Query for the transaction perspective of the given transaction - TransactionPerspective(context.Context, *TransactionPerspectiveRequest) (*TransactionPerspectiveResponse, error) + TransactionInfo(*TransactionInfoRequest, ViewProtocolService_TransactionInfoServer) error // Query for a transaction plan TransactionPlanner(context.Context, *TransactionPlannerRequest) (*TransactionPlannerResponse, error) // Broadcast a transaction to the network, optionally waiting for full confirmation. @@ -4297,17 +3851,11 @@ func (*UnimplementedViewProtocolServiceServer) SwapByCommitment(ctx context.Cont func (*UnimplementedViewProtocolServiceServer) NullifierStatus(ctx context.Context, req *NullifierStatusRequest) (*NullifierStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method NullifierStatus not implemented") } -func (*UnimplementedViewProtocolServiceServer) TransactionHashes(req *TransactionHashesRequest, srv ViewProtocolService_TransactionHashesServer) error { - return status.Errorf(codes.Unimplemented, "method TransactionHashes not implemented") -} -func (*UnimplementedViewProtocolServiceServer) TransactionByHash(ctx context.Context, req *TransactionByHashRequest) (*TransactionByHashResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TransactionByHash not implemented") +func (*UnimplementedViewProtocolServiceServer) TransactionInfoByHash(ctx context.Context, req *TransactionInfoByHashRequest) (*TransactionInfoByHashResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TransactionInfoByHash not implemented") } -func (*UnimplementedViewProtocolServiceServer) Transactions(req *TransactionsRequest, srv ViewProtocolService_TransactionsServer) error { - return status.Errorf(codes.Unimplemented, "method Transactions not implemented") -} -func (*UnimplementedViewProtocolServiceServer) TransactionPerspective(ctx context.Context, req *TransactionPerspectiveRequest) (*TransactionPerspectiveResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TransactionPerspective not implemented") +func (*UnimplementedViewProtocolServiceServer) TransactionInfo(req *TransactionInfoRequest, srv ViewProtocolService_TransactionInfoServer) error { + return status.Errorf(codes.Unimplemented, "method TransactionInfo not implemented") } func (*UnimplementedViewProtocolServiceServer) TransactionPlanner(ctx context.Context, req *TransactionPlannerRequest) (*TransactionPlannerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method TransactionPlanner not implemented") @@ -4623,84 +4171,45 @@ func _ViewProtocolService_NullifierStatus_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } -func _ViewProtocolService_TransactionHashes_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(TransactionHashesRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(ViewProtocolServiceServer).TransactionHashes(m, &viewProtocolServiceTransactionHashesServer{stream}) -} - -type ViewProtocolService_TransactionHashesServer interface { - Send(*TransactionHashesResponse) error - grpc.ServerStream -} - -type viewProtocolServiceTransactionHashesServer struct { - grpc.ServerStream -} - -func (x *viewProtocolServiceTransactionHashesServer) Send(m *TransactionHashesResponse) error { - return x.ServerStream.SendMsg(m) -} - -func _ViewProtocolService_TransactionByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TransactionByHashRequest) +func _ViewProtocolService_TransactionInfoByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransactionInfoByHashRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ViewProtocolServiceServer).TransactionByHash(ctx, in) + return srv.(ViewProtocolServiceServer).TransactionInfoByHash(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionByHash", + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionInfoByHash", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewProtocolServiceServer).TransactionByHash(ctx, req.(*TransactionByHashRequest)) + return srv.(ViewProtocolServiceServer).TransactionInfoByHash(ctx, req.(*TransactionInfoByHashRequest)) } return interceptor(ctx, in, info, handler) } -func _ViewProtocolService_Transactions_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(TransactionsRequest) +func _ViewProtocolService_TransactionInfo_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(TransactionInfoRequest) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(ViewProtocolServiceServer).Transactions(m, &viewProtocolServiceTransactionsServer{stream}) + return srv.(ViewProtocolServiceServer).TransactionInfo(m, &viewProtocolServiceTransactionInfoServer{stream}) } -type ViewProtocolService_TransactionsServer interface { - Send(*TransactionsResponse) error +type ViewProtocolService_TransactionInfoServer interface { + Send(*TransactionInfoResponse) error grpc.ServerStream } -type viewProtocolServiceTransactionsServer struct { +type viewProtocolServiceTransactionInfoServer struct { grpc.ServerStream } -func (x *viewProtocolServiceTransactionsServer) Send(m *TransactionsResponse) error { +func (x *viewProtocolServiceTransactionInfoServer) Send(m *TransactionInfoResponse) error { return x.ServerStream.SendMsg(m) } -func _ViewProtocolService_TransactionPerspective_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TransactionPerspectiveRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewProtocolServiceServer).TransactionPerspective(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPerspective", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewProtocolServiceServer).TransactionPerspective(ctx, req.(*TransactionPerspectiveRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _ViewProtocolService_TransactionPlanner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TransactionPlannerRequest) if err := dec(in); err != nil { @@ -4786,12 +4295,8 @@ var _ViewProtocolService_serviceDesc = grpc.ServiceDesc{ Handler: _ViewProtocolService_NullifierStatus_Handler, }, { - MethodName: "TransactionByHash", - Handler: _ViewProtocolService_TransactionByHash_Handler, - }, - { - MethodName: "TransactionPerspective", - Handler: _ViewProtocolService_TransactionPerspective_Handler, + MethodName: "TransactionInfoByHash", + Handler: _ViewProtocolService_TransactionInfoByHash_Handler, }, { MethodName: "TransactionPlanner", @@ -4829,13 +4334,8 @@ var _ViewProtocolService_serviceDesc = grpc.ServiceDesc{ ServerStreams: true, }, { - StreamName: "TransactionHashes", - Handler: _ViewProtocolService_TransactionHashes_Handler, - ServerStreams: true, - }, - { - StreamName: "Transactions", - Handler: _ViewProtocolService_Transactions_Handler, + StreamName: "TransactionInfo", + Handler: _ViewProtocolService_TransactionInfo_Handler, ServerStreams: true, }, }, @@ -4979,6 +4479,11 @@ func (m *BroadcastTransactionResponse) MarshalToSizedBuffer(dAtA []byte) (int, e _ = i var l int _ = l + if m.DetectionHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.DetectionHeight)) + i-- + dAtA[i] = 0x10 + } if m.Id != nil { { size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) @@ -5094,15 +4599,6 @@ func (m *TransactionPlannerRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro dAtA[i] = 0xa2 } } - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -5160,27 +4656,6 @@ func (m *TransactionPlannerRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []b } return len(dAtA) - i, nil } -func (m *TransactionPlannerRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionPlannerRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *TransactionPlannerRequest_Output) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5834,15 +5309,6 @@ func (m *StatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -5876,27 +5342,6 @@ func (m *StatusRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, e } return len(dAtA) - i, nil } -func (m *StatusRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StatusRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *StatusResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5955,15 +5400,6 @@ func (m *StatusStreamRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -5997,27 +5433,6 @@ func (m *StatusStreamRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) ( } return len(dAtA) - i, nil } -func (m *StatusStreamRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StatusStreamRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *StatusStreamResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6071,28 +5486,26 @@ func (m *NotesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { + if m.XAccountGroupId != nil { { - size := m.XToken.Size() + size := m.XAccountGroupId.Size() i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { return 0, err } } } - if m.XAccountGroupId != nil { + if m.AmountToSpend != nil { { - size := m.XAccountGroupId.Size() - i -= size - if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + size, err := m.AmountToSpend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { return 0, err } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) } - } - if m.AmountToSpend != 0 { - i = encodeVarintView(dAtA, i, uint64(m.AmountToSpend)) i-- - dAtA[i] = 0x28 + dAtA[i] = 0x32 } if m.AddressIndex != nil { { @@ -6152,27 +5565,6 @@ func (m *NotesRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, er } return len(dAtA) - i, nil } -func (m *NotesRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NotesRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *NotesForVotingRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6193,15 +5585,6 @@ func (m *NotesForVotingRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6252,27 +5635,6 @@ func (m *NotesForVotingRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) } return len(dAtA) - i, nil } -func (m *NotesForVotingRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NotesForVotingRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *WitnessRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6293,15 +5655,6 @@ func (m *WitnessRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6361,27 +5714,6 @@ func (m *WitnessRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, } return len(dAtA) - i, nil } -func (m *WitnessRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *WitnessRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *WitnessResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6767,15 +6099,6 @@ func (m *NoteByCommitmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6831,27 +6154,6 @@ func (m *NoteByCommitmentRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byt } return len(dAtA) - i, nil } -func (m *NoteByCommitmentRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NoteByCommitmentRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *NoteByCommitmentResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6907,15 +6209,6 @@ func (m *SwapByCommitmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6971,27 +6264,6 @@ func (m *SwapByCommitmentRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byt } return len(dAtA) - i, nil } -func (m *SwapByCommitmentRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SwapByCommitmentRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *SwapByCommitmentResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7047,15 +6319,6 @@ func (m *NullifierStatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -7111,27 +6374,6 @@ func (m *NullifierStatusRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte } return len(dAtA) - i, nil } -func (m *NullifierStatusRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NullifierStatusRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *NullifierStatusResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7165,7 +6407,7 @@ func (m *NullifierStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *TransactionHashesRequest) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfoByHashRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7175,12 +6417,47 @@ func (m *TransactionHashesRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionHashesRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoByHashRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoByHashRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != nil { + { + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *TransactionInfoRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TransactionInfoRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -7206,31 +6483,31 @@ func (m *TransactionHashesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *TransactionHashesRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) i = encodeVarintView(dAtA, i, uint64(m.StartHeight)) i-- dAtA[i] = 0x8 return len(dAtA) - i, nil } -func (m *TransactionHashesRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) i = encodeVarintView(dAtA, i, uint64(m.EndHeight)) i-- dAtA[i] = 0x10 return len(dAtA) - i, nil } -func (m *TransactionHashesResponse) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7240,84 +6517,43 @@ func (m *TransactionHashesResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionHashesResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfo) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) + if m.View != nil { + { + size, err := m.View.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x2a } - if m.BlockHeight != 0 { - i = encodeVarintView(dAtA, i, uint64(m.BlockHeight)) + if m.Perspective != nil { + { + size, err := m.Perspective.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *TransactionByHashRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + dAtA[i] = 0x22 } - return dAtA[:n], nil -} - -func (m *TransactionByHashRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionByHashRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *TransactionByHashResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TransactionByHashResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionByHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Tx != nil { + if m.Transaction != nil { { - size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Transaction.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -7325,45 +6561,25 @@ func (m *TransactionByHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro i = encodeVarintView(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *TransactionsRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + dAtA[i] = 0x1a } - return dAtA[:n], nil -} - -func (m *TransactionsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XEndHeight != nil { + if m.Id != nil { { - size := m.XEndHeight.Size() - i -= size - if _, err := m.XEndHeight.MarshalTo(dAtA[i:]); err != nil { + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { return 0, err } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x12 } - if m.XStartHeight != nil { + if m.XHeight != nil { { - size := m.XStartHeight.Size() + size := m.XHeight.Size() i -= size - if _, err := m.XStartHeight.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.XHeight.MarshalTo(dAtA[i:]); err != nil { return 0, err } } @@ -7371,31 +6587,19 @@ func (m *TransactionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *TransactionsRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfo_Height) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionsRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfo_Height) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) - i = encodeVarintView(dAtA, i, uint64(m.StartHeight)) + i = encodeVarintView(dAtA, i, uint64(m.Height)) i-- dAtA[i] = 0x8 return len(dAtA) - i, nil } -func (m *TransactionsRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionsRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - i = encodeVarintView(dAtA, i, uint64(m.EndHeight)) - i-- - dAtA[i] = 0x10 - return len(dAtA) - i, nil -} -func (m *TransactionsResponse) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfoResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7405,19 +6609,19 @@ func (m *TransactionsResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionsResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Tx != nil { + if m.TxInfo != nil { { - size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.TxInfo.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -7425,54 +6629,12 @@ func (m *TransactionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintView(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a - } - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) - i-- - dAtA[i] = 0x12 - } - if m.BlockHeight != 0 { - i = encodeVarintView(dAtA, i, uint64(m.BlockHeight)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *TransactionPerspectiveRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TransactionPerspectiveRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionPerspectiveRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) - i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *TransactionPerspectiveResponse) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfoByHashResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7482,43 +6644,19 @@ func (m *TransactionPerspectiveResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionPerspectiveResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoByHashResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionPerspectiveResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoByHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Txv != nil { - { - size, err := m.Txv.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.Tx != nil { - { - size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Txp != nil { + if m.TxInfo != nil { { - size, err := m.Txp.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.TxInfo.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -7873,6 +7011,9 @@ func (m *BroadcastTransactionResponse) Size() (n int) { l = m.Id.Size() n += 1 + l + sovView(uint64(l)) } + if m.DetectionHeight != 0 { + n += 1 + sovView(uint64(m.DetectionHeight)) + } return n } @@ -7896,9 +7037,6 @@ func (m *TransactionPlannerRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } if len(m.Outputs) > 0 { for _, e := range m.Outputs { l = e.Size() @@ -7944,18 +7082,6 @@ func (m *TransactionPlannerRequest_AccountGroupId) Size() (n int) { } return n } -func (m *TransactionPlannerRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *TransactionPlannerRequest_Output) Size() (n int) { if m == nil { return 0 @@ -8204,9 +7330,6 @@ func (m *StatusRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8222,18 +7345,6 @@ func (m *StatusRequest_AccountGroupId) Size() (n int) { } return n } -func (m *StatusRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *StatusResponse) Size() (n int) { if m == nil { return 0 @@ -8258,9 +7369,6 @@ func (m *StatusStreamRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8276,18 +7384,6 @@ func (m *StatusStreamRequest_AccountGroupId) Size() (n int) { } return n } -func (m *StatusStreamRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *StatusStreamResponse) Size() (n int) { if m == nil { return 0 @@ -8320,15 +7416,13 @@ func (m *NotesRequest) Size() (n int) { l = m.AddressIndex.Size() n += 1 + l + sovView(uint64(l)) } - if m.AmountToSpend != 0 { - n += 1 + sovView(uint64(m.AmountToSpend)) + if m.AmountToSpend != nil { + l = m.AmountToSpend.Size() + n += 1 + l + sovView(uint64(l)) } if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8344,18 +7438,6 @@ func (m *NotesRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NotesRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *NotesForVotingRequest) Size() (n int) { if m == nil { return 0 @@ -8372,9 +7454,6 @@ func (m *NotesForVotingRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8390,18 +7469,6 @@ func (m *NotesForVotingRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NotesForVotingRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *WitnessRequest) Size() (n int) { if m == nil { return 0 @@ -8421,9 +7488,6 @@ func (m *WitnessRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8439,18 +7503,6 @@ func (m *WitnessRequest_AccountGroupId) Size() (n int) { } return n } -func (m *WitnessRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *WitnessResponse) Size() (n int) { if m == nil { return 0 @@ -8600,9 +7652,6 @@ func (m *NoteByCommitmentRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8618,18 +7667,6 @@ func (m *NoteByCommitmentRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NoteByCommitmentRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *NoteByCommitmentResponse) Size() (n int) { if m == nil { return 0 @@ -8659,9 +7696,6 @@ func (m *SwapByCommitmentRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8677,18 +7711,6 @@ func (m *SwapByCommitmentRequest_AccountGroupId) Size() (n int) { } return n } -func (m *SwapByCommitmentRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *SwapByCommitmentResponse) Size() (n int) { if m == nil { return 0 @@ -8718,9 +7740,6 @@ func (m *NullifierStatusRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8736,31 +7755,32 @@ func (m *NullifierStatusRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NullifierStatusRequest_Token) Size() (n int) { +func (m *NullifierStatusResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) + if m.Spent { + n += 2 } return n } -func (m *NullifierStatusResponse) Size() (n int) { + +func (m *TransactionInfoByHashRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Spent { - n += 2 + if m.Id != nil { + l = m.Id.Size() + n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionHashesRequest) Size() (n int) { +func (m *TransactionInfoRequest) Size() (n int) { if m == nil { return 0 } @@ -8775,7 +7795,7 @@ func (m *TransactionHashesRequest) Size() (n int) { return n } -func (m *TransactionHashesRequest_StartHeight) Size() (n int) { +func (m *TransactionInfoRequest_StartHeight) Size() (n int) { if m == nil { return 0 } @@ -8784,7 +7804,7 @@ func (m *TransactionHashesRequest_StartHeight) Size() (n int) { n += 1 + sovView(uint64(m.StartHeight)) return n } -func (m *TransactionHashesRequest_EndHeight) Size() (n int) { +func (m *TransactionInfoRequest_EndHeight) Size() (n int) { if m == nil { return 0 } @@ -8793,130 +7813,64 @@ func (m *TransactionHashesRequest_EndHeight) Size() (n int) { n += 1 + sovView(uint64(m.EndHeight)) return n } -func (m *TransactionHashesResponse) Size() (n int) { +func (m *TransactionInfo) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.BlockHeight != 0 { - n += 1 + sovView(uint64(m.BlockHeight)) + if m.XHeight != nil { + n += m.XHeight.Size() } - l = len(m.TxHash) - if l > 0 { + if m.Id != nil { + l = m.Id.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Transaction != nil { + l = m.Transaction.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Perspective != nil { + l = m.Perspective.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.View != nil { + l = m.View.Size() n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionByHashRequest) Size() (n int) { +func (m *TransactionInfo_Height) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.TxHash) - if l > 0 { - n += 1 + l + sovView(uint64(l)) - } + n += 1 + sovView(uint64(m.Height)) return n } - -func (m *TransactionByHashResponse) Size() (n int) { +func (m *TransactionInfoResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Tx != nil { - l = m.Tx.Size() + if m.TxInfo != nil { + l = m.TxInfo.Size() n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionsRequest) Size() (n int) { +func (m *TransactionInfoByHashResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.XStartHeight != nil { - n += m.XStartHeight.Size() - } - if m.XEndHeight != nil { - n += m.XEndHeight.Size() - } - return n -} - -func (m *TransactionsRequest_StartHeight) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 1 + sovView(uint64(m.StartHeight)) - return n -} -func (m *TransactionsRequest_EndHeight) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 1 + sovView(uint64(m.EndHeight)) - return n -} -func (m *TransactionsResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.BlockHeight != 0 { - n += 1 + sovView(uint64(m.BlockHeight)) - } - l = len(m.TxHash) - if l > 0 { - n += 1 + l + sovView(uint64(l)) - } - if m.Tx != nil { - l = m.Tx.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} - -func (m *TransactionPerspectiveRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.TxHash) - if l > 0 { - n += 1 + l + sovView(uint64(l)) - } - return n -} - -func (m *TransactionPerspectiveResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Txp != nil { - l = m.Txp.Size() - n += 1 + l + sovView(uint64(l)) - } - if m.Tx != nil { - l = m.Tx.Size() - n += 1 + l + sovView(uint64(l)) - } - if m.Txv != nil { - l = m.Txv.Size() + if m.TxInfo != nil { + l = m.TxInfo.Size() n += 1 + l + sovView(uint64(l)) } return n @@ -9221,6 +8175,25 @@ func (m *BroadcastTransactionResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DetectionHeight", wireType) + } + m.DetectionHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DetectionHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -9393,41 +8366,6 @@ func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &TransactionPlannerRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &TransactionPlannerRequest_Token{v} - iNdEx = postIndex case 20: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Outputs", wireType) @@ -11236,41 +10174,6 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &StatusRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &StatusRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -11445,41 +10348,6 @@ func (m *StatusStreamRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &StatusStreamRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &StatusStreamRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -11710,28 +10578,9 @@ func (m *NotesRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AmountToSpend", wireType) - } - m.AmountToSpend = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AmountToSpend |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 14: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AmountToSpend", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11758,15 +10607,16 @@ func (m *NotesRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &v1alpha11.AccountGroupId{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.AmountToSpend == nil { + m.AmountToSpend = &v1alpha11.Amount{} + } + if err := m.AmountToSpend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XAccountGroupId = &NotesRequest_AccountGroupId{v} iNdEx = postIndex - case 15: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11793,11 +10643,11 @@ func (m *NotesRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ViewAuthToken{} + v := &v1alpha11.AccountGroupId{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XToken = &NotesRequest_Token{v} + m.XAccountGroupId = &NotesRequest_AccountGroupId{v} iNdEx = postIndex default: iNdEx = preIndex @@ -11939,41 +10789,6 @@ func (m *NotesForVotingRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &NotesForVotingRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &NotesForVotingRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -12129,48 +10944,13 @@ func (m *WitnessRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &WitnessRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &WitnessRequest_Token{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipView(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthView } if (iNdEx + skippy) > l { @@ -13161,41 +11941,6 @@ func (m *NoteByCommitmentRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &NoteByCommitmentRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &NoteByCommitmentRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -13423,41 +12168,6 @@ func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &SwapByCommitmentRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &SwapByCommitmentRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -13685,41 +12395,6 @@ func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &NullifierStatusRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &NullifierStatusRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -13811,7 +12486,7 @@ func (m *NullifierStatusResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoByHashRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13834,17 +12509,17 @@ func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionHashesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoByHashRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionHashesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoByHashRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartHeight", wireType) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) } - var v uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -13854,32 +12529,28 @@ func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.XStartHeight = &TransactionHashesRequest_StartHeight{v} - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndHeight", wireType) + if msglen < 0 { + return ErrInvalidLengthView } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF } - m.XEndHeight = &TransactionHashesRequest_EndHeight{v} + if m.Id == nil { + m.Id = &v1alpha1.Id{} + } + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -13901,7 +12572,7 @@ func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13924,17 +12595,17 @@ func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionHashesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionHashesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartHeight", wireType) } - m.BlockHeight = 0 + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -13944,16 +12615,17 @@ func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.BlockHeight |= uint64(b&0x7F) << shift + v |= uint64(b&0x7F) << shift if b < 0x80 { break } } + m.XStartHeight = &TransactionInfoRequest_StartHeight{v} case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndHeight", wireType) } - var byteLen int + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -13963,26 +12635,12 @@ func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + v |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} - } - iNdEx = postIndex + m.XEndHeight = &TransactionInfoRequest_EndHeight{v} default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -14004,7 +12662,7 @@ func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { +func (m *TransactionInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14027,17 +12685,17 @@ func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionByHashRequest: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionByHashRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) } - var byteLen int + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14047,79 +12705,15 @@ func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + v |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipView(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthView - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TransactionByHashResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TransactionByHashResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionByHashResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.XHeight = &TransactionInfo_Height{v} + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14146,88 +12740,18 @@ func (m *TransactionByHashResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Tx == nil { - m.Tx = &v1alpha1.Transaction{} + if m.Id == nil { + m.Id = &v1alpha1.Id{} } - if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipView(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthView - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TransactionsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartHeight", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.XStartHeight = &TransactionsRequest_StartHeight{v} - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndHeight", wireType) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Transaction", wireType) } - var v uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14237,86 +12761,33 @@ func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.XEndHeight = &TransactionsRequest_EndHeight{v} - default: - iNdEx = preIndex - skippy, err := skipView(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if msglen < 0 { return ErrInvalidLengthView } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TransactionsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + if m.Transaction == nil { + m.Transaction = &v1alpha1.Transaction{} } - m.BlockHeight = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.BlockHeight |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + if err := m.Transaction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - case 2: + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Perspective", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14326,29 +12797,31 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthView } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthView } if postIndex > l { return io.ErrUnexpectedEOF } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} + if m.Perspective == nil { + m.Perspective = &v1alpha1.TransactionPerspective{} + } + if err := m.Perspective.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field View", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14375,10 +12848,10 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Tx == nil { - m.Tx = &v1alpha1.Transaction{} + if m.View == nil { + m.View = &v1alpha1.TransactionView{} } - if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.View.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -14403,7 +12876,7 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14426,17 +12899,17 @@ func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionPerspectiveRequest: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionPerspectiveRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TxInfo", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14446,24 +12919,26 @@ func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthView } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthView } if postIndex > l { return io.ErrUnexpectedEOF } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} + if m.TxInfo == nil { + m.TxInfo = &TransactionInfo{} + } + if err := m.TxInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -14487,7 +12962,7 @@ func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoByHashResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14510,87 +12985,15 @@ func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionPerspectiveResponse: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoByHashResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionPerspectiveResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoByHashResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Txp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Txp == nil { - m.Txp = &v1alpha1.TransactionPerspective{} - } - if err := m.Txp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Tx == nil { - m.Tx = &v1alpha1.Transaction{} - } - if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Txv", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TxInfo", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14617,10 +13020,10 @@ func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Txv == nil { - m.Txv = &v1alpha1.TransactionView{} + if m.TxInfo == nil { + m.TxInfo = &TransactionInfo{} } - if err := m.Txv.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TxInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex From 23d1e5c864b35d133cad6a0ef06970a2b1e1b03f Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Wed, 24 May 2023 15:48:39 -0600 Subject: [PATCH 36/46] Neutron launch fixes and optimizations (#1185) * pipe max msgs through path processor * only apply max msgs to packet msgs * multiple msgs simultaneously on ordered chans * flush should be more frequent if it fails or does not complete * fix legacy * handle feedback --- cmd/flags.go | 11 +- cmd/root.go | 16 +- cmd/start.go | 30 +- cmd/tx.go | 4 +- go.mod | 2 +- .../chains/cosmos/cosmos_chain_processor.go | 7 + relayer/chains/cosmos/query.go | 2 - .../chains/mock/mock_chain_processor_test.go | 4 +- relayer/channel.go | 3 + relayer/connection.go | 1 + relayer/processor/path_processor.go | 28 +- relayer/processor/path_processor_internal.go | 347 +++++++++++++----- relayer/processor/types.go | 30 ++ relayer/processor/types_internal.go | 5 + relayer/strategies.go | 9 +- 15 files changed, 336 insertions(+), 163 deletions(-) diff --git a/cmd/flags.go b/cmd/flags.go index 427f12d52..82bab138a 100644 --- a/cmd/flags.go +++ b/cmd/flags.go @@ -225,11 +225,12 @@ func urlFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { } func strategyFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { - cmd.Flags().StringP(flagMaxTxSize, "s", "2", "strategy of path to generate of the messages in a relay transaction") - cmd.Flags().StringP(flagMaxMsgLength, "l", "5", "maximum number of messages in a relay transaction") - if err := v.BindPFlag(flagMaxTxSize, cmd.Flags().Lookup(flagMaxTxSize)); err != nil { - panic(err) - } + cmd.Flags().Uint64P( + flagMaxMsgLength, + "l", + relayer.DefaultMaxMsgLength, + "maximum number of messages per transaction", + ) if err := v.BindPFlag(flagMaxMsgLength, cmd.Flags().Lookup(flagMaxMsgLength)); err != nil { panic(err) } diff --git a/cmd/root.go b/cmd/root.go index d76360e01..eb8367409 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -34,13 +34,9 @@ import ( "github.com/spf13/viper" "go.uber.org/zap" "go.uber.org/zap/zapcore" - "golang.org/x/term" ) -const ( - MB = 1024 * 1024 // in bytes - appName = "rly" -) +const appName = "rly" var defaultHome = filepath.Join(os.Getenv("HOME"), ".relayer") @@ -185,18 +181,10 @@ func newRootLogger(format string, debug bool) (*zap.Logger, error) { switch format { case "json": enc = zapcore.NewJSONEncoder(config) - case "console": + case "auto", "console": enc = zapcore.NewConsoleEncoder(config) case "logfmt": enc = zaplogfmt.NewEncoder(config) - case "auto": - if term.IsTerminal(int(os.Stderr.Fd())) { - // When a user runs relayer in the foreground, use easier to read output. - enc = zapcore.NewConsoleEncoder(config) - } else { - // Otherwise, use consistent logfmt format for simplistic machine processing. - enc = zaplogfmt.NewEncoder(config) - } default: return nil, fmt.Errorf("unrecognized log format %q", format) } diff --git a/cmd/start.go b/cmd/start.go index fa69d2a80..c2cdf9406 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -21,7 +21,6 @@ import ( "errors" "fmt" "net" - "strconv" "strings" "github.com/cosmos/relayer/v2/internal/relaydebug" @@ -88,7 +87,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), return err } - maxTxSize, maxMsgLength, err := GetStartOptions(cmd) + maxMsgLength, err := cmd.Flags().GetUint64(flagMaxMsgLength) if err != nil { return err } @@ -149,7 +148,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), a.log, chains, paths, - maxTxSize, maxMsgLength, + maxMsgLength, a.config.memo(cmd), clientUpdateThresholdTime, flushInterval, @@ -182,28 +181,3 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), cmd = memoFlag(a.viper, cmd) return cmd } - -// GetStartOptions sets strategy specific fields. -func GetStartOptions(cmd *cobra.Command) (uint64, uint64, error) { - maxTxSize, err := cmd.Flags().GetString(flagMaxTxSize) - if err != nil { - return 0, 0, err - } - - txSize, err := strconv.ParseUint(maxTxSize, 10, 64) - if err != nil { - return 0, 0, err - } - - maxMsgLength, err := cmd.Flags().GetString(flagMaxMsgLength) - if err != nil { - return txSize * MB, 0, err - } - - msgLen, err := strconv.ParseUint(maxMsgLength, 10, 64) - if err != nil { - return txSize * MB, 0, err - } - - return txSize * MB, msgLen, nil -} diff --git a/cmd/tx.go b/cmd/tx.go index 6e9244527..e1b5e124a 100644 --- a/cmd/tx.go +++ b/cmd/tx.go @@ -781,7 +781,7 @@ $ %s tx flush demo-path channel-0`, return err } - maxTxSize, maxMsgLength, err := GetStartOptions(cmd) + maxMsgLength, err := cmd.Flags().GetUint64(flagMaxMsgLength) if err != nil { return err } @@ -802,7 +802,7 @@ $ %s tx flush demo-path channel-0`, a.log, chains, paths, - maxTxSize, maxMsgLength, + maxMsgLength, a.config.memo(cmd), 0, 0, diff --git a/go.mod b/go.mod index fd1091a78..16f05763e 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,6 @@ require ( go.uber.org/zap v1.24.0 golang.org/x/mod v0.8.0 golang.org/x/sync v0.1.0 - golang.org/x/term v0.7.0 golang.org/x/text v0.9.0 google.golang.org/grpc v1.54.0 gopkg.in/yaml.v2 v2.4.0 @@ -171,6 +170,7 @@ require ( golang.org/x/net v0.9.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect golang.org/x/sys v0.7.0 // indirect + golang.org/x/term v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/relayer/chains/cosmos/cosmos_chain_processor.go b/relayer/chains/cosmos/cosmos_chain_processor.go index e5de5f2bc..0c350f1f4 100644 --- a/relayer/chains/cosmos/cosmos_chain_processor.go +++ b/relayer/chains/cosmos/cosmos_chain_processor.go @@ -398,6 +398,13 @@ func (ccp *CosmosChainProcessor) queryCycle(ctx context.Context, persistence *qu break } + ccp.log.Debug( + "Queried block", + zap.Int64("height", i), + zap.Int64("latest", persistence.latestHeight), + zap.Int64("delta", persistence.latestHeight-i), + ) + persistence.retriesAtLatestQueriedBlock = 0 latestHeader = ibcHeader.(provider.TendermintIBCHeader) diff --git a/relayer/chains/cosmos/query.go b/relayer/chains/cosmos/query.go index f8025456e..6e438727f 100644 --- a/relayer/chains/cosmos/query.go +++ b/relayer/chains/cosmos/query.go @@ -897,7 +897,6 @@ func (cc *CosmosProvider) QueryUnreceivedPackets(ctx context.Context, height uin func sendPacketQuery(channelID string, portID string, seq uint64) string { x := []string{ fmt.Sprintf("%s.packet_src_channel='%s'", spTag, channelID), - fmt.Sprintf("%s.packet_src_port='%s'", spTag, portID), fmt.Sprintf("%s.packet_sequence='%d'", spTag, seq), } return strings.Join(x, " AND ") @@ -906,7 +905,6 @@ func sendPacketQuery(channelID string, portID string, seq uint64) string { func writeAcknowledgementQuery(channelID string, portID string, seq uint64) string { x := []string{ fmt.Sprintf("%s.packet_dst_channel='%s'", waTag, channelID), - fmt.Sprintf("%s.packet_dst_port='%s'", waTag, portID), fmt.Sprintf("%s.packet_sequence='%d'", waTag, seq), } return strings.Join(x, " AND ") diff --git a/relayer/chains/mock/mock_chain_processor_test.go b/relayer/chains/mock/mock_chain_processor_test.go index 505fa87db..718826917 100644 --- a/relayer/chains/mock/mock_chain_processor_test.go +++ b/relayer/chains/mock/mock_chain_processor_test.go @@ -9,6 +9,7 @@ import ( clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer" "github.com/cosmos/relayer/v2/relayer/chains/mock" "github.com/cosmos/relayer/v2/relayer/processor" "github.com/prometheus/client_golang/prometheus/testutil" @@ -61,7 +62,8 @@ func TestMockChainAndPathProcessors(t *testing.T) { clientUpdateThresholdTime := 6 * time.Hour flushInterval := 6 * time.Hour - pathProcessor := processor.NewPathProcessor(log, pathEnd1, pathEnd2, metrics, "", clientUpdateThresholdTime, flushInterval) + pathProcessor := processor.NewPathProcessor(log, pathEnd1, pathEnd2, metrics, "", + clientUpdateThresholdTime, flushInterval, relayer.DefaultMaxMsgLength) eventProcessor := processor.NewEventProcessor(). WithChainProcessors( diff --git a/relayer/channel.go b/relayer/channel.go index 5274d405d..2f3f32b64 100644 --- a/relayer/channel.go +++ b/relayer/channel.go @@ -59,6 +59,7 @@ func (c *Chain) CreateOpenChannels( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, ) c.log.Info("Starting event processor for channel handshake", @@ -131,6 +132,7 @@ func (c *Chain) CloseChannel( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, )). WithInitialBlockHistory(0). WithMessageLifecycle(&processor.FlushLifecycle{}). @@ -168,6 +170,7 @@ func (c *Chain) CloseChannel( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, )). WithInitialBlockHistory(0). WithMessageLifecycle(&processor.ChannelCloseLifecycle{ diff --git a/relayer/connection.go b/relayer/connection.go index 1f818eff7..df784d504 100644 --- a/relayer/connection.go +++ b/relayer/connection.go @@ -40,6 +40,7 @@ func (c *Chain) CreateOpenConnections( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, ) var connectionSrc, connectionDst string diff --git a/relayer/processor/path_processor.go b/relayer/processor/path_processor.go index 976037ba1..d6df17eea 100644 --- a/relayer/processor/path_processor.go +++ b/relayer/processor/path_processor.go @@ -27,6 +27,9 @@ const ( // Amount of time to wait for interchain queries. interchainQueryTimeout = 60 * time.Second + // Amount of time between flushes if the previous flush failed. + flushFailureRetry = 15 * time.Second + // If message assembly fails from either proof query failure on the source // or assembling the message for the destination, how many blocks should pass // before retrying. @@ -63,7 +66,7 @@ type PathProcessor struct { messageLifecycle MessageLifecycle initialFlushComplete bool - flushTicker *time.Ticker + flushTimer *time.Timer flushInterval time.Duration // Signals to retry. @@ -71,6 +74,8 @@ type PathProcessor struct { sentInitialMsg bool + maxMsgs uint64 + metrics *PrometheusMetrics } @@ -94,6 +99,7 @@ func NewPathProcessor( memo string, clientUpdateThresholdTime time.Duration, flushInterval time.Duration, + maxMsgs uint64, ) *PathProcessor { pp := &PathProcessor{ log: log, @@ -104,6 +110,7 @@ func NewPathProcessor( clientUpdateThresholdTime: clientUpdateThresholdTime, flushInterval: flushInterval, metrics: metrics, + maxMsgs: maxMsgs, } if flushInterval == 0 { pp.disablePeriodicFlush() @@ -264,6 +271,16 @@ func (pp *PathProcessor) HandleNewData(chainID string, cacheData ChainProcessorC } } +func (pp *PathProcessor) handleFlush(ctx context.Context) { + flushTimer := pp.flushInterval + if err := pp.flush(ctx); err != nil { + pp.log.Warn("Flush not complete", zap.Error(err)) + flushTimer = flushFailureRetry + } + pp.flushTimer.Stop() + pp.flushTimer = time.NewTimer(flushTimer) +} + // processAvailableSignals will block if signals are not yet available, otherwise it will process one of the available signals. // It returns whether or not the pathProcessor should quit. func (pp *PathProcessor) processAvailableSignals(ctx context.Context, cancel func()) bool { @@ -287,9 +304,9 @@ func (pp *PathProcessor) processAvailableSignals(ctx context.Context, cancel fun case <-pp.retryProcess: // No new data to merge in, just retry handling. - case <-pp.flushTicker.C: + case <-pp.flushTimer.C: // Periodic flush to clear out any old packets - pp.flush(ctx) + pp.handleFlush(ctx) } return false } @@ -298,8 +315,7 @@ func (pp *PathProcessor) processAvailableSignals(ctx context.Context, cancel fun func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { var retryTimer *time.Timer - pp.flushTicker = time.NewTicker(pp.flushInterval) - defer pp.flushTicker.Stop() + pp.flushTimer = time.NewTimer(time.Hour) for { // block until we have any signals to process @@ -319,7 +335,7 @@ func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { } if pp.shouldFlush() && !pp.initialFlushComplete { - pp.flush(ctx) + pp.handleFlush(ctx) pp.initialFlushComplete = true } else if pp.shouldTerminateForFlushComplete() { cancel() diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 040808103..79d1740c5 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "errors" + "fmt" "sort" "sync" @@ -18,47 +19,95 @@ import ( // i.e. a MsgConnectionOpenInit or a MsgChannelOpenInit should be broadcasted to start // the handshake if this key exists in the relevant cache. const ( - preInitKey = "pre_init" - preCloseKey = "pre_close" + preInitKey = "pre_init" + preCloseKey = "pre_close" + maxPacketsPerFlush = 10 ) // getMessagesToSend returns only the lowest sequence message (if it should be sent) for ordered channels, // otherwise returns all which should be sent. func (pp *PathProcessor) getMessagesToSend( + ctx context.Context, msgs []packetIBCMessage, src, dst *pathEndRuntime, ) (srcMsgs []packetIBCMessage, dstMsgs []packetIBCMessage) { if len(msgs) == 0 { return } + if msgs[0].info.ChannelOrder == chantypes.ORDERED.String() { - // for packet messages on ordered channels, only handle the lowest sequence number now. - sort.SliceStable(msgs, func(i, j int) bool { - return msgs[i].info.Sequence < msgs[j].info.Sequence - }) - firstMsg := msgs[0] - switch firstMsg.eventType { - case chantypes.EventTypeRecvPacket: - if dst.shouldSendPacketMessage(firstMsg, src) { - dstMsgs = append(dstMsgs, firstMsg) + eventMessages := make(map[string][]packetIBCMessage) + + for _, m := range msgs { + eventMessages[m.eventType] = append(eventMessages[m.eventType], m) + } + + for e, m := range eventMessages { + m := m + sort.SliceStable(m, func(i, j int) bool { + return m[i].info.Sequence < m[j].info.Sequence + }) + + if e == chantypes.EventTypeRecvPacket { + dstChan, dstPort := m[0].info.DestChannel, m[0].info.DestPort + res, err := dst.chainProvider.QueryNextSeqRecv(ctx, 0, dstChan, dstPort) + if err != nil { + dst.log.Error("Failed to query next sequence recv", + zap.String("channel_id", dstChan), + zap.String("port_id", dstPort), + zap.Error(err), + ) + return + } + + if m[0].info.Sequence != res.NextSequenceReceive { + dst.log.Error("Unexpected next sequence recv", + zap.String("channel_id", m[0].info.DestChannel), + zap.String("port_id", m[0].info.DestChannel), + zap.Uint64("expected", res.NextSequenceReceive), + zap.Uint64("actual", m[0].info.Sequence), + ) + return + } } - default: - if src.shouldSendPacketMessage(firstMsg, dst) { - srcMsgs = append(srcMsgs, firstMsg) + + for i, msg := range m { + // only handle consecutive sequences on ordered channels + if i > 0 && msg.info.Sequence-1 != m[i-1].info.Sequence { + dst.log.Error("Packets are not consecutive", + zap.String("channel_id", m[0].info.DestChannel), + zap.String("port_id", m[0].info.DestChannel), + zap.Uint64("seq", msg.info.Sequence), + zap.Uint64("prior_seq", m[i-1].info.Sequence), + ) + break + } + + switch e { + case chantypes.EventTypeRecvPacket: + if uint64(len(dstMsgs)) <= pp.maxMsgs && dst.shouldSendPacketMessage(msg, src) { + dstMsgs = append(dstMsgs, msg) + } + default: + if uint64(len(srcMsgs)) <= pp.maxMsgs && src.shouldSendPacketMessage(msg, dst) { + srcMsgs = append(srcMsgs, msg) + } + } } } + return srcMsgs, dstMsgs } - // for unordered channels, can handle multiple simultaneous packets. + // for unordered channels, don't need to worry about sequence ordering. for _, msg := range msgs { switch msg.eventType { case chantypes.EventTypeRecvPacket: - if dst.shouldSendPacketMessage(msg, src) { + if uint64(len(dstMsgs)) <= pp.maxMsgs && dst.shouldSendPacketMessage(msg, src) { dstMsgs = append(dstMsgs, msg) } default: - if src.shouldSendPacketMessage(msg, dst) { + if uint64(len(srcMsgs)) <= pp.maxMsgs && src.shouldSendPacketMessage(msg, dst) { srcMsgs = append(srcMsgs, msg) } } @@ -211,7 +260,12 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( msgs = append(msgs, msgTransfer) } - res.SrcMessages, res.DstMessages = pp.getMessagesToSend(msgs, pathEndPacketFlowMessages.Src, pathEndPacketFlowMessages.Dst) + res.SrcMessages, res.DstMessages = pp.getMessagesToSend( + ctx, + msgs, + pathEndPacketFlowMessages.Src, + pathEndPacketFlowMessages.Dst, + ) return res } @@ -1073,7 +1127,8 @@ func queryPacketCommitments( } } -func queuePendingRecvAndAcks( +// queuePendingRecvAndAcks returns whether flush can be considered complete (none skipped). +func (pp *PathProcessor) queuePendingRecvAndAcks( ctx context.Context, src, dst *pathEndRuntime, k ChannelKey, @@ -1082,124 +1137,187 @@ func queuePendingRecvAndAcks( dstCache ChannelPacketMessagesCache, srcMu sync.Locker, dstMu sync.Locker, -) func() error { - return func() error { - if len(seqs) == 0 { - src.log.Debug("Nothing to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) - return nil - } +) (bool, error) { - dstChan, dstPort := k.CounterpartyChannelID, k.CounterpartyPortID + if len(seqs) == 0 { + src.log.Debug("Nothing to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) + return true, nil + } - unrecv, err := dst.chainProvider.QueryUnreceivedPackets(ctx, dst.latestBlock.Height, dstChan, dstPort, seqs) + dstChan, dstPort := k.CounterpartyChannelID, k.CounterpartyPortID + + unrecv, err := dst.chainProvider.QueryUnreceivedPackets(ctx, dst.latestBlock.Height, dstChan, dstPort, seqs) + if err != nil { + return false, err + } + + dstHeight := int64(dst.latestBlock.Height) + + if len(unrecv) > 0 { + channel, err := dst.chainProvider.QueryChannel(ctx, dstHeight, dstChan, dstPort) if err != nil { - return err + return false, err } - dstHeight := int64(dst.latestBlock.Height) - - if len(unrecv) > 0 { - channel, err := dst.chainProvider.QueryChannel(ctx, dstHeight, dstChan, dstPort) + if channel.Channel.Ordering == chantypes.ORDERED { + nextSeqRecv, err := dst.chainProvider.QueryNextSeqRecv(ctx, dstHeight, dstChan, dstPort) if err != nil { - return err + return false, err } - if channel.Channel.Ordering == chantypes.ORDERED { - nextSeqRecv, err := dst.chainProvider.QueryNextSeqRecv(ctx, dstHeight, dstChan, dstPort) - if err != nil { - return err + var newUnrecv []uint64 + + for _, seq := range unrecv { + if seq >= nextSeqRecv.NextSequenceReceive { + newUnrecv = append(newUnrecv, seq) } + } - var newUnrecv []uint64 + unrecv = newUnrecv - for _, seq := range unrecv { - if seq >= nextSeqRecv.NextSequenceReceive { - newUnrecv = append(newUnrecv, seq) - break - } - } + sort.SliceStable(unrecv, func(i, j int) bool { + return unrecv[i] < unrecv[j] + }) + } + } - unrecv = newUnrecv - } + var eg errgroup.Group + + skipped := false + + for i, seq := range unrecv { + srcMu.Lock() + if srcCache.IsCached(chantypes.EventTypeSendPacket, k, seq) { + continue // already cached } + srcMu.Unlock() - if len(unrecv) > 0 { - src.log.Debug("Will flush MsgRecvPacket", - zap.String("channel", k.ChannelID), - zap.String("port", k.PortID), - zap.Uint64s("sequences", unrecv), - ) - } else { - src.log.Debug("No MsgRecvPacket to flush", - zap.String("channel", k.ChannelID), - zap.String("port", k.PortID), - ) + if i >= maxPacketsPerFlush { + skipped = true + break } - for _, seq := range unrecv { + src.log.Debug("Querying send packet", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + zap.Uint64("sequence", seq), + ) + + seq := seq + + eg.Go(func() error { sendPacket, err := src.chainProvider.QuerySendPacket(ctx, k.ChannelID, k.PortID, seq) if err != nil { return err } srcMu.Lock() - if _, ok := srcCache[k]; !ok { - srcCache[k] = make(PacketMessagesCache) - } - if _, ok := srcCache[k][chantypes.EventTypeSendPacket]; !ok { - srcCache[k][chantypes.EventTypeSendPacket] = make(PacketSequenceCache) - } - srcCache[k][chantypes.EventTypeSendPacket][seq] = sendPacket + srcCache.Cache(chantypes.EventTypeSendPacket, k, seq, sendPacket) srcMu.Unlock() - } - var unacked []uint64 + src.log.Debug("Cached send packet", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + zap.String("ctrpty_channel", k.CounterpartyChannelID), + zap.String("ctrpty_port", k.CounterpartyPortID), + zap.Uint64("sequence", seq), + ) - SeqLoop: - for _, seq := range seqs { - for _, unrecvSeq := range unrecv { - if seq == unrecvSeq { - continue SeqLoop - } + return nil + }) + } + + if err := eg.Wait(); err != nil { + return false, err + } + + if len(unrecv) > 0 { + src.log.Debug("Will flush MsgRecvPacket", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + zap.Uint64s("sequences", unrecv), + ) + } else { + src.log.Debug("No MsgRecvPacket to flush", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + ) + } + + var unacked []uint64 + +SeqLoop: + for _, seq := range seqs { + for _, unrecvSeq := range unrecv { + if seq == unrecvSeq { + continue SeqLoop } - // does not exist in unrecv, so this is an ack that must be written - unacked = append(unacked, seq) } + // does not exist in unrecv, so this is an ack that must be written + unacked = append(unacked, seq) + } - if len(unacked) > 0 { - src.log.Debug("Will flush MsgAcknowledgement", zap.Object("channel", k), zap.Uint64s("sequences", unacked)) - } else { - src.log.Debug("No MsgAcknowledgement to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) + for i, seq := range unacked { + dstMu.Lock() + ck := k.Counterparty() + if dstCache.IsCached(chantypes.EventTypeRecvPacket, ck, seq) && + dstCache.IsCached(chantypes.EventTypeWriteAck, ck, seq) { + continue // already cached } + dstMu.Unlock() + + if i >= maxPacketsPerFlush { + skipped = true + break + } + + seq := seq - for _, seq := range unacked { + dst.log.Debug("Querying recv packet", + zap.String("channel", k.CounterpartyChannelID), + zap.String("port", k.CounterpartyPortID), + zap.Uint64("sequence", seq), + ) + + eg.Go(func() error { recvPacket, err := dst.chainProvider.QueryRecvPacket(ctx, k.CounterpartyChannelID, k.CounterpartyPortID, seq) if err != nil { return err } - dstMu.Lock() - ck := k.Counterparty() - if _, ok := dstCache[ck]; !ok { - dstCache[ck] = make(PacketMessagesCache) - } - if _, ok := dstCache[ck][chantypes.EventTypeRecvPacket]; !ok { - dstCache[ck][chantypes.EventTypeRecvPacket] = make(PacketSequenceCache) - } - if _, ok := dstCache[ck][chantypes.EventTypeWriteAck]; !ok { - dstCache[ck][chantypes.EventTypeWriteAck] = make(PacketSequenceCache) - } - dstCache[ck][chantypes.EventTypeRecvPacket][seq] = recvPacket - dstCache[ck][chantypes.EventTypeWriteAck][seq] = recvPacket + dstMu.Lock() + dstCache.Cache(chantypes.EventTypeRecvPacket, ck, seq, recvPacket) + dstCache.Cache(chantypes.EventTypeWriteAck, ck, seq, recvPacket) dstMu.Unlock() - } - return nil + + return nil + }) } + + if err := eg.Wait(); err != nil { + return false, err + } + + if len(unacked) > 0 { + dst.log.Debug( + "Will flush MsgAcknowledgement", + zap.Object("channel", k), + zap.Uint64s("sequences", unacked), + ) + } else { + dst.log.Debug( + "No MsgAcknowledgement to flush", + zap.String("channel", k.CounterpartyChannelID), + zap.String("port", k.CounterpartyPortID), + ) + } + + return !skipped, nil } // flush runs queries to relay any pending messages which may have been // in blocks before the height that the chain processors started querying. -func (pp *PathProcessor) flush(ctx context.Context) { +func (pp *PathProcessor) flush(ctx context.Context) error { var ( commitments1 = make(map[ChannelKey][]uint64) commitments2 = make(map[ChannelKey][]uint64) @@ -1240,27 +1358,56 @@ func (pp *PathProcessor) flush(ctx context.Context) { } if err := eg.Wait(); err != nil { - pp.log.Error("Failed to query packet commitments", zap.Error(err)) + return fmt.Errorf("failed to query packet commitments: %w", err) } // From remaining packet commitments, determine if: // 1. Packet commitment is on source, but MsgRecvPacket has not yet been relayed to destination // 2. Packet commitment is on source, and MsgRecvPacket has been relayed to destination, but MsgAcknowledgement has not been written to source to clear the packet commitment. // Based on above conditions, enqueue MsgRecvPacket and MsgAcknowledgement messages + skipped := false for k, seqs := range commitments1 { - eg.Go(queuePendingRecvAndAcks(ctx, pp.pathEnd1, pp.pathEnd2, k, seqs, pathEnd1Cache.PacketFlow, pathEnd2Cache.PacketFlow, &pathEnd1CacheMu, &pathEnd2CacheMu)) + k := k + seqs := seqs + eg.Go(func() error { + done, err := pp.queuePendingRecvAndAcks(ctx, pp.pathEnd1, pp.pathEnd2, k, seqs, pathEnd1Cache.PacketFlow, pathEnd2Cache.PacketFlow, &pathEnd1CacheMu, &pathEnd2CacheMu) + if err != nil { + return err + } + if !done { + skipped = true + } + return nil + }) } for k, seqs := range commitments2 { - eg.Go(queuePendingRecvAndAcks(ctx, pp.pathEnd2, pp.pathEnd1, k, seqs, pathEnd2Cache.PacketFlow, pathEnd1Cache.PacketFlow, &pathEnd2CacheMu, &pathEnd1CacheMu)) + k := k + seqs := seqs + eg.Go(func() error { + done, err := pp.queuePendingRecvAndAcks(ctx, pp.pathEnd2, pp.pathEnd1, k, seqs, pathEnd2Cache.PacketFlow, pathEnd1Cache.PacketFlow, &pathEnd2CacheMu, &pathEnd1CacheMu) + if err != nil { + return err + } + if !done { + skipped = true + } + return nil + }) } if err := eg.Wait(); err != nil { - pp.log.Error("Failed to enqueue pending messages for flush", zap.Error(err)) + return fmt.Errorf("failed to enqueue pending messages for flush: %w", err) } pp.pathEnd1.mergeMessageCache(pathEnd1Cache, pp.pathEnd2.info.ChainID, pp.pathEnd2.inSync) pp.pathEnd2.mergeMessageCache(pathEnd2Cache, pp.pathEnd1.info.ChainID, pp.pathEnd1.inSync) + + if skipped { + return fmt.Errorf("flush was successful, but more packet sequences are still pending") + } + + return nil } // shouldTerminateForFlushComplete will determine if the relayer should exit diff --git a/relayer/processor/types.go b/relayer/processor/types.go index 3f4059b7b..d01e73205 100644 --- a/relayer/processor/types.go +++ b/relayer/processor/types.go @@ -322,6 +322,36 @@ func (c PacketMessagesCache) DeleteMessages(toDelete ...map[string][]uint64) { } } +// IsCached returns true if a sequence for a channel key and event type is already cached. +func (c ChannelPacketMessagesCache) IsCached(eventType string, k ChannelKey, sequence uint64) bool { + if _, ok := c[k]; !ok { + return false + } + if _, ok := c[k][eventType]; !ok { + return false + } + if _, ok := c[k][eventType][sequence]; !ok { + return false + } + return true +} + +// Cache stores packet info safely, generating intermediate maps along the way if necessary. +func (c ChannelPacketMessagesCache) Cache( + eventType string, + k ChannelKey, + sequence uint64, + packetInfo provider.PacketInfo, +) { + if _, ok := c[k]; !ok { + c[k] = make(PacketMessagesCache) + } + if _, ok := c[k][eventType]; !ok { + c[k][eventType] = make(PacketSequenceCache) + } + c[k][eventType][sequence] = packetInfo +} + // Merge merges another ChannelPacketMessagesCache into this one. func (c ChannelPacketMessagesCache) Merge(other ChannelPacketMessagesCache) { for channelKey, messageCache := range other { diff --git a/relayer/processor/types_internal.go b/relayer/processor/types_internal.go index d526ed70a..5bb403429 100644 --- a/relayer/processor/types_internal.go +++ b/relayer/processor/types_internal.go @@ -12,6 +12,11 @@ import ( "go.uber.org/zap/zapcore" ) +var _ zapcore.ObjectMarshaler = packetIBCMessage{} +var _ zapcore.ObjectMarshaler = channelIBCMessage{} +var _ zapcore.ObjectMarshaler = connectionIBCMessage{} +var _ zapcore.ObjectMarshaler = clientICQMessage{} + // pathEndMessages holds the different IBC messages that // will attempt to be sent to the pathEnd. type pathEndMessages struct { diff --git a/relayer/strategies.go b/relayer/strategies.go index 511f09905..047478938 100644 --- a/relayer/strategies.go +++ b/relayer/strategies.go @@ -27,6 +27,8 @@ const ( ProcessorLegacy = "legacy" DefaultClientUpdateThreshold = 0 * time.Millisecond DefaultFlushInterval = 5 * time.Minute + DefaultMaxMsgLength = 5 + TwoMB = 2 * 1024 * 1024 ) // StartRelayer starts the main relaying loop and returns a channel that will contain any control-flow related errors. @@ -35,7 +37,7 @@ func StartRelayer( log *zap.Logger, chains map[string]*Chain, paths []NamedPath, - maxTxSize, maxMsgLength uint64, + maxMsgLength uint64, memo string, clientUpdateThresholdTime time.Duration, flushInterval time.Duration, @@ -80,7 +82,6 @@ func StartRelayer( chainProcessors, ePaths, initialBlockHistory, - maxTxSize, maxMsgLength, memo, messageLifecycle, @@ -98,7 +99,7 @@ func StartRelayer( src, dst := chains[p.Src.ChainID], chains[p.Dst.ChainID] src.PathEnd = p.Src dst.PathEnd = p.Dst - go relayerStartLegacy(ctx, log, src, dst, p.Filter, maxTxSize, maxMsgLength, memo, errorChan) + go relayerStartLegacy(ctx, log, src, dst, p.Filter, TwoMB, maxMsgLength, memo, errorChan) return errorChan default: panic(fmt.Errorf("unexpected processor type: %s, supports one of: [%s, %s]", processorType, ProcessorEvents, ProcessorLegacy)) @@ -132,7 +133,6 @@ func relayerStartEventProcessor( chainProcessors []processor.ChainProcessor, paths []path, initialBlockHistory uint64, - maxTxSize, maxMsgLength uint64, memo string, messageLifecycle processor.MessageLifecycle, @@ -155,6 +155,7 @@ func relayerStartEventProcessor( memo, clientUpdateThresholdTime, flushInterval, + maxMsgLength, )) } From 736e48b31001b73280dcc732a94819f031fe6756 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Wed, 31 May 2023 22:46:38 +0800 Subject: [PATCH 37/46] Problem: fixes in ibc-go v7.0.1 are not included (#1205) * Problem: fixes in ibc-go v7.0.1 are not included * add change doc --- CHANGELOG.md | 1 + go.mod | 2 +- go.sum | 4 ++-- go.work.sum | 37 ++++++++++++++----------------------- 4 files changed, 18 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a98e3921..41ee0c40b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ * [\#1177](https://github.com/cosmos/relayer/pull/1177) Avoid panic due to nil map when add new path and ensure path get written to config. * [\#1178](https://github.com/cosmos/relayer/pull/1178) Add max-gas-amount parameter in chain configs. * [\#1180](https://github.com/cosmos/relayer/pull/1180) Update SDK from v0.47.0 to v0.47.2. +* [\#1205](https://github.com/cosmos/relayer/pull/1205) Update ibc-go to v7.0.1. ## v0.9.3 diff --git a/go.mod b/go.mod index 16f05763e..3ae180cad 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/cosmos/cosmos-sdk v0.47.2 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.4.8 - github.com/cosmos/ibc-go/v7 v7.0.0 + github.com/cosmos/ibc-go/v7 v7.0.1 github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab github.com/ethereum/go-ethereum v1.10.26 github.com/gofrs/flock v0.8.1 diff --git a/go.sum b/go.sum index 3d1947395..fbfd6f99b 100644 --- a/go.sum +++ b/go.sum @@ -356,8 +356,8 @@ github.com/cosmos/gogoproto v1.4.8 h1:BrHKc6WFZt8+jRV71vKSQE+JrfF+JAnzrKo2VP7wIZ github.com/cosmos/gogoproto v1.4.8/go.mod h1:hnb0DIEWTv+wdNzNcqus5xCQXq5+CXauq1FJuurRfVY= github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= -github.com/cosmos/ibc-go/v7 v7.0.0 h1:j4kyywlG0hhDmT9FmSaR5iCIka7Pz7kJTxGWY1nlV9Q= -github.com/cosmos/ibc-go/v7 v7.0.0/go.mod h1:BFh8nKWjr5zeR2OZfhkzdgDzj1+KjRn3aJLpwapStj8= +github.com/cosmos/ibc-go/v7 v7.0.1 h1:NIBNRWjlOoFvFQu1ZlgwkaSeHO5avf4C1YQiWegt8jw= +github.com/cosmos/ibc-go/v7 v7.0.1/go.mod h1:vEaapV6nuLPQlS+g8IKmxMo6auPi0i7HMv1PhViht/E= github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab h1:I9ialKTQo7248V827Bba4OuKPmk+FPzmTVHsLXaIJWw= github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab/go.mod h1:2CwqasX5dSD7Hbp/9b6lhK6BwoBDCBldx7gPKRukR60= github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= diff --git a/go.work.sum b/go.work.sum index eff72b080..4d4ec2939 100644 --- a/go.work.sum +++ b/go.work.sum @@ -114,6 +114,7 @@ cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.3.2/go.mod h1:CO7vbe+evrBvHc0setFHL/u7nlY7HJGzdRSBkT/sirc= cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= +cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= @@ -168,25 +169,12 @@ github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkAp github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= -github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.0 h1:V2/ZgjfDFIygAX3ZapeigkVBoVUtOJKSwrhZdlpSvaA= -github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= -github.com/btcsuite/btcd v0.23.4 h1:IzV6qqkfwbItOS/sg/aDfPDsjPP8twrCOE2R93hxMlQ= -github.com/btcsuite/btcd v0.23.4/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= -github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= github.com/btcsuite/btcd/btcec/v2 v2.1.1/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.2.1/go.mod h1:9/CSmJxmuvqzX9Wh2fXMWToLOHhPd11lSPuIupwTkI8= -github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= -github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= github.com/btcsuite/btcd/btcutil v1.1.1 h1:hDcDaXiP0uEzR8Biqo2weECKqEw0uHDZ9ixIWevVQqY= github.com/btcsuite/btcd/btcutil v1.1.1/go.mod h1:nbKlBMNm9FGsdvKvu0essceubPiAcI57pYBNnsLAa34= github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= -github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/bufbuild/buf v1.7.0/go.mod h1:Go40fMAF46PnPLC7jJgTQhAI95pmC0+VtxFKVC0qLq0= github.com/bufbuild/connect-go v1.0.0/go.mod h1:9iNvh/NOsfhNBUH5CtvXeVUskQO1xsrEviH7ZArwZ3I= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= @@ -242,21 +230,23 @@ github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFE github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= +github.com/cosmos/cosmos-sdk v0.47.0/go.mod h1:FTtZbqiHCZ2vun9WrPq6qLQafNKkAuIhLAxzLjr2TiI= github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.mod h1:c8IO23vgNxueCCJlSI9awQtcxsvc+buzaeThB85qfBU= github.com/cosmos/gogoproto v1.4.1/go.mod h1:Ac9lzL4vFpBMcptJROQ6dQ4M3pOEK5Z/l0Q9p+LoCr4= github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU= github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= +github.com/cosmos/ibc-go/v7 v7.0.1 h1:NIBNRWjlOoFvFQu1ZlgwkaSeHO5avf4C1YQiWegt8jw= +github.com/cosmos/ibc-go/v7 v7.0.1/go.mod h1:vEaapV6nuLPQlS+g8IKmxMo6auPi0i7HMv1PhViht/E= github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cristalhq/acmd v0.8.1/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= github.com/daixiang0/gci v0.8.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= @@ -287,6 +277,7 @@ github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/x github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= @@ -311,6 +302,9 @@ github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AE github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= github.com/go-toolsmith/astcopy v1.0.2/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= @@ -323,6 +317,7 @@ github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslW github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -399,7 +394,6 @@ github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrO github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= @@ -448,6 +442,7 @@ github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awS github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= @@ -511,9 +506,7 @@ github.com/nishanths/exhaustive v0.8.3/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/ github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= @@ -563,6 +556,7 @@ github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:r github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= @@ -612,7 +606,6 @@ github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= @@ -706,6 +699,7 @@ golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -720,6 +714,7 @@ golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2F golang.org/x/exp v0.0.0-20221019170559-20944726eadf/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= @@ -727,10 +722,8 @@ golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -755,8 +748,6 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From de95076ff607789ec325d70cb974a9dfb0176085 Mon Sep 17 00:00:00 2001 From: Cosmos-Harry <110472914+Cosmos-Harry@users.noreply.github.com> Date: Thu, 1 Jun 2023 00:45:45 -0400 Subject: [PATCH 38/46] Harry/rly address (#1204) * added addresCmd to root and keys.go * nicks * nick * made a common method "showAddressByChainAndKey" to be used by both addressCmd and keysShowCmd --------- Co-authored-by: Harry Co-authored-by: Andrew Gouin --- cmd/keys.go | 104 +++++++++++++++++++++++++++++++--------------------- cmd/root.go | 1 + 2 files changed, 63 insertions(+), 42 deletions(-) diff --git a/cmd/keys.go b/cmd/keys.go index aa915d065..0ddd447d4 100644 --- a/cmd/keys.go +++ b/cmd/keys.go @@ -48,8 +48,8 @@ func keysCmd(a *appState) *cobra.Command { keysRestoreCmd(a), keysDeleteCmd(a), keysListCmd(a), - keysShowCmd(a), keysExportCmd(a), + keysShowCmd(a), ) return cmd @@ -289,47 +289,6 @@ $ %s k l ibc-1`, appName, appName)), return cmd } -// keysShowCmd respresents the `keys show` command -func keysShowCmd(a *appState) *cobra.Command { - cmd := &cobra.Command{ - Use: "show chain_name [key_name]", - Aliases: []string{"s"}, - Short: "Shows a key from the keychain associated with a particular chain", - Args: withUsage(cobra.RangeArgs(1, 2)), - Example: strings.TrimSpace(fmt.Sprintf(` -$ %s keys show ibc-0 -$ %s keys show ibc-1 key2 -$ %s k s ibc-2 testkey`, appName, appName, appName)), - RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.config.Chains[args[0]] - if !ok { - return errChainNotFound(args[0]) - } - - var keyName string - if len(args) == 2 { - keyName = args[1] - } else { - keyName = chain.ChainProvider.Key() - } - - if !chain.ChainProvider.KeyExists(keyName) { - return errKeyDoesntExist(keyName) - } - - address, err := chain.ChainProvider.ShowAddress(keyName) - if err != nil { - return err - } - - fmt.Fprintln(cmd.OutOrStdout(), address) - return nil - }, - } - - return cmd -} - // keysExportCmd respresents the `keys export` command func keysExportCmd(a *appState) *cobra.Command { cmd := &cobra.Command{ @@ -363,3 +322,64 @@ $ %s k e cosmoshub testkey`, appName, appName)), return cmd } + +// ShowAddressByChainAndKey represents the logic for showing relayer address by chain_name and key_name +func (a *appState) showAddressByChainAndKey(cmd *cobra.Command, args []string) error { + chain, ok := a.config.Chains[args[0]] + if !ok { + return errChainNotFound(args[0]) + } + + var keyName string + if len(args) == 2 { + keyName = args[1] + } else { + keyName = chain.ChainProvider.Key() + } + + if !chain.ChainProvider.KeyExists(keyName) { + return errKeyDoesntExist(keyName) + } + + address, err := chain.ChainProvider.ShowAddress(keyName) + if err != nil { + return err + } + + fmt.Fprintln(cmd.OutOrStdout(), address) + return nil +} + +// keysShowCmd respresents the `keys show` command +func keysShowCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "show chain_name [key_name]", + Aliases: []string{"s"}, + Short: "Shows a key from the keychain associated with a particular chain", + Args: withUsage(cobra.RangeArgs(1, 2)), + Example: strings.TrimSpace(fmt.Sprintf(` +$ %s keys show ibc-0 +$ %s keys show ibc-1 key2 +$ %s k s ibc-2 testkey`, appName, appName, appName)), + RunE: a.showAddressByChainAndKey, + } + + return cmd +} + +// addressCmd represents the address of a relayer +func addressCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "address chain_name [key_name]", + Aliases: []string{"a"}, + Short: "Shows the address of a relayer", + Args: withUsage(cobra.RangeArgs(1, 2)), + Example: strings.TrimSpace(fmt.Sprintf(` +$ %s address ibc-0 +$ %s address ibc-1 key2 +$ %s a ibc-2 testkey`, appName, appName, appName)), + RunE: a.showAddressByChainAndKey, + } + + return cmd +} diff --git a/cmd/root.go b/cmd/root.go index eb8367409..1a6cfc3d3 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -120,6 +120,7 @@ func NewRootCmd(log *zap.Logger) *cobra.Command { startCmd(a), lineBreakCommand(), getVersionCmd(a), + addressCmd(a), ) return rootCmd From e95dd80608536c31d37354bdd7f7ec46a2172009 Mon Sep 17 00:00:00 2001 From: Justin Tieri <37750742+jtieri@users.noreply.github.com> Date: Wed, 7 Jun 2023 13:56:16 -0500 Subject: [PATCH 39/46] deps: update to ibc-go v7.1.0-rc0 (#1207) --- go.mod | 6 +- go.sum | 23 +- go.work.sum | 791 ++++++++++++++++++++- relayer/chains/cosmos/module/app_module.go | 3 +- 4 files changed, 805 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 3ae180cad..cfa4ade5c 100644 --- a/go.mod +++ b/go.mod @@ -14,8 +14,8 @@ require ( github.com/cosmos/cosmos-sdk v0.47.2 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.4.8 - github.com/cosmos/ibc-go/v7 v7.0.1 - github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab + github.com/cosmos/ibc-go/v7 v7.1.0-rc0 + github.com/cosmos/ics23/go v0.10.0 github.com/ethereum/go-ethereum v1.10.26 github.com/gofrs/flock v0.8.1 github.com/gogo/protobuf v1.3.2 @@ -165,7 +165,7 @@ require ( go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.10.0 // indirect - golang.org/x/crypto v0.7.0 // indirect + golang.org/x/crypto v0.8.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/net v0.9.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect diff --git a/go.sum b/go.sum index fbfd6f99b..a7ed4def2 100644 --- a/go.sum +++ b/go.sum @@ -356,10 +356,10 @@ github.com/cosmos/gogoproto v1.4.8 h1:BrHKc6WFZt8+jRV71vKSQE+JrfF+JAnzrKo2VP7wIZ github.com/cosmos/gogoproto v1.4.8/go.mod h1:hnb0DIEWTv+wdNzNcqus5xCQXq5+CXauq1FJuurRfVY= github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= -github.com/cosmos/ibc-go/v7 v7.0.1 h1:NIBNRWjlOoFvFQu1ZlgwkaSeHO5avf4C1YQiWegt8jw= -github.com/cosmos/ibc-go/v7 v7.0.1/go.mod h1:vEaapV6nuLPQlS+g8IKmxMo6auPi0i7HMv1PhViht/E= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab h1:I9ialKTQo7248V827Bba4OuKPmk+FPzmTVHsLXaIJWw= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab/go.mod h1:2CwqasX5dSD7Hbp/9b6lhK6BwoBDCBldx7gPKRukR60= +github.com/cosmos/ibc-go/v7 v7.1.0-rc0 h1:b78+/74AJDp0Sc7utMO1l4nI/u4ERnyta1nqooqQrGI= +github.com/cosmos/ibc-go/v7 v7.1.0-rc0/go.mod h1:7MptlWeIyqmDiuJeRAFqBvXKY8Hybd+rF8vMSmGd2zg= +github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= +github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= github.com/cosmos/ledger-cosmos-go v0.12.2/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI= github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= @@ -439,8 +439,8 @@ github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbS github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -460,10 +460,10 @@ github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -474,7 +474,6 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= @@ -738,8 +737,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= @@ -994,8 +993,8 @@ github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3C github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -1060,8 +1059,8 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= diff --git a/go.work.sum b/go.work.sum index 4d4ec2939..ddbf0b26a 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,293 +1,641 @@ +4d63.com/gochecknoglobals v0.1.0 h1:zeZSRqj5yCg28tCkIV/z/lWbwvNm5qnKVS15PI8nhD0= 4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512 h1:SRsZGA7aFnCZETmov57jwPrWuTmaZK6+4R4v5FUe1/c= bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go/accessapproval v1.5.0 h1:/nTivgnV/n1CaAeo+ekGexTYUsKEU9jUVkoY5359+3Q= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accesscontextmanager v1.4.0 h1:CFhNhU7pcD11cuDkQdrE6PQJgv0EXNKNv06jIzbLlCU= cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/aiplatform v1.27.0 h1:DBi3Jk9XjCJ4pkkLM4NqKgj3ozUL1wq4l+d3/jTGXAI= cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/analytics v0.12.0 h1:NKw6PpQi6V1O+KsjuTd+bhip9d0REYu4NevC45vtGp8= +cloud.google.com/go/apigateway v1.4.0 h1:IIoXKR7FKrEAQhMTz5hK2wiDz2WNFHS7eVr/L1lE/rM= cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigeeconnect v1.4.0 h1:AONoTYJviyv1vS4IkvWzq69gEVdvHx35wKXc+e6wjZQ= cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeregistry v0.4.0 h1:Av+wedLP6pM8NsLruknv/RFCE/5VVavOhZ8j722vBxg= cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apikeys v0.4.0 h1:d+t1B9U1Ze3LmiRYdSVhNrcRlU6coLvPzNDkqYVuHoc= cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/appengine v1.5.0 h1:lmG+O5oaR9xNwaRBwE2XoMhwQHsHql5IoiGr1ptdDwU= cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/area120 v0.6.0 h1:TCMhwWEWhCn8d44/Zs7UCICTWje9j3HuV6nVGMjdpYw= +cloud.google.com/go/artifactregistry v1.9.0 h1:3d0LRAU1K6vfqCahhl9fx2oGHcq+s5gftdix4v8Ibrc= cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/asset v1.10.0 h1:aCrlaLGJWTODJX4G56ZYzJefITKEWNfbjjtHSzWpxW0= cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/assuredworkloads v1.9.0 h1:hhIdCOowsT1GG5eMCIA0OwK6USRuYTou/1ZeNxCSRtA= cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/automl v1.8.0 h1:BMioyXSbg7d7xLibn47cs0elW6RT780IUWr42W8rp2Q= cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/baremetalsolution v0.4.0 h1:g9KO6SkakcYPcc/XjAzeuUrEOXlYPnMpuiaywYaGrmQ= cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/batch v0.4.0 h1:1jvEBY55OH4Sd2FxEXQfxGExFWov1A/IaRe+Z5Z71Fw= cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/beyondcorp v0.3.0 h1:w+4kThysgl0JiKshi2MKDCg2NZgOyqOI0wq2eBZyrzA= cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/bigquery v1.44.0 h1:Wi4dITi+cf9VYp4VH2T9O41w0kCW0uQTELq2Z6tukN0= cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/billing v1.7.0 h1:Xkii76HWELHwBtkQVZvqmSo9GTr0O+tIbRNnMcGdlg4= cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/binaryauthorization v1.4.0 h1:pL70vXWn9TitQYXBWTK2abHl2JHLwkFRjYw6VflRqEA= cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/certificatemanager v1.4.0 h1:tzbR4UHBbgsewMWUD93JHi8EBi/gHBoSAcY1/sThFGk= cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/channel v1.9.0 h1:pNuUlZx0Jb0Ts9P312bmNMuH5IiFWIR4RUtLb70Ke5s= cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/cloudbuild v1.4.0 h1:TAAmCmAlOJ4uNBu6zwAjwhyl/7fLHHxIEazVhr3QBbQ= cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/clouddms v1.4.0 h1:UhzHIlgFfMr6luVYVNydw/pl9/U5kgtjCMJHnSvoVws= cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/cloudtasks v1.8.0 h1:faUiUgXjW8yVZ7XMnKHKm1WE4OldPBUWWfIRN/3z1dc= cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/contactcenterinsights v1.4.0 h1:tTQLI/ZvguUf9Hv+36BkG2+/PeC8Ol1q4pBW+tgCx0A= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/container v1.7.0 h1:nbEK/59GyDRKKlo1SqpohY1TK8LmJ2XNcvS9Gyom2A0= cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/containeranalysis v0.6.0 h1:2824iym832ljKdVpCBnpqm5K94YT/uHTVhNF+dRTXPI= +cloud.google.com/go/datacatalog v1.8.0 h1:6kZ4RIOW/uT7QWC5SfPfq/G8sYzr/v+UOmOAxy4Z1TE= cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/dataflow v0.7.0 h1:CW3541Fm7KPTyZjJdnX6NtaGXYFn5XbFC5UcjgALKvU= +cloud.google.com/go/dataform v0.5.0 h1:vLwowLF2ZB5J5gqiZCzv076lDI/Rd7zYQQFu5XO1PSg= cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/datafusion v1.5.0 h1:j5m2hjWovTZDTQak4MJeXAR9yN7O+zMfULnjGw/OOLg= cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datalabeling v0.6.0 h1:dp8jOF21n/7jwgo/uuA0RN8hvLcKO4q6s/yvwevs2ZM= +cloud.google.com/go/dataplex v1.4.0 h1:cNxeA2DiWliQGi21kPRqnVeQ5xFhNoEjPRt1400Pm8Y= cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataproc v1.8.0 h1:gVOqNmElfa6n/ccG/QDlfurMWwrK3ezvy2b2eDoCmS0= cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataqna v0.6.0 h1:gx9jr41ytcA3dXkbbd409euEaWtofCVXYBvJz3iYm18= +cloud.google.com/go/datastore v1.10.0 h1:4siQRf4zTiAVt/oeH4GureGkApgb2vtPQAtOmhpqQwE= cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastream v1.5.0 h1:PgIgbhedBtYBU6POGXFMn2uSl9vpqubc3ewTNdcU8Mk= cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/deploy v1.5.0 h1:kI6dxt8Ml0is/x7YZjLveTvR7YPzXAUD/8wQZ2nH5zA= cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/dialogflow v1.29.0 h1:Opy6fM2IV9ecQOXkce0JByjBVg8+4X+1AbTAQLbgrCg= cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dlp v1.7.0 h1:9I4BYeJSVKoSKgjr70fLdRDumqcUeVmHV4fd5f9LR6Y= cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/documentai v1.10.0 h1:jfq09Fdjtnpnmt/MLyf6A3DM3ynb8B2na0K+vSXvpFM= cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/domains v0.7.0 h1:pu3JIgC1rswIqi5romW0JgNO6CTUydLYX8zyjiAvO1c= +cloud.google.com/go/edgecontainer v0.2.0 h1:hd6J2n5dBBRuAqnNUEsKWrp6XNPKsaxwwIyzOPZTokk= +cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.4.0 h1:b6csrQXCHKQmfo9h3dG/pHyoEh+fQG1Yg78a53LAviY= cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/eventarc v1.8.0 h1:AgCqrmMMIcel5WWKkzz5EkCUKC3Rl5LNMMYsS+LvsI0= cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/filestore v1.4.0 h1:yjKOpzvqtDmL5AXbKttLc8j0hL20kuC1qPdy5HPcxp0= cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/functions v1.9.0 h1:35tgv1fQOtvKqH/uxJMzX3w6usneJ0zXpsFr9KAVhNE= cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/gaming v1.8.0 h1:97OAEQtDazAJD7yh/kvQdSCQuTKdR0O+qWAJBZJ4xiA= cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gkebackup v0.3.0 h1:4K+jiv4ocqt1niN8q5Imd8imRoXBHTrdnJVt/uFFxF4= cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkeconnect v0.6.0 h1:zAcvDa04tTnGdu6TEZewaLN2tdMtUOJJ7fEceULjguA= +cloud.google.com/go/gkehub v0.10.0 h1:JTcTaYQRGsVm+qkah7WzHb6e9sf1C0laYdRPn9aN+vg= +cloud.google.com/go/gkemulticloud v0.4.0 h1:8F1NhJj8ucNj7lK51UZMtAjSWTgP1zO18XF6vkfiPPU= cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/grafeas v0.2.0 h1:CYjC+xzdPvbV65gi6Dr4YowKcmLo045pm18L0DhdELM= +cloud.google.com/go/gsuiteaddons v1.4.0 h1:TGT2oGmO5q3VH6SjcrlgPUWI0njhYv4kywLm6jag0to= cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iap v1.5.0 h1:BGEXovwejOCt1zDk8hXq0bOhhRu9haXKWXXXp2B4wBM= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/ids v1.2.0 h1:LncHK4HHucb5Du310X8XH9/ICtMwZ2PCfK0ScjWiJoY= cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/iot v1.4.0 h1:Y9+oZT9jD4GUZzORXTU45XsnQrhxmDT+TFbPil6pRVQ= cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/kms v1.6.0 h1:OWRZzrPmOZUzurjI2FBGtgY2mB1WaJkqhw6oIwSj0Yg= cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/language v1.8.0 h1:3Wa+IUMamL4JH3Zd3cDZUHpwyqplTACt6UZKRD2eCL4= cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/lifesciences v0.6.0 h1:tIqhivE2LMVYkX0BLgG7xL64oNpDaFFI7teunglt1tI= +cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79benI= cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/managedidentities v1.4.0 h1:3Kdajn6X25yWQFhFCErmKSYTSvkEd3chJROny//F1A0= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/maps v0.1.0 h1:kLReRbclTgJefw2fcCbdLPLhPj0U6UUWN10ldG8sdOU= cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/mediatranslation v0.6.0 h1:qAJzpxmEX+SeND10Y/4868L5wfZpo4Y3BIEnIieP4dk= +cloud.google.com/go/memcache v1.7.0 h1:yLxUzJkZVSH2kPaHut7k+7sbIBFpvSh1LW9qjM2JDjA= cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/metastore v1.8.0 h1:3KcShzqWdqxrDEXIBWpYJpOOrgpDj+HlBi07Grot49Y= cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/monitoring v1.8.0 h1:c9riaGSPQ4dUKWB+M1Fl0N+iLxstMbCktdEwYSPGDvA= cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/networkconnectivity v1.7.0 h1:BVdIKaI68bihnXGdCVL89Jsg9kq2kg+II30fjVqo62E= cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkmanagement v1.5.0 h1:mDHA3CDW00imTvC5RW6aMGsD1bH+FtKwZm/52BxaiMg= cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networksecurity v0.6.0 h1:qDEX/3sipg9dS5JYsAY+YvgTjPR63cozzAWop8oZS94= +cloud.google.com/go/notebooks v1.5.0 h1:AC8RPjNvel3ExgXjO1YOAz+teg9+j+89TNxa7pIZfww= cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/optimization v1.2.0 h1:7PxOq9VTT7TMib/6dMoWpMvWS2E4dJEvtYzjvBreaec= cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/orchestration v1.4.0 h1:39d6tqvNjd/wsSub1Bn4cEmrYcet5Ur6xpaN+SxOxtY= cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orgpolicy v1.5.0 h1:erF5PHqDZb6FeFrUHiYj2JK2BMhsk8CyAg4V4amJ3rE= cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/osconfig v1.10.0 h1:NO0RouqCOM7M2S85Eal6urMSSipWwHU8evzwS+siqUI= cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/oslogin v1.7.0 h1:pKGDPfeZHDybtw48WsnVLjoIPMi9Kw62kUE5TXCLCN4= cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/phishingprotection v0.6.0 h1:OrwHLSRSZyaiOt3tnY33dsKSedxbMzsXvqB21okItNQ= +cloud.google.com/go/policytroubleshooter v1.4.0 h1:NQklJuOUoz1BPP+Epjw81COx7IISWslkZubz/1i0UN8= cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/privatecatalog v0.6.0 h1:Vz86uiHCtNGm1DeC32HeG2VXmOq5JRYA3VRPf8ZEcSg= +cloud.google.com/go/pubsub v1.27.1 h1:q+J/Nfr6Qx4RQeu3rJcnN48SNC0qzlYzSeqkPq93VHs= cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsublite v1.5.0 h1:iqrD8vp3giTb7hI1q4TQQGj77cj8zzgmMPsTZtLnprM= cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/recaptchaenterprise v1.3.1 h1:u6EznTGzIdsyOsvm+Xkw0aSuKFXQlyjGE9a4exk6iNQ= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0 h1:UqzFfb/WvhwXGDF1eQtdHLrmni+iByZXY4h3w9Kdyv8= cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recommendationengine v0.6.0 h1:6w+WxPf2LmUEqX0YyvfCoYb8aBYOcbIV25Vg6R0FLGw= +cloud.google.com/go/recommender v1.8.0 h1:9kMZQGeYfcOD/RtZfcNKGKtoex3DdoB4zRgYU/WaIwE= cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/redis v1.10.0 h1:/zTwwBKIAD2DEWTrXZp8WD9yD/gntReF/HkPssVYd0U= cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/resourcemanager v1.4.0 h1:NDao6CHMwEZIaNsdWy+tuvHaavNeGP06o1tgrR0kLvU= cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcesettings v1.4.0 h1:eTzOwB13WrfF0kuzG2ZXCfB3TLunSHBur4s+HFU6uSM= cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/retail v1.11.0 h1:N9fa//ecFUOEPsW/6mJHfcapPV0wBSwIUwpVZB7MQ3o= cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/run v0.3.0 h1:AWPuzU7Xtaj3Jf+QarDWIs6AJ5hM1VFQ+F6Q+VZ6OT4= cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/scheduler v1.7.0 h1:K/mxOewgHGeKuATUJNGylT75Mhtjmx1TOkKukATqMT8= cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/secretmanager v1.9.0 h1:xE6uXljAC1kCR8iadt9+/blg1fvSbmenlsDN4fT9gqw= cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/security v1.10.0 h1:KSKzzJMyUoMRQzcz7azIgqAUqxo7rmQ5rYvimMhikqg= cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/securitycenter v1.16.0 h1:QTVtk/Reqnx2bVIZtJKm1+mpfmwRwymmNvlaFez7fQY= cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/servicecontrol v1.5.0 h1:ImIzbOu6y4jL6ob65I++QzvqgFaoAKgHOG+RU9/c4y8= cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicedirectory v1.7.0 h1:f7M8IMcVzO3T425AqlZbP3yLzeipsBHtRza8vVFYMhQ= cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicemanagement v1.5.0 h1:TpkCO5M7dhKSy1bKUD9o/sSEW/U1Gtx7opA1fsiMx0c= cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/serviceusage v1.4.0 h1:b0EwJxPJLpavSljMQh0RcdHsUrr5DQ+Nelt/3BAs5ro= cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/shell v1.4.0 h1:b1LFhFBgKsG252inyhtmsUUZwchqSz3WTvAIf3JFo4g= cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/spanner v1.41.0 h1:NvdTpRwf7DTegbfFdPjAWyD7bOVu0VeMqcvR9aCQCAc= cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/speech v1.9.0 h1:yK0ocnFH4Wsf0cMdUyndJQ/hPv02oTJOxzi6AgpBy4s= cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storagetransfer v1.6.0 h1:fUe3OydbbvHcAYp07xY+2UpH4AermGbmnm7qdEj3tGE= cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/talent v1.4.0 h1:MrekAGxLqAeAol4Sc0allOVqUGO8j+Iim8NMvpiD7tM= cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/texttospeech v1.5.0 h1:ccPiHgTewxgyAeCWgQWvZvrLmbfQSFABTMAfrSPLPyY= cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/tpu v1.4.0 h1:ztIdKoma1Xob2qm6QwNh4Xi9/e7N3IfvtwG5AcNsj1g= cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/trace v1.4.0 h1:qO9eLn2esajC9sxpqp1YKX37nXC3L4BfGnPS0Cx9dYo= cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/translate v1.4.0 h1:AOYOH3MspzJ/bH1YXzB+xTE8fMpn3mwhLjugwGXvMPI= cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/video v1.9.0 h1:ttlvO4J5c1VGq6FkHqWPD/aH6PfdxujHt+muTJlW1Zk= cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/videointelligence v1.9.0 h1:RPFgVVXbI2b5vnrciZjtsUgpNKVtHO/WIyXUhEfuMhA= cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/vision v1.2.0 h1:/CsSTkbmO9HC8iQpxbK8ATms3OQaX3YQUeTMGCxlaK4= +cloud.google.com/go/vision/v2 v2.5.0 h1:TQHxRqvLMi19azwm3qYuDbEzZWmiKJNTpGbkNsfRCik= cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vmmigration v1.3.0 h1:A2Tl2ZmwMRpvEmhV2ibISY85fmQR+Y5w9a0PlRz5P3s= cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmwareengine v0.1.0 h1:JMPZaOT/gIUxVlTqSl/QQ32Y2k+r0stNeM1NSqhVP9o= cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vpcaccess v1.5.0 h1:woHXXtnW8b9gLFdWO9HLPalAddBQ9V4LT+1vjKwR3W8= cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/webrisk v1.7.0 h1:ypSnpGlJnZSXbN9a13PDmAYvVekBLnGKxQ3Q9SMwnYY= cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/websecurityscanner v1.4.0 h1:y7yIFg/h/mO+5Y5aCOtVAnpGUOgqCH5rXQ2Oc8Oq2+g= cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/workflows v1.9.0 h1:7Chpin9p50NTU8Tb7qk+I11U/IwVXmDhEoSsdccvInE= cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.3.2/go.mod h1:CO7vbe+evrBvHc0setFHL/u7nlY7HJGzdRSBkT/sirc= cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= +cosmossdk.io/simapp v0.0.0-20230323161446-0af178d721ff h1:P1ialzTepD1oxdNPYc5N8Eggq3RdejZq3cJs8YYMs9Y= +cosmossdk.io/simapp v0.0.0-20230323161446-0af178d721ff/go.mod h1:AKzx6Mb544LjJ9RHmGFHjY9rEOLiUAi8I0F727TR0dY= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= +github.com/Abirdcfly/dupword v0.0.7 h1:z14n0yytA3wNO2gpCD/jVtp/acEXPGmYu0esewpBt6Q= github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M= +github.com/Antonboom/errname v0.1.7 h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako= github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= +github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q= github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= +github.com/Azure/azure-sdk-for-go v16.2.1+incompatible h1:KnPIugL51v3N3WwvaSmZbxukD1WuWXOiE9fRdu32f2I= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1 h1:qoVeMsc9/fh/yhxVaA0obYjVH/oI/ihrOoMwsLS9KSA= +github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3 h1:E+m3SkZCN0Bf5q7YdTs5lSm2CYY3CK4spn5OmUIiQtk= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0 h1:Px2UA+2RvSSvv+RvJNuUB6n7rs5Wsel4dXLe90Um2n4= github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= +github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= +github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= +github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= +github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= +github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 h1:+r1rSv4gvYn0wmRjC8X7IAzX8QezqtFV9m0MUHFJgts= github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= +github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3 h1:4FA+QBaydEHlwxg0lMN3rhwoDaQy6LKhVWR4qvq4BuA= +github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= +github.com/OpenPeeDeeP/depguard v1.1.1 h1:TSUznLjvp/4IUP+OQ0t/4jF4QUyxIcVX8YnghZdunyA= github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= +github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 h1:ra2OtmuW0AE5csawV4YXMNGNQQXvLRps3z2Z59OPO+I= github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= +github.com/Shopify/sarama v1.19.0 h1:9oksLxC6uxVPHPVYUmq6xhr1BOF/hHobWH2UzO67z1s= +github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= +github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= +github.com/aead/siphash v1.0.1 h1:FwHfE/T45KPKYuuSAKyyvE+oPWcaQ+CUmFW0bPlM+kg= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw= +github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= +github.com/alexflint/go-filemutex v1.1.0 h1:IAWuUuRYL2hETx5b8vCgwnD+xSdlsTQY6s2JjBsqLdg= github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= +github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI= +github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 h1:7Ip0wMmLHLRJdrloDxZfhMm0xrLXZS8+COSu2bXmEQs= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= +github.com/ashanbrown/forbidigo v1.3.0 h1:VkYIwb/xxdireGAdJNZoo24O4lmnEWkactplBlWTShc= github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= +github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= +github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= +github.com/aws/aws-lambda-go v1.13.3 h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY= +github.com/aws/aws-sdk-go-v2 v1.9.1 h1:ZbovGV/qo40nrOJ4q8G33AGICzaPI45FHQWJ9650pF4= +github.com/aws/aws-sdk-go-v2/config v1.1.1 h1:ZAoq32boMzcaTW9bcUacBswAmHTbvlvDJICgHFZuECo= +github.com/aws/aws-sdk-go-v2/credentials v1.1.1 h1:NbvWIM1Mx6sNPTxowHgS2ewXCRp+NGTzUYb/96FZJbY= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 h1:EtEU7WRaWliitZh2nmuxEXrN0Cb8EgPUFGIoTMeqbzI= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1 h1:w/fPGB0t5rWwA43mux4e9ozFSH5zF1moQemlA131PWc= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 h1:4AH9fFjUlVktQMznF+YN33aWNXaR4VgDXyP28qokJC0= +github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1 h1:cKr6St+CtC3/dl/rEBJvlk7A/IN5D5F02GNkGzfbtVU= +github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 h1:37QubsarExl5ZuCBlnRP+7l1tNwZPBSTqpTBrPH98RU= +github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 h1:TJoIfnIFubCX0ACVeJ0w46HEH5MwjwYN4iFhuYIhfIY= +github.com/aws/smithy-go v1.8.0 h1:AEwwwXQZtUwP5Mz506FeXXrKBe0jA8gVM+1gEcSRooc= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= +github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= +github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= +github.com/bombsimon/wsl/v3 v3.3.0 h1:Mka/+kRLoQJq7g2rggtgQsjuI/K5Efd87WX96EWFxjM= github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= +github.com/bradleyfalzon/ghinstallation/v2 v2.0.4 h1:tXKVfhE7FcSkhkv0UwkLvPDeZ4kz6OXd0PKPlFqf81M= +github.com/breml/bidichk v0.2.3 h1:qe6ggxpTfA8E75hdjWPZ581sY3a2lnl0IRxLQFelECI= github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= +github.com/breml/errchkjson v0.3.0 h1:YdDqhfqMT+I1vIxPSas44P+9Z9HzJwCeAzjB8PxP1xw= github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= +github.com/bshuster-repo/logrus-logstash-hook v0.4.1 h1:pgAtgj+A31JBVtEHu2uHuEx0n+2ukqUJnS2vVe5pQNA= github.com/btcsuite/btcd v0.23.0 h1:V2/ZgjfDFIygAX3ZapeigkVBoVUtOJKSwrhZdlpSvaA= github.com/btcsuite/btcd/btcec/v2 v2.1.1/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.2.1/go.mod h1:9/CSmJxmuvqzX9Wh2fXMWToLOHhPd11lSPuIupwTkI8= github.com/btcsuite/btcd/btcutil v1.1.1 h1:hDcDaXiP0uEzR8Biqo2weECKqEw0uHDZ9ixIWevVQqY= github.com/btcsuite/btcd/btcutil v1.1.1/go.mod h1:nbKlBMNm9FGsdvKvu0essceubPiAcI57pYBNnsLAa34= github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw= +github.com/btcsuite/goleveldb v1.0.0 h1:Tvd0BfvqX9o823q1j2UZ/epQo09eJh6dTcRp79ilIN4= +github.com/btcsuite/snappy-go v1.0.0 h1:ZxaA6lo2EpxGddsA8JwWOcxlzRybb444sgmeJQMJGQE= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc= +github.com/btcsuite/winsvc v1.0.0 h1:J9B4L7e3oqhXOcm+2IuNApwzQec85lE+QaikUcCs+dk= +github.com/bufbuild/buf v1.7.0 h1:uWRjhIXcrWkzIkA5TqXGyJbF51VW54QJsQZ3nwaes5Q= github.com/bufbuild/buf v1.7.0/go.mod h1:Go40fMAF46PnPLC7jJgTQhAI95pmC0+VtxFKVC0qLq0= +github.com/bufbuild/connect-go v1.0.0 h1:htSflKUT8y1jxhoPhPYTZMrsY3ipUXjjrbcZR5O2cVo= github.com/bufbuild/connect-go v1.0.0/go.mod h1:9iNvh/NOsfhNBUH5CtvXeVUskQO1xsrEviH7ZArwZ3I= +github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= +github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= +github.com/bwesterb/go-ristretto v1.2.0 h1:xxWOVbN5m8NNKiSDZXE1jtZvZnC6JSJ9cYFADiZcWtw= github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/casbin/casbin/v2 v2.37.0 h1:/poEwPSovi4bTOcP752/CsTQiRz2xycyVKFG7GUhbDw= github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charithe/durationcheck v0.0.9 h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy6EEutYk= github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= +github.com/chavacava/garif v0.0.0-20220630083739-93517212f375 h1:E7LT642ysztPWE0dfz43cWOvMiF42DyTRC+eZIaO4yI= github.com/chavacava/garif v0.0.0-20220630083739-93517212f375/go.mod h1:4m1Rv7xfuwWPNKXlThldNuJvutYM6J95wNuuVmn55To= +github.com/checkpoint-restore/go-criu/v4 v4.1.0 h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo= +github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8= +github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= +github.com/cheggaaa/pb v1.0.27 h1:wIkZHkNfC7R6GI5w7l/PdAdzXzlrbcI3p8OAlnkTsnc= +github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible h1:C29Ae4G5GtYyYMm1aztcyj/J5ckgJm2zwdDajFbx1NY= +github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= +github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec h1:EdRZT3IeKQmfCSrgo8SZ8V3MEnskuJP0wCYNpe+aiXo= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/cloudflare/circl v1.1.0 h1:bZgT/A+cikZnKIwn7xL2OBj012Bmvho/o6RpRvv3GKY= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= +github.com/cloudflare/cloudflare-go v0.14.0 h1:gFqGlGl/5f9UGXAaKapCGUfaTCgRKKnzu2VvzMZlOFA= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677 h1:qbb/AE938DFhOajUYh9+OXELpSF9KZw2ZivtmW6eX1Q= github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677/go.mod h1:890yq1fUb9b6dGNwssgeUO5vQV9qfXnCPxAJhBQfXw0= github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f h1:C43yEtQ6NIf4ftFXD/V55gnGFgPbMQobd//YlnLjUJ8= +github.com/containerd/aufs v1.0.0 h1:2oeJiwX5HstO7shSrPZjrohJZLzK36wvpdmzDRkL/LY= +github.com/containerd/btrfs v1.0.0 h1:osn1exbzdub9L5SouXO5swW4ea/xVdJZ3wokxN5GrnA= github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= +github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= github.com/containerd/containerd v1.6.8/go.mod h1:By6p5KqPK0/7/CgO/A6t/Gz+CUYUu2zf1hUaaymVXB0= github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= +github.com/containerd/fifo v1.0.0 h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU= +github.com/containerd/fuse-overlayfs-snapshotter v1.0.2 h1:Xy9Tkx0tk/SsMfLDFc69wzqSrxQHYEFELHBO/Z8XO3M= github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.6 h1:el5WPymG5nRRLQF1EfB97FWob4Tdc8INg8RZMaXWZlo= github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34= +github.com/containerd/go-runc v1.0.0 h1:oU+lLv1ULm5taqgV/CJivypVODI4SUz1znWjv3nNYS0= github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= +github.com/containerd/imgcrypt v1.1.4 h1:iKTstFebwy3Ak5UF0RHSeuCTahC5OIrPJa6vjMAM81s= github.com/containerd/imgcrypt v1.1.4/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO8j/tSUpgxvo= +github.com/containerd/nri v0.1.0 h1:6QioHRlThlKh2RkRTR4kIT3PKAcrLo3gIWnjkM4dQmQ= +github.com/containerd/stargz-snapshotter v0.11.3 h1:D3PoF563XmOBdtfx2G6AkhbHueqwIVPBFn2mrsWLa3w= +github.com/containerd/stargz-snapshotter/estargz v0.11.3 h1:k2kN16Px6LYuv++qFqK+JTcYqc8bEVxzGpf8/gFBL5M= +github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= +github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= +github.com/containerd/zfs v1.0.0 h1:cXLJbx+4Jj7rNsTiqVfm6i+RNLx6FFA2fMmDlEf+Wm8= github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= +github.com/containernetworking/cni v1.1.1 h1:ky20T7c0MvKvbMOwS/FrlbNwjEoqJEUUYfsL4b0mc4k= github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= +github.com/containernetworking/plugins v1.1.1 h1:+AGfFigZ5TiQH00vhR8qPeSatj53eNGz0C1d3wVYlHE= github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8= github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/containers/ocicrypt v1.1.3 h1:uMxn2wTb4nDR7GqG3rnZSfpJXqWURfzZ7nKydzIeKpA= github.com/containers/ocicrypt v1.1.3/go.mod h1:xpdkbVAuaH3WzbEabUd5yDsl9SwJA5pABH85425Es2g= +github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= +github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo= +github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk= github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= +github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= +github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= +github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 h1:rtAn27wIbmOGUs7RIbVgPEjb31ehTVniDwPGXyMxm5U= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= +github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32 h1:zlCp9n3uwQieELltZWHRmwPmPaZ8+XoL2Sj+A2YJlr8= github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= github.com/cosmos/cosmos-sdk v0.47.0/go.mod h1:FTtZbqiHCZ2vun9WrPq6qLQafNKkAuIhLAxzLjr2TiI= +github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a h1:2humuGPw3O5riJVFq/E2FRjF57UrO97W1qJcGVmK+6k= github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.mod h1:c8IO23vgNxueCCJlSI9awQtcxsvc+buzaeThB85qfBU= github.com/cosmos/gogoproto v1.4.1/go.mod h1:Ac9lzL4vFpBMcptJROQ6dQ4M3pOEK5Z/l0Q9p+LoCr4= github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU= github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= -github.com/cosmos/ibc-go/v7 v7.0.1 h1:NIBNRWjlOoFvFQu1ZlgwkaSeHO5avf4C1YQiWegt8jw= -github.com/cosmos/ibc-go/v7 v7.0.1/go.mod h1:vEaapV6nuLPQlS+g8IKmxMo6auPi0i7HMv1PhViht/E= +github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= +github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cristalhq/acmd v0.8.1 h1:mtFp/cbeJNY5jokF9zPz5mRllGHropRrOkOVxeGS6FI= github.com/cristalhq/acmd v0.8.1/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= +github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= +github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c h1:Xo2rK1pzOm0jO6abTPIQwbAmqBIOj132otexc1mmzFc= +github.com/d2g/dhcp4client v1.0.0 h1:suYBsYZIkSlUMEz4TAYCczKf62IA2UWC+O8+KtdOhCo= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5 h1:+CpLbZIeUn94m02LdEKPcgErLJ347NUwxPKs5u8ieiY= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 h1:itqmmf1PFpC4n5JW+j4BU7X4MTfVurhYRTjODoPb2Y8= +github.com/daixiang0/gci v0.8.1 h1:T4xpSC+hmsi4CSyuYfIJdMZAr9o7xZmHpQVygMghGZ4= github.com/daixiang0/gci v0.8.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= +github.com/decred/dcrd/lru v1.0.0 h1:Kbsb1SFDsIlaupWPwsPp+dkxiBY1frcS07PCPgotKz8= +github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= +github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20Ha7UVm+mtU= github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= +github.com/denisenkom/go-mssqldb v0.12.0 h1:VtrkII767ttSPNRfFekePK3sctr+joXgO58stqQbtUA= +github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba h1:p6poVbjHDkKa+wtC8frBMwQtT3BmqGYBjzMwJ63tuR4= github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgraph-io/badger v1.6.2 h1:mNw0qs90GVgGGWylh0umH5iag1j6n/PeJtNvL6KY/x8= +github.com/dgraph-io/badger/v3 v3.2103.2 h1:dpyM5eCJAtQCBcMCZcT4UBZchuTJgCywerHHgmxfxM8= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= +github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= +github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 h1:Izz0+t1Z5nI16/II7vuEo/nHjodOg0p7+OiDpjX5t1E= +github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY= +github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M= github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.6.4 h1:axCks+yV+2MR3/kZhAmy07yC56WZ2Pwu/fKWtKuZB0o= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= +github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= +github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf h1:Yt+4K30SdjOkRoRRm3vYNQgR+/ZIy0RmeUDZo7Y8zeQ= +github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= +github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= +github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= +github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= +github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= +github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c h1:CndMRAH4JIwxbW8KYq6Q+cGWcGHz0FjGR3QqcInWcW0= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= +github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 h1:WXb3TSNmHp2vHoCroCIB1foO/yQ36swABL8aOVeDpgg= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/form3tech-oss/jwt-go v3.2.3+incompatible h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8 h1:a9ENSRDFBUPkJ5lCgVZh26+ZbGyoVJG7yb5SSzF5H54= +github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU= +github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= +github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 h1:IZqZOB2fydHte3kUgxrzK5E1fW7RQGeDwE8F/ZZnUYc= +github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7 h1:LofdAjjjqCSXMwLGgOgnE+rdPuvX9DxCqaHwKy7i/ko= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= +github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= +github.com/gdamore/tcell/v2 v2.6.0 h1:OKbluoP9VYmJwZwq/iLb4BxwKcwGthaa1YNBJIyCySg= +github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/getsentry/sentry-go v0.17.0 h1:UustVWnOoDFHBS7IJUB2QK/nB5pap748ZEp0swnQJak= github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/xUS4JuQn1P4cM= github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-chi/chi/v5 v5.0.7 h1:rDTPXLDHGATaeHvVlLcR4Qe0zftYethFucbjVQ1PxU8= github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-critic/go-critic v0.6.5 h1:fDaR/5GWURljXwF8Eh31T2GZNz9X4jeboS912mWF8Uo= github.com/go-critic/go-critic v0.6.5/go.mod h1:ezfP/Lh7MA6dBNn4c6ab5ALv3sKnZVLx37tr00uuaOY= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= +github.com/go-git/go-billy/v5 v5.4.0 h1:Vaw7LaSTRJOUric7pe4vnzBSgyuf2KrLsu2Y4ZpQBDE= github.com/go-git/go-billy/v5 v5.4.0/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= +github.com/go-git/go-git-fixtures/v4 v4.3.1 h1:y5z6dd3qi8Hl+stezc8p3JxDkoTRqMAlKnXHuzrfjTQ= github.com/go-git/go-git-fixtures/v4 v4.3.1/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= +github.com/go-git/go-git/v5 v5.5.2 h1:v8lgZa5k9ylUw+OR/roJHTxR4QItsNFI5nKtAXFuynw= github.com/go-git/go-git/v5 v5.5.2/go.mod h1:BE5hUJ5yaV2YMxhmaP4l6RBQ08kMxKSPD4BlxtH7OjI= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= +github.com/go-ini/ini v1.25.4 h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= @@ -295,125 +643,246 @@ github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTg github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= +github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= +github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= +github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= +github.com/go-toolsmith/astcopy v1.0.2 h1:YnWf5Rnh1hUudj11kei53kI57quN/VH6Hp1n+erozn0= github.com/go-toolsmith/astcopy v1.0.2/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= +github.com/go-toolsmith/astequal v1.0.3 h1:+LVdyRatFS+XO78SGV4I3TCEA0AC7fKEGma+fH+674o= github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= +github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k= github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= +github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg= github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= +github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5 h1:eD9POs68PHkwrx7hAB78z1cb6PfGq/jyWn3wJywsH1o= github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5/go.mod h1:3NAwwmD4uY/yggRxoEjk/S00MIV3A+H7rrE3i87eYxM= +github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4= github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= +github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk= github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo= github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/go-zookeeper/zk v1.0.2 h1:4mx0EYENAdX/B/rbunjlt5+4RTA/a9SMHBRuSKdGxPM= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= +github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 h1:+eHOFJl1BaXrQxKX+T06f78590z4qA2ZzBTqahsKSE4= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= +github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe h1:6RGUuS7EGotKx6J5HIP8ZtyMdiDscjMLfRBSPuzVVeo= github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= +github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 h1:amWTbTGqOZ71ruzrdA+Nx5WA3tV1N0goTspwmKCQvBY= github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs= +github.com/golangci/golangci-lint v1.50.1 h1:C829clMcZXEORakZlwpk7M4iDw2XiwxxKaG504SZ9zY= github.com/golangci/golangci-lint v1.50.1/go.mod h1:AQjHBopYS//oB8xs0y0M/dtxdKHkdhl0RvmjUct0/4w= +github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= +github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo= github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ= github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= +github.com/google/go-containerregistry v0.5.1 h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ= +github.com/google/go-github/v41 v41.0.0 h1:HseJrM2JFf2vfiZJ8anY2hqBjdfY1Vlj/K27ueww4gg= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= +github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= +github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= +github.com/gookit/color v1.5.1 h1:Vjg2VEcdHpwq+oY63s/ksHrgJYCTo0bwWvmmYWdE9fQ= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= +github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= +github.com/gostaticanalysis/comment v1.4.2 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q= github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= +github.com/gostaticanalysis/forcetypeassert v0.1.0 h1:6eUflI3DiGusXGK6X7cCcIgVCpZ2CiZ1Q7jl6ZxNV70= github.com/gostaticanalysis/forcetypeassert v0.1.0/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak= +github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk= github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= +github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= +github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI= github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= +github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 h1:lLT7ZLSzGLI08vc9cpd+tYmNWjdKDqyr/2L+f6U12Fk= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= +github.com/hanwen/go-fuse/v2 v2.1.1-0.20220112183258-f57e95bda82d h1:ibbzF2InxMOS+lLCphY9PHNKPURDUBNKaG6ErSq8gJQ= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.18.0 h1:R7PPNzTCeN6VuQNDwwhZWJvzCtGSrNpJqfb22h3yH9g= github.com/hashicorp/consul/api v1.18.0/go.mod h1:owRRGJ9M5xReDC5nfT8FTJrNAPbT4NM6p/k+d03q2v4= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.13.0 h1:lce3nFlpv8humJL8rNrrGHYSKc3q+Kxfeg3Ii1m6ZWU= github.com/hashicorp/consul/sdk v0.13.0/go.mod h1:0hs/l5fOVhJy/VdcoaNqUSi2AUs95eF5WKtv+EYIQqE= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.2.0 h1:La19f8d7WIlm4ogzNHB0JGqs5AUDAZ2UfCY4sJXcJdM= github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-retryablehttp v0.7.0 h1:eu1EI/mbirUgP5C8hVsTNaGZreBDlYiwC1FZWkvQPQ4= github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= +github.com/hashicorp/mdns v1.0.4 h1:sY0CMhFmjIPDMlTB+HfymFHCaYLhgifZ0QhjaYKD/UQ= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= +github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= +github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hudl/fargo v1.4.0 h1:ZDDILMbB37UlAVLlWcJ2Iz1XuahZZTDZfdCKeclfq2s= +github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639 h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI= +github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/influxdata/influxdb v1.8.3 h1:WEypI1BQFTT4teLM+1qkEcvUi0dAvopAI/ir0vAiBg8= +github.com/influxdata/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k= +github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab h1:HqW4xhhynfjrtEiiSGcQUd6vrK23iMam1FO8rI7mwig= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM= +github.com/informalsystems/tm-load-test v1.3.0 h1:FGjKy7vBw6mXNakt+wmNWKggQZRsKkEYpaFk/zR64VA= github.com/informalsystems/tm-load-test v1.3.0/go.mod h1:OQ5AQ9TbT5hKWBNIwsMjn6Bf4O0U4b1kRc+0qZlQJKw= +github.com/intel/goresctrl v0.2.0 h1:JyZjdMQu9Kl/wLXe9xA6s1X+tF6BWsQPFGJMEeCfWzE= github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= +github.com/ipfs/go-datastore v0.5.1 h1:WkRhLuISI+XPD0uk3OskB0fYFSyqK8Ob5ZYew9Qa1nQ= +github.com/ipfs/go-ds-badger v0.3.0 h1:xREL3V0EH9S219kFFueOYJJTcjgNSZ2HY1iSvN7U1Ro= +github.com/ipfs/go-ds-leveldb v0.5.0 h1:s++MEBbD3ZKc9/8/njrn4flZLnCuY9I79v94gBUNumo= +github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/j-keck/arping v1.0.2 h1:hlLhuXgQkzIJTZuhMigvG/CuSkaspeaD9hRDk2zuiMI= github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= +github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= +github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a h1:d4+I1YEKVmWZrgkt6jpXBnLgV2ZjO0YxEtLDdfIZfH4= github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= +github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e h1:UvSe12bq+Uj2hWd8aOlwPmoZ+CITRFrdit+sDGfAg8U= +github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= +github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM= github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= +github.com/jhump/gopoet v0.1.0 h1:gYjOPnzHd2nzB37xYQZxj4EIQNpBrBskRqQQ3q4ZgSg= github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= +github.com/jhump/goprotoc v0.5.0 h1:Y1UgUX+txUznfqcGdDef8ZOVlyQvnV0pKWZH08RmZuo= github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= +github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f h1:BNuUg9k2EiJmlMwjoef3e8vZLHplbVw6DrjGFjLL+Yo= github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f/go.mod h1:qr2b5kx4HbFS7/g4uYO5qv9ei8303JMsC7ESbYiqr2Q= github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= +github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= +github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= +github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/joefitzgerald/rainbow-reporter v0.1.0 h1:AuMG652zjdzI0YCCnXAqATtRBpGXMcAnrajcaTrSeuo= +github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= +github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/karalabe/usb v0.0.2 h1:M6QQBNxF+CQ8OFvxrT90BA0qBOXymndZnk5q235mFc4= github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= github.com/kataras/iris/v12 v12.0.1/go.mod h1:udK4vLQKkdDqMGJJVd/msuMtN6hpYJhg/lSzuxjhO+U= @@ -423,38 +892,89 @@ github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2 github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= +github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7c= github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/kkHAIKE/contextcheck v1.1.3 h1:l4pNvrb8JSwRd51ojtcOxOeHJzHek+MtOyXbaR0uvmw= github.com/kkHAIKE/contextcheck v1.1.3/go.mod h1:PG/cwd6c0705/LM0KTr1acO2gORUxkSVWyLJOFW5qoo= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23 h1:FOOIBWrEkLgmlgGfMuZT83xIwfPDxEI2OHu6xUmJMFE= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= +github.com/koron/go-ssdp v0.0.3 h1:JivLMY45N76b4p/vsWGOKewBQu6uf39y8l+AQ7sDKx8= +github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.5 h1:hyz3dwM5QLc1Rfoz4FuWJQG5BN7tc6K1MndAUnGpQr4= +github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= +github.com/kunwardeep/paralleltest v1.0.6 h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g= github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= +github.com/ldez/tagliatelle v0.3.1 h1:3BqVVlReVUZwafJUwQ+oxbx2BEX2vUG4Yu/NOfMiKiM= github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/leonklingele/grouper v1.1.0 h1:tC2y/ygPbMFSBOs3DcyaEMKnnwH7eYKzohOtRrf0SAg= github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= +github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= +github.com/libp2p/go-libp2p-asn-util v0.2.0 h1:rg3+Os8jbnO5DxkC7K/Utdi+DkY3q/d1/1q+8WeNAsw= +github.com/libp2p/go-libp2p-testing v0.11.0 h1:+R7FRl/U3Y00neyBSM2qgDzqz3HkWH24U9nMlascHL4= +github.com/libp2p/go-mplex v0.7.0 h1:BDhFZdlk5tbr0oyFq/xv/NPGfjbnrsDam1EvutpBDbY= +github.com/libp2p/go-msgio v0.2.0 h1:W6shmB+FeynDrUVl2dgFQvzfBZcXiyqY4VmpQLu9FqU= +github.com/libp2p/go-nat v0.1.0 h1:MfVsH6DLcpa04Xr+p8hmVRG4juse0s3J8HyNWYHffXg= +github.com/libp2p/go-netroute v0.2.0 h1:0FpsbsvuSnAhXFnCY0VLFbJOzaK0VnP0r1QT/o4nWRE= +github.com/libp2p/go-reuseport v0.2.0 h1:18PRvIMlpY6ZK85nIAicSBuXXvrYoSw3dsBAR7zc560= +github.com/libp2p/go-yamux/v3 v3.1.2 h1:lNEy28MBk1HavUAlzKgShp+F6mn/ea1nDYWftZhFW9Q= +github.com/libp2p/zeroconf/v2 v2.2.0 h1:Cup06Jv6u81HLhIj1KasuNM/RHHrJ8T7wOTS4+Tv53Q= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743 h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo= +github.com/lightstep/lightstep-tracer-go v0.18.1 h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk= +github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio= +github.com/linxGnu/grocksdb v1.7.10 h1:dz7RY7GnFUA+GJO6jodyxgkUeGMEkPp3ikt9hAcNGEw= github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= +github.com/lucas-clemente/quic-go v0.28.1 h1:Uo0lvVxWg5la9gflIF9lwa39ONq85Xq2D91YNEIslzU= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1 h1:erE0rdztuaDq3bpGifD95wfoPrSZc95nGA6tbiNYh6M= +github.com/lyft/protoc-gen-validate v0.0.13 h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA= +github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= +github.com/maratori/testpackage v1.1.0 h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q= github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= +github.com/marstr/guid v1.1.0 h1:/M4H/1G4avsieL6BbUwCOBzulmoeKVP5ux/3mQNnbyI= +github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= +github.com/marten-seemann/qtls-go1-17 v0.1.2 h1:JADBlm0LYiVbuSySCHeY863dNkcpMmDR7s0bLKJeYlQ= +github.com/marten-seemann/qtls-go1-18 v0.1.2 h1:JH6jmzbduz0ITVQ7ShevK10Av5+jBEKAHMntXmIV7kM= +github.com/marten-seemann/qtls-go1-19 v0.1.0 h1:rLFKD/9mp/uq1SYGYuVZhm83wkmU95pK5df3GufyYYU= +github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= +github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= +github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -474,68 +994,154 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2 h1:g+4J5sZg6osfvEfkRZxJ1em0VT95/UOZgi/l7zi1/oE= +github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 h1:zpIH83+oKzcpryru8ceC6BxnoG8TBrhgAvRg8obzup0= +github.com/mgechev/revive v1.2.4 h1:+2Hd/S8oO2H0Ikq2+egtNwQsVhAeELHjxjIUFX5ajLI= github.com/mgechev/revive v1.2.4/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= +github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= +github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= +github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk= +github.com/mitchellh/cli v1.1.0 h1:tEElEatulEHDeedTxwckzyYMA5c86fbmNIUL1hBIiTg= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= +github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= +github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= +github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f h1:2+myh5ml7lgEU/51gbeLHfKGNfgEQQIWrlbdaOsidbQ= +github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= +github.com/moby/buildkit v0.10.4 h1:FvC+buO8isGpUFZ1abdSLdGHZVqg9sqI4BbFL8tlzP4= github.com/moby/buildkit v0.10.4/go.mod h1:Yajz9vt1Zw5q9Pp4pdb3TCSUXJBIroIQGQ3TTs/sLug= +github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= +github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/sys/signal v0.6.0 h1:aDpY94H8VlhTGa9sNYUFCFsMZIUh5wm0B6XkIoJj/iY= github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= +github.com/moby/sys/symlink v0.2.0 h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc= github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5 h1:0KqC6/sLy7fDpBdybhVkkv4Yz+PmB7c9Dz9z3dLW804= +github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4= +github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= +github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= +github.com/multiformats/go-multistream v0.3.3 h1:d5PZpjwRgVlbwfdTDjife7XszfZd8KYWfROYFlGcR8o= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76 h1:0xuRacu/Zr+jX+KyLLPPktbwXqyOvnOPUQmMLzX1jxU= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= +github.com/naoina/go-stringutil v0.1.0 h1:rCUeRUHjBjGTSHl0VC00jUPLz8/F9dDzYI70Hzifhks= +github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416 h1:shk/vn9oCoOTmwcouEdwIeOtOGA/ELRUw/GwvxwfT+0= +github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= +github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI= +github.com/nats-io/nats-server/v2 v2.5.0 h1:wsnVaaXH9VRSg+A2MVg5Q727/CqxnmPLGFQ3YZYKTQg= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= +github.com/nats-io/nats.go v1.12.1 h1:+0ndxwUPz3CmQ2vjbXdkC1fo3FdiOQDim4gl3Mge8Qo= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= +github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= +github.com/ncw/swift v1.0.47 h1:4DQRPj35Y41WogBxyhOXlrI37nzGlyEcsforeudyYPQ= +github.com/networkplumbing/go-nft v0.2.0 h1:eKapmyVUt/3VGfhYaDos5yeprm+LPt881UeksmKKZHY= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/nishanths/exhaustive v0.8.3 h1:pw5O09vwg8ZaditDp/nQRqVnrMczSJDxRDJMowvhsrM= github.com/nishanths/exhaustive v0.8.3/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= +github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= +github.com/oklog/oklog v0.3.2 h1:wVfs8F+in6nTBMkA7CbRw+zZMIB7nNM825cM1wuzoTk= +github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39 h1:H7DMc6FAjgwZZi8BRqjrAAHWoqEr5e5L6pS4V0ezet4= +github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w= github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU= +github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU= +github.com/openzipkin/zipkin-go v0.2.5 h1:UwtQQx2pyPIgWYHRg+epgdx1/HnBQTgN3/oIYEJTQzU= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= +github.com/ory/dockertest/v3 v3.9.1 h1:v4dkG+dlu76goxMiTT2j8zV7s4oPPEppKT8K8p2f1kY= +github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= +github.com/otiai10/curr v1.0.0 h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI= github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= +github.com/otiai10/mint v1.3.1 h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= +github.com/pact-foundation/pact-go v1.0.4 h1:OYkFijGHoZAYbOIb1LWXrwKQbMMRUv1oQ89blD2Mh2Q= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/performancecopilot/speed v3.0.0+incompatible h1:2WnRzIquHa5QxaJKShDkLM+sc0JPuwhXzK8OYOyt3Vg= +github.com/performancecopilot/speed/v4 v4.0.0 h1:VxEDCmdkfbQYDlcr/GC9YoN9PQ6p8ulk9xVsepYy9ZY= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM= +github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= +github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pjbgf/sha1cd v0.2.3 h1:uKQP/7QOzNtKYH7UTohZLcjF5/55EnTw0jO/Ru4jZwI= github.com/pjbgf/sha1cd v0.2.3/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/profile v1.6.0 h1:hUDfIISABYI59DyeB3OTay/HxSRwTQ8rB/H83k6r5dM= github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= +github.com/pointlander/compress v1.1.1-0.20190518213731-ff44bd196cc3 h1:hUmXhbljNFtrH5hzV9kiRoddZ5nfPTq3K0Sb2hYYiqE= github.com/pointlander/compress v1.1.1-0.20190518213731-ff44bd196cc3/go.mod h1:q5NXNGzqj5uPnVuhGkZfmgHqNUhf15VLi6L9kW0VEc0= +github.com/pointlander/jetset v1.0.1-0.20190518214125-eee7eff80bd4 h1:RHHRCZeaNyBXdYPMjZNH8/XHDBH38TZzw8izrW7dmBE= github.com/pointlander/jetset v1.0.1-0.20190518214125-eee7eff80bd4/go.mod h1:RdR1j20Aj5pB6+fw6Y9Ur7lMHpegTEjY1vc19hEZL40= +github.com/pointlander/peg v1.0.1 h1:mgA/GQE8TeS9MdkU6Xn6iEzBmQUQCNuWD7rHCK6Mjs0= github.com/pointlander/peg v1.0.1/go.mod h1:5hsGDQR2oZI4QoWz0/Kdg3VSVEC31iJw/b7WjqCBGRI= +github.com/polyfloyd/go-errorlint v1.0.5 h1:AHB5JRCjlmelh9RrLxT9sgzpalIwwq4hqE8EkwIwKdY= github.com/polyfloyd/go-errorlint v1.0.5/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= +github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= @@ -546,48 +1152,97 @@ github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= +github.com/quasilyte/go-ruleguard v0.3.18 h1:sd+abO1PEI9fkYennwzHn9kl3nqP6M5vE7FiOzZ+5CE= github.com/quasilyte/go-ruleguard v0.3.18/go.mod h1:lOIzcYlgxrQ2sGJ735EHXmf/e9MJ516j16K/Ifcttvs= github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/dsl v0.3.21 h1:vNkC6fC6qMLzCOGbnIHOd5ixUGgTbp3Z4fGnUgULlDA= github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= +github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71 h1:CNooiryw5aisadVfzneSZPswRWvnVW8hF1bS/vo8ReI= github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= +github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f h1:6Gtn2i04RD0gVyYf2/IUMTIs+qYleBt4zxDqkLTcu4U= github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= +github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY= github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= +github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= +github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= +github.com/remyoudompheng/go-dbus v0.0.0-20121104212943-b7232d34b1d5 h1:CvqZS4QYHBRvx7AeFdimd16HCbLlYsvQMcKDACpJW/c= +github.com/remyoudompheng/go-liblzma v0.0.0-20190506200333-81bf2d431b96 h1:J8J/cgLDRuqXJnwIrRDBvtl+LLsdg7De74znW/BRRq4= +github.com/remyoudompheng/go-misc v0.0.0-20190427085024-2d6ac652a50e h1:eTWZyPUnHcuGRDiryS/l2I7FfKjbU3IBx3IjqHPxuKU= +github.com/rivo/tview v0.0.0-20220307222120-9994674d60a8 h1:xe+mmCnDN82KhC010l3NfYlA8ZbOuzbXAzSYBa6wbMc= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rjeczalik/notify v0.9.1 h1:CLCKso/QK1snAlnhNR/CNvNiFU2saUtjV0bx3EwNeCE= +github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.3.0 h1:6NjYksEUlhurdVehpc7S7dk6DAmcKv8V9gG0FsVN2U4= github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= +github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4= github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= +github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= +github.com/ryanuber/columnize v2.1.0+incompatible h1:j1Wcmh8OrK4Q7GXY+V7SVSY8nUWQxHW5TkBe7YUl+2s= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ= github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/sagikazarmark/crypt v0.9.0 h1:fipzMFW34hFUEc4D7fsLQFtE7yElkpgyS2zruedRdZk= github.com/sagikazarmark/crypt v0.9.0/go.mod h1:RnH7sEhxfdnPm1z+XMgSLjWTEIjyK4z2dw6+4vHTMuo= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU= +github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= +github.com/sashamelentyev/usestdlibvars v1.20.0 h1:K6CXjqqtSYSsuyRDDC7Sjn6vTMLiSJa4ZmDkiokoqtw= github.com/sashamelentyev/usestdlibvars v1.20.0/go.mod h1:0GaP+ecfZMXShS0A94CJn6aEuPRILv8h/VuWI9n1ygg= +github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/sclevine/agouti v3.0.0+incompatible h1:8IBJS6PWz3uTlMP3YBIR5f+KAldcGuOeFkFbUWfBgK4= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sclevine/spec v1.2.0 h1:1Jwdf9jSfDl9NVmt8ndHqbTZ7XCCPbh1jI3hkDBHVYA= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 h1:RpforrEYXWkmGwJHIGnLZ3tTWStkjVVstwzNGqxX2Ds= +github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM= github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/serialx/hashring v0.0.0-20190422032157-8b2912629002 h1:ka9QPuQg2u4LGipiZGsgkg3rJCo4iIUCy75FddM0GRQ= +github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= +github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt3d2aYa0SiNms/hFqC9qJYolM= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= +github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= +github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= +github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE= github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= +github.com/skeema/knownhosts v1.1.0 h1:Wvr9V0MxhjRbl3f9nMnKnFfiWTJmtECJ9Njkea3ysW0= github.com/skeema/knownhosts v1.1.0/go.mod h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa h1:YJfZp12Z3AFhSBeXOlv4BO55RMwPn2NoQeDsrdWnBtY= github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= +github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= +github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ= +github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= @@ -597,99 +1252,185 @@ github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSW github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw= github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= +github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= +github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= +github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 h1:lIOOHPEbXzO3vnmx2gok1Tfs31Q8GQqKLc8vVqyQq/I= +github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo= +github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e h1:mOtuXaRAbVZsxAHVdPR3IjfmN8T1h2iczJLynhLybf8= github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/supranational/blst v0.3.8-0.20220526154634-513d2456b344 h1:m+8fKfQwCAy1QjzINvKe/pYtLjo2dl59x2w9YSEJxuY= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= +github.com/tchap/go-patricia v2.2.6+incompatible h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck= +github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= +github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= +github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= +github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= +github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/timonwong/loggercheck v0.9.3 h1:ecACo9fNiHxX4/Bc02rW2+kaJIAMAes7qJ7JKxt0EZI= github.com/timonwong/loggercheck v0.9.3/go.mod h1:wUqnk9yAOIKtGA39l1KLE9Iz0QiTocu/YZoOf+OzFdw= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tomarrell/wrapcheck/v2 v2.7.0 h1:J/F8DbSKJC83bAvC6FoZaRjZiZ/iKoueSdrEkmGeacA= github.com/tomarrell/wrapcheck/v2 v2.7.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= +github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= +github.com/tonistiigi/fsutil v0.0.0-20220115021204-b19f7f9cb274 h1:wbyZxD6IPFp0sl5uscMOJRsz5UKGFiNiD16e+MVfKZY= +github.com/tonistiigi/go-actions-cache v0.0.0-20220404170428-0bdeb6e1eac7 h1:8eY6m1mjgyB8XySUR7WvebTM8D/Vs86jLJzD/Tw7zkc= +github.com/tonistiigi/go-archvariant v1.0.0 h1:5LC1eDWiBNflnTF1prCiX09yfNHIxDC/aukdhCdTyb0= +github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea h1:SXhTLE6pb6eld/v/cCndK0AMpt1wiVFb/YYmqB3/QG0= +github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f h1:DLpt6B5oaaS8jyXHa9VA4rrZloBVPVXeCtrOsrFauxc= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= +github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqzi/CzI= github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= +github.com/urfave/cli v1.22.4 h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA= github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.10.2 h1:x3p8awjp/2arX+Nl/G2040AZpOCHS/eMJJ1/a+mye4Y= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME= +github.com/vektra/mockery/v2 v2.14.0 h1:KZ1p5Hrn8tiY+LErRMr14HHle6khxo+JKOXLBW/yfqs= github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA= github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA= github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o= github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= +github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= github.com/zondax/ledger-go v0.14.0/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/api/v3 v3.5.6 h1:Cy2qx3npLcYqTKqGJzMypnMv2tiRyifZJ17BlWIWA7A= go.etcd.io/etcd/api/v3 v3.5.6/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/pkg/v3 v3.5.6 h1:TXQWYceBKqLp4sa87rcPs11SXxUA/mHwH975v+BDvLU= go.etcd.io/etcd/client/pkg/v3 v3.5.6/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.etcd.io/etcd/client/v2 v2.305.6 h1:fIDR0p4KMjw01MJMfUIDWdQbjo06PD6CeYM5z4EHLi0= go.etcd.io/etcd/client/v2 v2.305.6/go.mod h1:BHha8XJGe8vCIBfWBpbBLVZ4QjOIlfoouvOwydu63E0= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= +go.etcd.io/etcd/client/v3 v3.5.6 h1:coLs69PWCXE9G4FKquzNaSHrRyMCAXwF+IX1tAPVO8E= go.etcd.io/etcd/client/v3 v3.5.6/go.mod h1:f6GRinRMCsFVv9Ht42EyY7nfsVGwrNO0WEoS2pRKzQk= +go.etcd.io/etcd/pkg/v3 v3.5.0 h1:ntrg6vvKRW26JRmHTE0iNlDgYK6JX3hg/4cD62X0ixk= go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= +go.etcd.io/etcd/raft/v3 v3.5.0 h1:kw2TmO3yFTgE+F0mdKkG7xMxkit2duBDa2Hu6D/HMlw= go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= +go.etcd.io/etcd/server/v3 v3.5.0 h1:jk8D/lwGEDlQU9kZXUFMSANkE22Sg5+mW27ip8xcF9E= go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= +go.etcd.io/gofail v0.1.0 h1:XItAMIhOojXFQMgrxjnd2EIIHun/d5qL0Pf7FzVTkFg= go.etcd.io/gofail v0.1.0/go.mod h1:VZBCXYGZhHAinaBiiqYvuDynvahNsAyLFwB3kEHKz1M= +go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M= +go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.3 h1:syAz40OyelLZo42+3U68Phisvrx4qh+4wpdZw7eUUdY= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.3/go.mod h1:Dts42MGkzZne2yCru741+bFiTMWkIj/LLRizad7b9tw= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.29.0 h1:Wjp9vsVSIEyvdiaECfqxY9xBqQ7JaSCGtvHgR4doXZk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 h1:SLme4Porm+UwX0DdHMxlwRt7FzPSE0sys81bet2o0pU= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= +go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk= go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk= +go.opentelemetry.io/otel/exporters/jaeger v1.4.1 h1:VHCK+2yTZDqDaVXj7JH2Z/khptuydo6C0ttBh2bxAbc= +go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1 h1:imIM3vRDMyZK1ypQlQlO+brE22I9lRhJsBDXpDWjlz8= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1 h1:WPpPsAAs8I2rA47v5u0558meKmmwm1Dj99ZbqCV8sZ8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1/go.mod h1:o5RW5o2pKpJLD5dNTCmjF1DorYwMeFJmb/rKr5sLaa8= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1 h1:AxqDiGk8CorEXStMDZF5Hz9vo9Z7ZZ+I5m8JRl/ko40= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1/go.mod h1:c6E4V3/U+miqjs/8l950wggHGL1qzlp0Ypj9xoGrPqo= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1 h1:8qOago/OqoFclMUUj/184tZyRdDZFpcejSjbk5Jrl6Y= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1/go.mod h1:VwYo0Hak6Efuy0TXsZs8o1hnV3dHDPNtDbycG0hI8+M= +go.opentelemetry.io/otel/internal/metric v0.27.0 h1:9dAVGAfFiiEq5NVB9FUJ5et+btbDQAUIJehJ+ikyryk= go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/metric v0.27.0 h1:HhJPsGhJoKRSegPQILFbODU56NS/L1UE4fS1sC5kIwQ= +go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw= go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= +go.opentelemetry.io/otel/sdk v1.4.1 h1:J7EaW71E0v87qflB4cDolaqq3AcujGrtyIPGQoZOB0Y= go.opentelemetry.io/otel/sdk v1.4.1/go.mod h1:NBwHDgDIBYjwK2WNu1OPgsIc2IJzmBXNnvIJxJc8BpE= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0 h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0 h1:7ao1wpzHRVKf0OQ7GIxiQJA6X7DLX9o14gmVon7mMK8= go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= +go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI= go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U= go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= go.opentelemetry.io/proto/otlp v0.12.0/go.mod h1:TsIjwGWIx5VFYv9KGVlOpxoBl5Dy+63SUguV7GGvlSQ= +go.opentelemetry.io/proto/otlp v0.15.0 h1:h0bKrvdrT/9sBwEJ6iWUqT/N/xPcS66bL4u3isneJ6w= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= @@ -704,6 +1445,7 @@ golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -716,8 +1458,12 @@ golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZ golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91 h1:Ic/qN6TEifvObMGQy72k0n1LlJr7DjWWEi+MOsDOiSk= golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= @@ -820,12 +1566,16 @@ golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4 golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2 h1:CCXrcPKiGGotvnN6jfUsKk4rRqm7q09/YbKb5xCEvtM= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8 h1:Cpp2P6TPjujNoC5M2KHY6g7wfyLYfIWRZaSdIKfDasA= google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= @@ -844,38 +1594,75 @@ google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsA google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= google.golang.org/protobuf v1.27.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/cheggaaa/pb.v1 v1.0.27 h1:kJdccidYzt3CaHD1crCFTS1hxyhSi059NhOFUf03YFo= +gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= +gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= +gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= +honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +k8s.io/api v0.22.5 h1:xk7C+rMjF/EGELiD560jdmwzrB788mfcHiNbMQLIVI8= k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= +k8s.io/apimachinery v0.22.5 h1:cIPwldOYm1Slq9VLBRPtEYpyhjIm1C6aAMAoENuvN9s= k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= +k8s.io/apiserver v0.22.5 h1:71krQxCUz218ecb+nPhfDsNB6QgP1/4EMvi1a2uYBlg= k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= +k8s.io/client-go v0.22.5 h1:I8Zn/UqIdi2r02aZmhaJ1hqMxcpfJ3t5VqvHtctHYFo= k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= +k8s.io/code-generator v0.19.7 h1:kM/68Y26Z/u//TFc1ggVVcg62te8A2yQh57jBfD0FWQ= +k8s.io/component-base v0.22.5 h1:U0eHqZm7mAFE42hFwYhY6ze/MmVaW00JpMrzVsQmzYE= k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= +k8s.io/cri-api v0.25.0 h1:INwdXsCDSA/0hGNdPxdE2dQD6ft/5K1EaKXZixvSQxg= k8s.io/cri-api v0.25.0/go.mod h1:J1rAyQkSJ2Q6I+aBMOVgg2/cbbebso6FNa0UagiR0kc= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded h1:JApXBKYyB7l9xx+DK7/+mFjC7A9Bt5A93FPvFD0HIFE= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c h1:jvamsI1tn9V0S8jicyX82qaFC0H/NKxv2e5mbqsgR80= k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kubernetes v1.13.0 h1:qTfB+u5M92k2fCCCVP2iuhgwwSOv1EkAkvQY1tQODD8= k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= +mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= +mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 h1:seuXWbRB1qPrS3NQnHmFKLJLtskWyueeIzmLXghMGgk= mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk= +rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= +rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= +rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22 h1:fmRfl9WJ4ApJn7LxNuED4m0t18qivVQOxP6aAYG9J6c= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM= diff --git a/relayer/chains/cosmos/module/app_module.go b/relayer/chains/cosmos/module/app_module.go index 94119092a..39e6ea36b 100644 --- a/relayer/chains/cosmos/module/app_module.go +++ b/relayer/chains/cosmos/module/app_module.go @@ -5,6 +5,7 @@ import ( "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" + localhost "github.com/cosmos/ibc-go/v7/modules/light-clients/09-localhost" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/spf13/cobra" @@ -26,7 +27,7 @@ func (AppModuleBasic) RegisterLegacyAminoCodec(*codec.LegacyAmino) {} func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) { tmlightclient.RegisterInterfaces(registry) solomachine.RegisterInterfaces(registry) - // TODO: add the localhost light client when ibc-go v7.1.0 is available + localhost.RegisterInterfaces(registry) } // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the ibc module. From 0981e674fae2d1d2cc3ed8f2501fee7a851d3062 Mon Sep 17 00:00:00 2001 From: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> Date: Wed, 7 Jun 2023 17:58:49 -0700 Subject: [PATCH 40/46] Export wallet address for Prometheus metrics (#1206) * export relayer address for pro * address in updateFeesSpent * make error messages consistent * log error rather than return * handle 0 balance --- .../chains/cosmos/cosmos_chain_processor.go | 21 +++++++++++-------- relayer/chains/cosmos/tx.go | 14 +++++++++---- relayer/processor/metrics.go | 10 ++++----- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/relayer/chains/cosmos/cosmos_chain_processor.go b/relayer/chains/cosmos/cosmos_chain_processor.go index 0c350f1f4..6a428d55c 100644 --- a/relayer/chains/cosmos/cosmos_chain_processor.go +++ b/relayer/chains/cosmos/cosmos_chain_processor.go @@ -516,22 +516,25 @@ func (ccp *CosmosChainProcessor) CurrentRelayerBalance(ctx context.Context) { } // Get the balance for the chain provider's key - relayerWalletBalance, err := ccp.chainProvider.QueryBalance(ctx, ccp.chainProvider.Key()) + relayerWalletBalances, err := ccp.chainProvider.QueryBalance(ctx, ccp.chainProvider.Key()) if err != nil { ccp.log.Error( "Failed to query relayer balance", zap.Error(err), ) } - + address, err := ccp.chainProvider.Address() + if err != nil { + ccp.log.Error( + "Failed to get relayer bech32 wallet addresss", + zap.Error(err), + ) + } // Print the relevant gas prices for _, gasDenom := range *ccp.parsedGasPrices { - for _, balance := range relayerWalletBalance { - if balance.Denom == gasDenom.Denom { - // Convert to a big float to get a float64 for metrics - f, _ := big.NewFloat(0.0).SetInt(balance.Amount.BigInt()).Float64() - ccp.metrics.SetWalletBalance(ccp.chainProvider.ChainId(), ccp.chainProvider.Key(), balance.Denom, f) - } - } + bal := relayerWalletBalances.AmountOf(gasDenom.Denom) + // Convert to a big float to get a float64 for metrics + f, _ := big.NewFloat(0.0).SetInt(bal.BigInt()).Float64() + ccp.metrics.SetWalletBalance(ccp.chainProvider.ChainId(), ccp.chainProvider.Key(), address, gasDenom.Denom, f) } } diff --git a/relayer/chains/cosmos/tx.go b/relayer/chains/cosmos/tx.go index 2af8538ff..d8caf3665 100644 --- a/relayer/chains/cosmos/tx.go +++ b/relayer/chains/cosmos/tx.go @@ -213,8 +213,14 @@ func (cc *CosmosProvider) broadcastTx( cc.LogFailedTx(rlyResp, err, msgs) return err } - - cc.UpdateFeesSpent(cc.ChainId(), cc.Key(), fees) + address, err := cc.Address() + if err != nil { + cc.log.Error( + "failed to get relayer bech32 wallet addresss", + zap.Error(err), + ) + } + cc.UpdateFeesSpent(cc.ChainId(), cc.Key(), address, fees) // TODO: maybe we need to check if the node has tx indexing enabled? // if not, we need to find a new way to block until inclusion in a block @@ -1257,7 +1263,7 @@ func (cc *CosmosProvider) NewClientState( }, nil } -func (cc *CosmosProvider) UpdateFeesSpent(chain, key string, fees sdk.Coins) { +func (cc *CosmosProvider) UpdateFeesSpent(chain, key, address string, fees sdk.Coins) { // Don't set the metrics in testing if cc.metrics == nil { return @@ -1270,7 +1276,7 @@ func (cc *CosmosProvider) UpdateFeesSpent(chain, key string, fees sdk.Coins) { for _, fee := range cc.TotalFees { // Convert to a big float to get a float64 for metrics f, _ := big.NewFloat(0.0).SetInt(fee.Amount.BigInt()).Float64() - cc.metrics.SetFeesSpent(chain, key, fee.GetDenom(), f) + cc.metrics.SetFeesSpent(chain, key, address, fee.GetDenom(), f) } } diff --git a/relayer/processor/metrics.go b/relayer/processor/metrics.go index f5f4245e7..a549eb40a 100644 --- a/relayer/processor/metrics.go +++ b/relayer/processor/metrics.go @@ -26,18 +26,18 @@ func (m *PrometheusMetrics) SetLatestHeight(chain string, height int64) { m.LatestHeightGauge.WithLabelValues(chain).Set(float64(height)) } -func (m *PrometheusMetrics) SetWalletBalance(chain, key, denom string, balance float64) { - m.WalletBalance.WithLabelValues(chain, key, denom).Set(balance) +func (m *PrometheusMetrics) SetWalletBalance(chain, key, address, denom string, balance float64) { + m.WalletBalance.WithLabelValues(chain, key, address, denom).Set(balance) } -func (m *PrometheusMetrics) SetFeesSpent(chain, key, denom string, amount float64) { - m.FeesSpent.WithLabelValues(chain, key, denom).Set(amount) +func (m *PrometheusMetrics) SetFeesSpent(chain, key, address, denom string, amount float64) { + m.FeesSpent.WithLabelValues(chain, key, address, denom).Set(amount) } func NewPrometheusMetrics() *PrometheusMetrics { packetLabels := []string{"path", "chain", "channel", "port", "type"} heightLabels := []string{"chain"} - walletLabels := []string{"chain", "key", "denom"} + walletLabels := []string{"chain", "key", "address", "denom"} registry := prometheus.NewRegistry() registerer := promauto.With(registry) return &PrometheusMetrics{ From 82d819ef340f10b90bbdda23326ee49179e5b949 Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Thu, 29 Jun 2023 10:13:21 +0545 Subject: [PATCH 41/46] chore: fix issue --- go.work | 6 - go.work.sum | 1634 -------------------- interchaintest/go.mod | 3 +- relayer/chains/cosmos/module/app_module.go | 2 - relayer/chains/icon/provider_test.go | 1 + relayer/codecs/ethermint/codec.go | 7 +- 6 files changed, 4 insertions(+), 1649 deletions(-) delete mode 100644 go.work delete mode 100644 go.work.sum diff --git a/go.work b/go.work deleted file mode 100644 index 0c68d3166..000000000 --- a/go.work +++ /dev/null @@ -1,6 +0,0 @@ -go 1.20 - -use ( -./interchaintest -. -) \ No newline at end of file diff --git a/go.work.sum b/go.work.sum deleted file mode 100644 index b390c9f69..000000000 --- a/go.work.sum +++ /dev/null @@ -1,1634 +0,0 @@ -4d63.com/gochecknoglobals v0.1.0 h1:zeZSRqj5yCg28tCkIV/z/lWbwvNm5qnKVS15PI8nhD0= -4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= -bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512 h1:SRsZGA7aFnCZETmov57jwPrWuTmaZK6+4R4v5FUe1/c= -bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= -cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= -cloud.google.com/go/accessapproval v1.5.0 h1:/nTivgnV/n1CaAeo+ekGexTYUsKEU9jUVkoY5359+3Q= -cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= -cloud.google.com/go/accesscontextmanager v1.4.0 h1:CFhNhU7pcD11cuDkQdrE6PQJgv0EXNKNv06jIzbLlCU= -cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= -cloud.google.com/go/aiplatform v1.27.0 h1:DBi3Jk9XjCJ4pkkLM4NqKgj3ozUL1wq4l+d3/jTGXAI= -cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= -cloud.google.com/go/analytics v0.12.0 h1:NKw6PpQi6V1O+KsjuTd+bhip9d0REYu4NevC45vtGp8= -cloud.google.com/go/apigateway v1.4.0 h1:IIoXKR7FKrEAQhMTz5hK2wiDz2WNFHS7eVr/L1lE/rM= -cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= -cloud.google.com/go/apigeeconnect v1.4.0 h1:AONoTYJviyv1vS4IkvWzq69gEVdvHx35wKXc+e6wjZQ= -cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= -cloud.google.com/go/apigeeregistry v0.4.0 h1:Av+wedLP6pM8NsLruknv/RFCE/5VVavOhZ8j722vBxg= -cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= -cloud.google.com/go/apikeys v0.4.0 h1:d+t1B9U1Ze3LmiRYdSVhNrcRlU6coLvPzNDkqYVuHoc= -cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= -cloud.google.com/go/appengine v1.5.0 h1:lmG+O5oaR9xNwaRBwE2XoMhwQHsHql5IoiGr1ptdDwU= -cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= -cloud.google.com/go/area120 v0.6.0 h1:TCMhwWEWhCn8d44/Zs7UCICTWje9j3HuV6nVGMjdpYw= -cloud.google.com/go/artifactregistry v1.9.0 h1:3d0LRAU1K6vfqCahhl9fx2oGHcq+s5gftdix4v8Ibrc= -cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= -cloud.google.com/go/asset v1.10.0 h1:aCrlaLGJWTODJX4G56ZYzJefITKEWNfbjjtHSzWpxW0= -cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= -cloud.google.com/go/assuredworkloads v1.9.0 h1:hhIdCOowsT1GG5eMCIA0OwK6USRuYTou/1ZeNxCSRtA= -cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= -cloud.google.com/go/automl v1.8.0 h1:BMioyXSbg7d7xLibn47cs0elW6RT780IUWr42W8rp2Q= -cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= -cloud.google.com/go/baremetalsolution v0.4.0 h1:g9KO6SkakcYPcc/XjAzeuUrEOXlYPnMpuiaywYaGrmQ= -cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= -cloud.google.com/go/batch v0.4.0 h1:1jvEBY55OH4Sd2FxEXQfxGExFWov1A/IaRe+Z5Z71Fw= -cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= -cloud.google.com/go/beyondcorp v0.3.0 h1:w+4kThysgl0JiKshi2MKDCg2NZgOyqOI0wq2eBZyrzA= -cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= -cloud.google.com/go/bigquery v1.44.0 h1:Wi4dITi+cf9VYp4VH2T9O41w0kCW0uQTELq2Z6tukN0= -cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= -cloud.google.com/go/billing v1.7.0 h1:Xkii76HWELHwBtkQVZvqmSo9GTr0O+tIbRNnMcGdlg4= -cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= -cloud.google.com/go/binaryauthorization v1.4.0 h1:pL70vXWn9TitQYXBWTK2abHl2JHLwkFRjYw6VflRqEA= -cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= -cloud.google.com/go/certificatemanager v1.4.0 h1:tzbR4UHBbgsewMWUD93JHi8EBi/gHBoSAcY1/sThFGk= -cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= -cloud.google.com/go/channel v1.9.0 h1:pNuUlZx0Jb0Ts9P312bmNMuH5IiFWIR4RUtLb70Ke5s= -cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= -cloud.google.com/go/cloudbuild v1.4.0 h1:TAAmCmAlOJ4uNBu6zwAjwhyl/7fLHHxIEazVhr3QBbQ= -cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= -cloud.google.com/go/clouddms v1.4.0 h1:UhzHIlgFfMr6luVYVNydw/pl9/U5kgtjCMJHnSvoVws= -cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= -cloud.google.com/go/cloudtasks v1.8.0 h1:faUiUgXjW8yVZ7XMnKHKm1WE4OldPBUWWfIRN/3z1dc= -cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= -cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= -cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/contactcenterinsights v1.4.0 h1:tTQLI/ZvguUf9Hv+36BkG2+/PeC8Ol1q4pBW+tgCx0A= -cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= -cloud.google.com/go/container v1.7.0 h1:nbEK/59GyDRKKlo1SqpohY1TK8LmJ2XNcvS9Gyom2A0= -cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= -cloud.google.com/go/containeranalysis v0.6.0 h1:2824iym832ljKdVpCBnpqm5K94YT/uHTVhNF+dRTXPI= -cloud.google.com/go/datacatalog v1.8.0 h1:6kZ4RIOW/uT7QWC5SfPfq/G8sYzr/v+UOmOAxy4Z1TE= -cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= -cloud.google.com/go/dataflow v0.7.0 h1:CW3541Fm7KPTyZjJdnX6NtaGXYFn5XbFC5UcjgALKvU= -cloud.google.com/go/dataform v0.5.0 h1:vLwowLF2ZB5J5gqiZCzv076lDI/Rd7zYQQFu5XO1PSg= -cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= -cloud.google.com/go/datafusion v1.5.0 h1:j5m2hjWovTZDTQak4MJeXAR9yN7O+zMfULnjGw/OOLg= -cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= -cloud.google.com/go/datalabeling v0.6.0 h1:dp8jOF21n/7jwgo/uuA0RN8hvLcKO4q6s/yvwevs2ZM= -cloud.google.com/go/dataplex v1.4.0 h1:cNxeA2DiWliQGi21kPRqnVeQ5xFhNoEjPRt1400Pm8Y= -cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= -cloud.google.com/go/dataproc v1.8.0 h1:gVOqNmElfa6n/ccG/QDlfurMWwrK3ezvy2b2eDoCmS0= -cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= -cloud.google.com/go/dataqna v0.6.0 h1:gx9jr41ytcA3dXkbbd409euEaWtofCVXYBvJz3iYm18= -cloud.google.com/go/datastore v1.10.0 h1:4siQRf4zTiAVt/oeH4GureGkApgb2vtPQAtOmhpqQwE= -cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= -cloud.google.com/go/datastream v1.5.0 h1:PgIgbhedBtYBU6POGXFMn2uSl9vpqubc3ewTNdcU8Mk= -cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= -cloud.google.com/go/deploy v1.5.0 h1:kI6dxt8Ml0is/x7YZjLveTvR7YPzXAUD/8wQZ2nH5zA= -cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= -cloud.google.com/go/dialogflow v1.29.0 h1:Opy6fM2IV9ecQOXkce0JByjBVg8+4X+1AbTAQLbgrCg= -cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= -cloud.google.com/go/dlp v1.7.0 h1:9I4BYeJSVKoSKgjr70fLdRDumqcUeVmHV4fd5f9LR6Y= -cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= -cloud.google.com/go/documentai v1.10.0 h1:jfq09Fdjtnpnmt/MLyf6A3DM3ynb8B2na0K+vSXvpFM= -cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= -cloud.google.com/go/domains v0.7.0 h1:pu3JIgC1rswIqi5romW0JgNO6CTUydLYX8zyjiAvO1c= -cloud.google.com/go/edgecontainer v0.2.0 h1:hd6J2n5dBBRuAqnNUEsKWrp6XNPKsaxwwIyzOPZTokk= -cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= -cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= -cloud.google.com/go/essentialcontacts v1.4.0 h1:b6csrQXCHKQmfo9h3dG/pHyoEh+fQG1Yg78a53LAviY= -cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= -cloud.google.com/go/eventarc v1.8.0 h1:AgCqrmMMIcel5WWKkzz5EkCUKC3Rl5LNMMYsS+LvsI0= -cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= -cloud.google.com/go/filestore v1.4.0 h1:yjKOpzvqtDmL5AXbKttLc8j0hL20kuC1qPdy5HPcxp0= -cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= -cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= -cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= -cloud.google.com/go/functions v1.9.0 h1:35tgv1fQOtvKqH/uxJMzX3w6usneJ0zXpsFr9KAVhNE= -cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= -cloud.google.com/go/gaming v1.8.0 h1:97OAEQtDazAJD7yh/kvQdSCQuTKdR0O+qWAJBZJ4xiA= -cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= -cloud.google.com/go/gkebackup v0.3.0 h1:4K+jiv4ocqt1niN8q5Imd8imRoXBHTrdnJVt/uFFxF4= -cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= -cloud.google.com/go/gkeconnect v0.6.0 h1:zAcvDa04tTnGdu6TEZewaLN2tdMtUOJJ7fEceULjguA= -cloud.google.com/go/gkehub v0.10.0 h1:JTcTaYQRGsVm+qkah7WzHb6e9sf1C0laYdRPn9aN+vg= -cloud.google.com/go/gkemulticloud v0.4.0 h1:8F1NhJj8ucNj7lK51UZMtAjSWTgP1zO18XF6vkfiPPU= -cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= -cloud.google.com/go/grafeas v0.2.0 h1:CYjC+xzdPvbV65gi6Dr4YowKcmLo045pm18L0DhdELM= -cloud.google.com/go/gsuiteaddons v1.4.0 h1:TGT2oGmO5q3VH6SjcrlgPUWI0njhYv4kywLm6jag0to= -cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= -cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= -cloud.google.com/go/iap v1.5.0 h1:BGEXovwejOCt1zDk8hXq0bOhhRu9haXKWXXXp2B4wBM= -cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= -cloud.google.com/go/ids v1.2.0 h1:LncHK4HHucb5Du310X8XH9/ICtMwZ2PCfK0ScjWiJoY= -cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= -cloud.google.com/go/iot v1.4.0 h1:Y9+oZT9jD4GUZzORXTU45XsnQrhxmDT+TFbPil6pRVQ= -cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= -cloud.google.com/go/kms v1.6.0 h1:OWRZzrPmOZUzurjI2FBGtgY2mB1WaJkqhw6oIwSj0Yg= -cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= -cloud.google.com/go/language v1.8.0 h1:3Wa+IUMamL4JH3Zd3cDZUHpwyqplTACt6UZKRD2eCL4= -cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= -cloud.google.com/go/lifesciences v0.6.0 h1:tIqhivE2LMVYkX0BLgG7xL64oNpDaFFI7teunglt1tI= -cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79benI= -cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= -cloud.google.com/go/managedidentities v1.4.0 h1:3Kdajn6X25yWQFhFCErmKSYTSvkEd3chJROny//F1A0= -cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= -cloud.google.com/go/maps v0.1.0 h1:kLReRbclTgJefw2fcCbdLPLhPj0U6UUWN10ldG8sdOU= -cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= -cloud.google.com/go/mediatranslation v0.6.0 h1:qAJzpxmEX+SeND10Y/4868L5wfZpo4Y3BIEnIieP4dk= -cloud.google.com/go/memcache v1.7.0 h1:yLxUzJkZVSH2kPaHut7k+7sbIBFpvSh1LW9qjM2JDjA= -cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= -cloud.google.com/go/metastore v1.8.0 h1:3KcShzqWdqxrDEXIBWpYJpOOrgpDj+HlBi07Grot49Y= -cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= -cloud.google.com/go/monitoring v1.8.0 h1:c9riaGSPQ4dUKWB+M1Fl0N+iLxstMbCktdEwYSPGDvA= -cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= -cloud.google.com/go/networkconnectivity v1.7.0 h1:BVdIKaI68bihnXGdCVL89Jsg9kq2kg+II30fjVqo62E= -cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= -cloud.google.com/go/networkmanagement v1.5.0 h1:mDHA3CDW00imTvC5RW6aMGsD1bH+FtKwZm/52BxaiMg= -cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= -cloud.google.com/go/networksecurity v0.6.0 h1:qDEX/3sipg9dS5JYsAY+YvgTjPR63cozzAWop8oZS94= -cloud.google.com/go/notebooks v1.5.0 h1:AC8RPjNvel3ExgXjO1YOAz+teg9+j+89TNxa7pIZfww= -cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= -cloud.google.com/go/optimization v1.2.0 h1:7PxOq9VTT7TMib/6dMoWpMvWS2E4dJEvtYzjvBreaec= -cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= -cloud.google.com/go/orchestration v1.4.0 h1:39d6tqvNjd/wsSub1Bn4cEmrYcet5Ur6xpaN+SxOxtY= -cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= -cloud.google.com/go/orgpolicy v1.5.0 h1:erF5PHqDZb6FeFrUHiYj2JK2BMhsk8CyAg4V4amJ3rE= -cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= -cloud.google.com/go/osconfig v1.10.0 h1:NO0RouqCOM7M2S85Eal6urMSSipWwHU8evzwS+siqUI= -cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= -cloud.google.com/go/oslogin v1.7.0 h1:pKGDPfeZHDybtw48WsnVLjoIPMi9Kw62kUE5TXCLCN4= -cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= -cloud.google.com/go/phishingprotection v0.6.0 h1:OrwHLSRSZyaiOt3tnY33dsKSedxbMzsXvqB21okItNQ= -cloud.google.com/go/policytroubleshooter v1.4.0 h1:NQklJuOUoz1BPP+Epjw81COx7IISWslkZubz/1i0UN8= -cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= -cloud.google.com/go/privatecatalog v0.6.0 h1:Vz86uiHCtNGm1DeC32HeG2VXmOq5JRYA3VRPf8ZEcSg= -cloud.google.com/go/pubsub v1.27.1 h1:q+J/Nfr6Qx4RQeu3rJcnN48SNC0qzlYzSeqkPq93VHs= -cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= -cloud.google.com/go/pubsublite v1.5.0 h1:iqrD8vp3giTb7hI1q4TQQGj77cj8zzgmMPsTZtLnprM= -cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= -cloud.google.com/go/recaptchaenterprise v1.3.1 h1:u6EznTGzIdsyOsvm+Xkw0aSuKFXQlyjGE9a4exk6iNQ= -cloud.google.com/go/recaptchaenterprise/v2 v2.5.0 h1:UqzFfb/WvhwXGDF1eQtdHLrmni+iByZXY4h3w9Kdyv8= -cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= -cloud.google.com/go/recommendationengine v0.6.0 h1:6w+WxPf2LmUEqX0YyvfCoYb8aBYOcbIV25Vg6R0FLGw= -cloud.google.com/go/recommender v1.8.0 h1:9kMZQGeYfcOD/RtZfcNKGKtoex3DdoB4zRgYU/WaIwE= -cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= -cloud.google.com/go/redis v1.10.0 h1:/zTwwBKIAD2DEWTrXZp8WD9yD/gntReF/HkPssVYd0U= -cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= -cloud.google.com/go/resourcemanager v1.4.0 h1:NDao6CHMwEZIaNsdWy+tuvHaavNeGP06o1tgrR0kLvU= -cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= -cloud.google.com/go/resourcesettings v1.4.0 h1:eTzOwB13WrfF0kuzG2ZXCfB3TLunSHBur4s+HFU6uSM= -cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= -cloud.google.com/go/retail v1.11.0 h1:N9fa//ecFUOEPsW/6mJHfcapPV0wBSwIUwpVZB7MQ3o= -cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= -cloud.google.com/go/run v0.3.0 h1:AWPuzU7Xtaj3Jf+QarDWIs6AJ5hM1VFQ+F6Q+VZ6OT4= -cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= -cloud.google.com/go/scheduler v1.7.0 h1:K/mxOewgHGeKuATUJNGylT75Mhtjmx1TOkKukATqMT8= -cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= -cloud.google.com/go/secretmanager v1.9.0 h1:xE6uXljAC1kCR8iadt9+/blg1fvSbmenlsDN4fT9gqw= -cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= -cloud.google.com/go/security v1.10.0 h1:KSKzzJMyUoMRQzcz7azIgqAUqxo7rmQ5rYvimMhikqg= -cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= -cloud.google.com/go/securitycenter v1.16.0 h1:QTVtk/Reqnx2bVIZtJKm1+mpfmwRwymmNvlaFez7fQY= -cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= -cloud.google.com/go/servicecontrol v1.5.0 h1:ImIzbOu6y4jL6ob65I++QzvqgFaoAKgHOG+RU9/c4y8= -cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= -cloud.google.com/go/servicedirectory v1.7.0 h1:f7M8IMcVzO3T425AqlZbP3yLzeipsBHtRza8vVFYMhQ= -cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= -cloud.google.com/go/servicemanagement v1.5.0 h1:TpkCO5M7dhKSy1bKUD9o/sSEW/U1Gtx7opA1fsiMx0c= -cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= -cloud.google.com/go/serviceusage v1.4.0 h1:b0EwJxPJLpavSljMQh0RcdHsUrr5DQ+Nelt/3BAs5ro= -cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= -cloud.google.com/go/shell v1.4.0 h1:b1LFhFBgKsG252inyhtmsUUZwchqSz3WTvAIf3JFo4g= -cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= -cloud.google.com/go/spanner v1.41.0 h1:NvdTpRwf7DTegbfFdPjAWyD7bOVu0VeMqcvR9aCQCAc= -cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= -cloud.google.com/go/speech v1.9.0 h1:yK0ocnFH4Wsf0cMdUyndJQ/hPv02oTJOxzi6AgpBy4s= -cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -cloud.google.com/go/storagetransfer v1.6.0 h1:fUe3OydbbvHcAYp07xY+2UpH4AermGbmnm7qdEj3tGE= -cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= -cloud.google.com/go/talent v1.4.0 h1:MrekAGxLqAeAol4Sc0allOVqUGO8j+Iim8NMvpiD7tM= -cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= -cloud.google.com/go/texttospeech v1.5.0 h1:ccPiHgTewxgyAeCWgQWvZvrLmbfQSFABTMAfrSPLPyY= -cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= -cloud.google.com/go/tpu v1.4.0 h1:ztIdKoma1Xob2qm6QwNh4Xi9/e7N3IfvtwG5AcNsj1g= -cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= -cloud.google.com/go/trace v1.4.0 h1:qO9eLn2esajC9sxpqp1YKX37nXC3L4BfGnPS0Cx9dYo= -cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= -cloud.google.com/go/translate v1.4.0 h1:AOYOH3MspzJ/bH1YXzB+xTE8fMpn3mwhLjugwGXvMPI= -cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= -cloud.google.com/go/video v1.9.0 h1:ttlvO4J5c1VGq6FkHqWPD/aH6PfdxujHt+muTJlW1Zk= -cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= -cloud.google.com/go/videointelligence v1.9.0 h1:RPFgVVXbI2b5vnrciZjtsUgpNKVtHO/WIyXUhEfuMhA= -cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= -cloud.google.com/go/vision v1.2.0 h1:/CsSTkbmO9HC8iQpxbK8ATms3OQaX3YQUeTMGCxlaK4= -cloud.google.com/go/vision/v2 v2.5.0 h1:TQHxRqvLMi19azwm3qYuDbEzZWmiKJNTpGbkNsfRCik= -cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= -cloud.google.com/go/vmmigration v1.3.0 h1:A2Tl2ZmwMRpvEmhV2ibISY85fmQR+Y5w9a0PlRz5P3s= -cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= -cloud.google.com/go/vmwareengine v0.1.0 h1:JMPZaOT/gIUxVlTqSl/QQ32Y2k+r0stNeM1NSqhVP9o= -cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= -cloud.google.com/go/vpcaccess v1.5.0 h1:woHXXtnW8b9gLFdWO9HLPalAddBQ9V4LT+1vjKwR3W8= -cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= -cloud.google.com/go/webrisk v1.7.0 h1:ypSnpGlJnZSXbN9a13PDmAYvVekBLnGKxQ3Q9SMwnYY= -cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= -cloud.google.com/go/websecurityscanner v1.4.0 h1:y7yIFg/h/mO+5Y5aCOtVAnpGUOgqCH5rXQ2Oc8Oq2+g= -cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= -cloud.google.com/go/workflows v1.9.0 h1:7Chpin9p50NTU8Tb7qk+I11U/IwVXmDhEoSsdccvInE= -cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= -cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= -cosmossdk.io/core v0.3.2/go.mod h1:CO7vbe+evrBvHc0setFHL/u7nlY7HJGzdRSBkT/sirc= -cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= -cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= -cosmossdk.io/simapp v0.0.0-20230323161446-0af178d721ff h1:P1ialzTepD1oxdNPYc5N8Eggq3RdejZq3cJs8YYMs9Y= -cosmossdk.io/simapp v0.0.0-20230323161446-0af178d721ff/go.mod h1:AKzx6Mb544LjJ9RHmGFHjY9rEOLiUAi8I0F727TR0dY= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= -github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/Abirdcfly/dupword v0.0.7 h1:z14n0yytA3wNO2gpCD/jVtp/acEXPGmYu0esewpBt6Q= -github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= -github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M= -github.com/Antonboom/errname v0.1.7 h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako= -github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= -github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q= -github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= -github.com/Azure/azure-sdk-for-go v16.2.1+incompatible h1:KnPIugL51v3N3WwvaSmZbxukD1WuWXOiE9fRdu32f2I= -github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1 h1:qoVeMsc9/fh/yhxVaA0obYjVH/oI/ihrOoMwsLS9KSA= -github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1/go.mod h1:fBF9PQNqB8scdgpZ3ufzaLntG0AG7C1WjPMsiFOmfHM= -github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3 h1:E+m3SkZCN0Bf5q7YdTs5lSm2CYY3CK4spn5OmUIiQtk= -github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3/go.mod h1:KLF4gFr6DcKFZwSuH8w8yEK6DpFl3LP5rhdvAb7Yz5I= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0 h1:Px2UA+2RvSSvv+RvJNuUB6n7rs5Wsel4dXLe90Um2n4= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0/go.mod h1:tPaiy8S5bQ+S5sOiDlINkp7+Ef339+Nz5L5XO+cnOHo= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= -github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= -github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= -github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= -github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= -github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= -github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= -github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= -github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 h1:+r1rSv4gvYn0wmRjC8X7IAzX8QezqtFV9m0MUHFJgts= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= -github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= -github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= -github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= -github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= -github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= -github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= -github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3 h1:4FA+QBaydEHlwxg0lMN3rhwoDaQy6LKhVWR4qvq4BuA= -github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= -github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/OpenPeeDeeP/depguard v1.1.1 h1:TSUznLjvp/4IUP+OQ0t/4jF4QUyxIcVX8YnghZdunyA= -github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= -github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 h1:ra2OtmuW0AE5csawV4YXMNGNQQXvLRps3z2Z59OPO+I= -github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= -github.com/Shopify/sarama v1.19.0 h1:9oksLxC6uxVPHPVYUmq6xhr1BOF/hHobWH2UzO67z1s= -github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= -github.com/StirlingMarketingGroup/go-namecase v1.0.0 h1:2CzaNtCzc4iNHirR+5ru9OzGg8rQp860gqLBFqRI02Y= -github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= -github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= -github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= -github.com/aead/siphash v1.0.1 h1:FwHfE/T45KPKYuuSAKyyvE+oPWcaQ+CUmFW0bPlM+kg= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw= -github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= -github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ= -github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= -github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= -github.com/alexflint/go-filemutex v1.1.0 h1:IAWuUuRYL2hETx5b8vCgwnD+xSdlsTQY6s2JjBsqLdg= -github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= -github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= -github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= -github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= -github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= -github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= -github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI= -github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 h1:7Ip0wMmLHLRJdrloDxZfhMm0xrLXZS8+COSu2bXmEQs= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= -github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= -github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= -github.com/ashanbrown/forbidigo v1.3.0 h1:VkYIwb/xxdireGAdJNZoo24O4lmnEWkactplBlWTShc= -github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= -github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= -github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= -github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= -github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/avast/retry-go/v4 v4.3.2/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= -github.com/aws/aws-lambda-go v1.13.3 h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY= -github.com/aws/aws-sdk-go-v2 v1.9.1 h1:ZbovGV/qo40nrOJ4q8G33AGICzaPI45FHQWJ9650pF4= -github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= -github.com/aws/aws-sdk-go-v2/config v1.1.1 h1:ZAoq32boMzcaTW9bcUacBswAmHTbvlvDJICgHFZuECo= -github.com/aws/aws-sdk-go-v2/credentials v1.1.1 h1:NbvWIM1Mx6sNPTxowHgS2ewXCRp+NGTzUYb/96FZJbY= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 h1:EtEU7WRaWliitZh2nmuxEXrN0Cb8EgPUFGIoTMeqbzI= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1 h1:w/fPGB0t5rWwA43mux4e9ozFSH5zF1moQemlA131PWc= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 h1:4AH9fFjUlVktQMznF+YN33aWNXaR4VgDXyP28qokJC0= -github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1 h1:cKr6St+CtC3/dl/rEBJvlk7A/IN5D5F02GNkGzfbtVU= -github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 h1:37QubsarExl5ZuCBlnRP+7l1tNwZPBSTqpTBrPH98RU= -github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 h1:TJoIfnIFubCX0ACVeJ0w46HEH5MwjwYN4iFhuYIhfIY= -github.com/aws/smithy-go v1.8.0 h1:AEwwwXQZtUwP5Mz506FeXXrKBe0jA8gVM+1gEcSRooc= -github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= -github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc= -github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= -github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= -github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= -github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= -github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= -github.com/bombsimon/wsl/v3 v3.3.0 h1:Mka/+kRLoQJq7g2rggtgQsjuI/K5Efd87WX96EWFxjM= -github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= -github.com/bradleyfalzon/ghinstallation/v2 v2.0.4 h1:tXKVfhE7FcSkhkv0UwkLvPDeZ4kz6OXd0PKPlFqf81M= -github.com/breml/bidichk v0.2.3 h1:qe6ggxpTfA8E75hdjWPZ581sY3a2lnl0IRxLQFelECI= -github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= -github.com/breml/errchkjson v0.3.0 h1:YdDqhfqMT+I1vIxPSas44P+9Z9HzJwCeAzjB8PxP1xw= -github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= -github.com/btcsuite/btcd v0.23.0 h1:V2/ZgjfDFIygAX3ZapeigkVBoVUtOJKSwrhZdlpSvaA= -github.com/btcsuite/btcd/btcec/v2 v2.1.1/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/btcec/v2 v2.1.2/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= -github.com/btcsuite/btcd/btcec/v2 v2.2.1/go.mod h1:9/CSmJxmuvqzX9Wh2fXMWToLOHhPd11lSPuIupwTkI8= -github.com/btcsuite/btcd/btcutil v1.1.1 h1:hDcDaXiP0uEzR8Biqo2weECKqEw0uHDZ9ixIWevVQqY= -github.com/btcsuite/btcd/btcutil v1.1.1/go.mod h1:nbKlBMNm9FGsdvKvu0essceubPiAcI57pYBNnsLAa34= -github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= -github.com/btcsuite/btcutil v1.0.2 h1:9iZ1Terx9fMIOtq1VrwdqfsATL9MC2l8ZrUY6YZ2uts= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw= -github.com/btcsuite/goleveldb v1.0.0 h1:Tvd0BfvqX9o823q1j2UZ/epQo09eJh6dTcRp79ilIN4= -github.com/btcsuite/snappy-go v1.0.0 h1:ZxaA6lo2EpxGddsA8JwWOcxlzRybb444sgmeJQMJGQE= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc= -github.com/btcsuite/winsvc v1.0.0 h1:J9B4L7e3oqhXOcm+2IuNApwzQec85lE+QaikUcCs+dk= -github.com/bufbuild/buf v1.7.0 h1:uWRjhIXcrWkzIkA5TqXGyJbF51VW54QJsQZ3nwaes5Q= -github.com/bufbuild/buf v1.7.0/go.mod h1:Go40fMAF46PnPLC7jJgTQhAI95pmC0+VtxFKVC0qLq0= -github.com/bufbuild/connect-go v1.0.0 h1:htSflKUT8y1jxhoPhPYTZMrsY3ipUXjjrbcZR5O2cVo= -github.com/bufbuild/connect-go v1.0.0/go.mod h1:9iNvh/NOsfhNBUH5CtvXeVUskQO1xsrEviH7ZArwZ3I= -github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= -github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= -github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= -github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= -github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= -github.com/bwesterb/go-ristretto v1.2.0 h1:xxWOVbN5m8NNKiSDZXE1jtZvZnC6JSJ9cYFADiZcWtw= -github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/casbin/casbin/v2 v2.37.0 h1:/poEwPSovi4bTOcP752/CsTQiRz2xycyVKFG7GUhbDw= -github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= -github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.12 h1:DCYWIBOalB0mKKfUg2HhtGgIkBbMA1fnlnkZp7fHB18= -github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charithe/durationcheck v0.0.9 h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy6EEutYk= -github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= -github.com/chavacava/garif v0.0.0-20220630083739-93517212f375 h1:E7LT642ysztPWE0dfz43cWOvMiF42DyTRC+eZIaO4yI= -github.com/chavacava/garif v0.0.0-20220630083739-93517212f375/go.mod h1:4m1Rv7xfuwWPNKXlThldNuJvutYM6J95wNuuVmn55To= -github.com/checkpoint-restore/go-criu/v4 v4.1.0 h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo= -github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8= -github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= -github.com/cheggaaa/pb v1.0.27 h1:wIkZHkNfC7R6GI5w7l/PdAdzXzlrbcI3p8OAlnkTsnc= -github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k= -github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible h1:C29Ae4G5GtYyYMm1aztcyj/J5ckgJm2zwdDajFbx1NY= -github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= -github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec h1:EdRZT3IeKQmfCSrgo8SZ8V3MEnskuJP0wCYNpe+aiXo= -github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= -github.com/cloudflare/circl v1.1.0 h1:bZgT/A+cikZnKIwn7xL2OBj012Bmvho/o6RpRvv3GKY= -github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= -github.com/cloudflare/cloudflare-go v0.14.0 h1:gFqGlGl/5f9UGXAaKapCGUfaTCgRKKnzu2VvzMZlOFA= -github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= -github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA= -github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= -github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= -github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= -github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677 h1:qbb/AE938DFhOajUYh9+OXELpSF9KZw2ZivtmW6eX1Q= -github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677/go.mod h1:890yq1fUb9b6dGNwssgeUO5vQV9qfXnCPxAJhBQfXw0= -github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/coinbase/rosetta-sdk-go v0.4.6 h1:zX2SLmBF1oFbK0c4QCMwkwcHN9VjenFfIt0Dr8k8JGY= -github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f h1:C43yEtQ6NIf4ftFXD/V55gnGFgPbMQobd//YlnLjUJ8= -github.com/containerd/aufs v1.0.0 h1:2oeJiwX5HstO7shSrPZjrohJZLzK36wvpdmzDRkL/LY= -github.com/containerd/btrfs v1.0.0 h1:osn1exbzdub9L5SouXO5swW4ea/xVdJZ3wokxN5GrnA= -github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= -github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= -github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= -github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= -github.com/containerd/containerd v1.6.8/go.mod h1:By6p5KqPK0/7/CgO/A6t/Gz+CUYUu2zf1hUaaymVXB0= -github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= -github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= -github.com/containerd/fifo v1.0.0 h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU= -github.com/containerd/fuse-overlayfs-snapshotter v1.0.2 h1:Xy9Tkx0tk/SsMfLDFc69wzqSrxQHYEFELHBO/Z8XO3M= -github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= -github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= -github.com/containerd/go-cni v1.1.6 h1:el5WPymG5nRRLQF1EfB97FWob4Tdc8INg8RZMaXWZlo= -github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34= -github.com/containerd/go-runc v1.0.0 h1:oU+lLv1ULm5taqgV/CJivypVODI4SUz1znWjv3nNYS0= -github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= -github.com/containerd/imgcrypt v1.1.4 h1:iKTstFebwy3Ak5UF0RHSeuCTahC5OIrPJa6vjMAM81s= -github.com/containerd/imgcrypt v1.1.4/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO8j/tSUpgxvo= -github.com/containerd/nri v0.1.0 h1:6QioHRlThlKh2RkRTR4kIT3PKAcrLo3gIWnjkM4dQmQ= -github.com/containerd/stargz-snapshotter v0.11.3 h1:D3PoF563XmOBdtfx2G6AkhbHueqwIVPBFn2mrsWLa3w= -github.com/containerd/stargz-snapshotter/estargz v0.11.3 h1:k2kN16Px6LYuv++qFqK+JTcYqc8bEVxzGpf8/gFBL5M= -github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= -github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= -github.com/containerd/zfs v1.0.0 h1:cXLJbx+4Jj7rNsTiqVfm6i+RNLx6FFA2fMmDlEf+Wm8= -github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= -github.com/containernetworking/cni v1.1.1 h1:ky20T7c0MvKvbMOwS/FrlbNwjEoqJEUUYfsL4b0mc4k= -github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= -github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= -github.com/containernetworking/plugins v1.1.1 h1:+AGfFigZ5TiQH00vhR8qPeSatj53eNGz0C1d3wVYlHE= -github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8= -github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= -github.com/containers/ocicrypt v1.1.3 h1:uMxn2wTb4nDR7GqG3rnZSfpJXqWURfzZ7nKydzIeKpA= -github.com/containers/ocicrypt v1.1.3/go.mod h1:xpdkbVAuaH3WzbEabUd5yDsl9SwJA5pABH85425Es2g= -github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= -github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= -github.com/coreos/go-etcd v2.0.0+incompatible h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo= -github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk= -github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= -github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 h1:rtAn27wIbmOGUs7RIbVgPEjb31ehTVniDwPGXyMxm5U= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= -github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32 h1:zlCp9n3uwQieELltZWHRmwPmPaZ8+XoL2Sj+A2YJlr8= -github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= -github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= -github.com/cosmos/cosmos-sdk v0.47.0/go.mod h1:FTtZbqiHCZ2vun9WrPq6qLQafNKkAuIhLAxzLjr2TiI= -github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a h1:2humuGPw3O5riJVFq/E2FRjF57UrO97W1qJcGVmK+6k= -github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.mod h1:c8IO23vgNxueCCJlSI9awQtcxsvc+buzaeThB85qfBU= -github.com/cosmos/gogoproto v1.4.1/go.mod h1:Ac9lzL4vFpBMcptJROQ6dQ4M3pOEK5Z/l0Q9p+LoCr4= -github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU= -github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= -github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= -github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= -github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cristalhq/acmd v0.8.1 h1:mtFp/cbeJNY5jokF9zPz5mRllGHropRrOkOVxeGS6FI= -github.com/cristalhq/acmd v0.8.1/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= -github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= -github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= -github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= -github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c h1:Xo2rK1pzOm0jO6abTPIQwbAmqBIOj132otexc1mmzFc= -github.com/d2g/dhcp4client v1.0.0 h1:suYBsYZIkSlUMEz4TAYCczKf62IA2UWC+O8+KtdOhCo= -github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5 h1:+CpLbZIeUn94m02LdEKPcgErLJ347NUwxPKs5u8ieiY= -github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 h1:itqmmf1PFpC4n5JW+j4BU7X4MTfVurhYRTjODoPb2Y8= -github.com/daixiang0/gci v0.8.1 h1:T4xpSC+hmsi4CSyuYfIJdMZAr9o7xZmHpQVygMghGZ4= -github.com/daixiang0/gci v0.8.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= -github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= -github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= -github.com/decred/base58 v1.0.4 h1:QJC6B0E0rXOPA8U/kw2rP+qiRJsUaE2Er+pYb3siUeA= -github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= -github.com/decred/dcrd/lru v1.0.0 h1:Kbsb1SFDsIlaupWPwsPp+dkxiBY1frcS07PCPgotKz8= -github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= -github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20Ha7UVm+mtU= -github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= -github.com/denisenkom/go-mssqldb v0.12.0 h1:VtrkII767ttSPNRfFekePK3sctr+joXgO58stqQbtUA= -github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba h1:p6poVbjHDkKa+wtC8frBMwQtT3BmqGYBjzMwJ63tuR4= -github.com/dgraph-io/badger/v3 v3.2103.2 h1:dpyM5eCJAtQCBcMCZcT4UBZchuTJgCywerHHgmxfxM8= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= -github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= -github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 h1:Izz0+t1Z5nI16/II7vuEo/nHjodOg0p7+OiDpjX5t1E= -github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY= -github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= -github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M= -github.com/docker/docker v1.6.2/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= -github.com/docker/docker-credential-helpers v0.6.4 h1:axCks+yV+2MR3/kZhAmy07yC56WZ2Pwu/fKWtKuZB0o= -github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= -github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= -github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf h1:Yt+4K30SdjOkRoRRm3vYNQgR+/ZIy0RmeUDZo7Y8zeQ= -github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= -github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= -github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= -github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= -github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= -github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= -github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= -github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= -github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= -github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= -github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/ethereum/go-ethereum v1.10.17/go.mod h1:Lt5WzjM07XlXc95YzrhosmR4J9Ahd6X2wyEV2SvGhk0= -github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= -github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= -github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= -github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= -github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= -github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= -github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= -github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= -github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= -github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= -github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c h1:CndMRAH4JIwxbW8KYq6Q+cGWcGHz0FjGR3QqcInWcW0= -github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= -github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= -github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 h1:WXb3TSNmHp2vHoCroCIB1foO/yQ36swABL8aOVeDpgg= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8 h1:a9ENSRDFBUPkJ5lCgVZh26+ZbGyoVJG7yb5SSzF5H54= -github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU= -github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= -github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 h1:IZqZOB2fydHte3kUgxrzK5E1fW7RQGeDwE8F/ZZnUYc= -github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= -github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7 h1:LofdAjjjqCSXMwLGgOgnE+rdPuvX9DxCqaHwKy7i/ko= -github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= -github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= -github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= -github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= -github.com/gdamore/tcell/v2 v2.4.1-0.20210905002822-f057f0a857a1/go.mod h1:Az6Jt+M5idSED2YPGtwnfJV0kXohgdCBPmHGSYc1r04= -github.com/gdamore/tcell/v2 v2.6.0 h1:OKbluoP9VYmJwZwq/iLb4BxwKcwGthaa1YNBJIyCySg= -github.com/gdamore/tcell/v2 v2.6.0/go.mod h1:be9omFATkdr0D9qewWW3d+MEvl5dha+Etb5y65J2H8Y= -github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= -github.com/getsentry/sentry-go v0.17.0 h1:UustVWnOoDFHBS7IJUB2QK/nB5pap748ZEp0swnQJak= -github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/xUS4JuQn1P4cM= -github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= -github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= -github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= -github.com/go-chi/chi/v5 v5.0.7 h1:rDTPXLDHGATaeHvVlLcR4Qe0zftYethFucbjVQ1PxU8= -github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= -github.com/go-critic/go-critic v0.6.5 h1:fDaR/5GWURljXwF8Eh31T2GZNz9X4jeboS912mWF8Uo= -github.com/go-critic/go-critic v0.6.5/go.mod h1:ezfP/Lh7MA6dBNn4c6ab5ALv3sKnZVLx37tr00uuaOY= -github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-billy/v5 v5.4.0 h1:Vaw7LaSTRJOUric7pe4vnzBSgyuf2KrLsu2Y4ZpQBDE= -github.com/go-git/go-billy/v5 v5.4.0/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= -github.com/go-git/go-git-fixtures/v4 v4.3.1 h1:y5z6dd3qi8Hl+stezc8p3JxDkoTRqMAlKnXHuzrfjTQ= -github.com/go-git/go-git-fixtures/v4 v4.3.1/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= -github.com/go-git/go-git/v5 v5.5.2 h1:v8lgZa5k9ylUw+OR/roJHTxR4QItsNFI5nKtAXFuynw= -github.com/go-git/go-git/v5 v5.5.2/go.mod h1:BE5hUJ5yaV2YMxhmaP4l6RBQ08kMxKSPD4BlxtH7OjI= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= -github.com/go-ini/ini v1.25.4 h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= -github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= -github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= -github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= -github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= -github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= -github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= -github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= -github.com/go-toolsmith/astcopy v1.0.2 h1:YnWf5Rnh1hUudj11kei53kI57quN/VH6Hp1n+erozn0= -github.com/go-toolsmith/astcopy v1.0.2/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= -github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astequal v1.0.3 h1:+LVdyRatFS+XO78SGV4I3TCEA0AC7fKEGma+fH+674o= -github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k= -github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg= -github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5 h1:eD9POs68PHkwrx7hAB78z1cb6PfGq/jyWn3wJywsH1o= -github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5/go.mod h1:3NAwwmD4uY/yggRxoEjk/S00MIV3A+H7rrE3i87eYxM= -github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4= -github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk= -github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= -github.com/go-zookeeper/zk v1.0.2 h1:4mx0EYENAdX/B/rbunjlt5+4RTA/a9SMHBRuSKdGxPM= -github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= -github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= -github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= -github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= -github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 h1:+eHOFJl1BaXrQxKX+T06f78590z4qA2ZzBTqahsKSE4= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= -github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= -github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe h1:6RGUuS7EGotKx6J5HIP8ZtyMdiDscjMLfRBSPuzVVeo= -github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= -github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 h1:amWTbTGqOZ71ruzrdA+Nx5WA3tV1N0goTspwmKCQvBY= -github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs= -github.com/golangci/golangci-lint v1.50.1 h1:C829clMcZXEORakZlwpk7M4iDw2XiwxxKaG504SZ9zY= -github.com/golangci/golangci-lint v1.50.1/go.mod h1:AQjHBopYS//oB8xs0y0M/dtxdKHkdhl0RvmjUct0/4w= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= -github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo= -github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= -github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ= -github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= -github.com/google/go-containerregistry v0.5.1 h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ= -github.com/google/go-github/v41 v41.0.0 h1:HseJrM2JFf2vfiZJ8anY2hqBjdfY1Vlj/K27ueww4gg= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= -github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/gax-go v2.0.0+incompatible h1:j0GKcs05QVmm7yesiZq2+9cxHkNK9YM6zKx4D2qucQU= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= -github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= -github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= -github.com/gookit/color v1.5.1 h1:Vjg2VEcdHpwq+oY63s/ksHrgJYCTo0bwWvmmYWdE9fQ= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= -github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= -github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= -github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= -github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= -github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= -github.com/gostaticanalysis/comment v1.4.2 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q= -github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= -github.com/gostaticanalysis/forcetypeassert v0.1.0 h1:6eUflI3DiGusXGK6X7cCcIgVCpZ2CiZ1Q7jl6ZxNV70= -github.com/gostaticanalysis/forcetypeassert v0.1.0/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak= -github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk= -github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= -github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= -github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= -github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI= -github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= -github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 h1:lLT7ZLSzGLI08vc9cpd+tYmNWjdKDqyr/2L+f6U12Fk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= -github.com/hanwen/go-fuse/v2 v2.1.1-0.20220112183258-f57e95bda82d h1:ibbzF2InxMOS+lLCphY9PHNKPURDUBNKaG6ErSq8gJQ= -github.com/hashicorp/consul/api v1.18.0 h1:R7PPNzTCeN6VuQNDwwhZWJvzCtGSrNpJqfb22h3yH9g= -github.com/hashicorp/consul/api v1.18.0/go.mod h1:owRRGJ9M5xReDC5nfT8FTJrNAPbT4NM6p/k+d03q2v4= -github.com/hashicorp/consul/sdk v0.13.0 h1:lce3nFlpv8humJL8rNrrGHYSKc3q+Kxfeg3Ii1m6ZWU= -github.com/hashicorp/consul/sdk v0.13.0/go.mod h1:0hs/l5fOVhJy/VdcoaNqUSi2AUs95eF5WKtv+EYIQqE= -github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= -github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.2.0 h1:La19f8d7WIlm4ogzNHB0JGqs5AUDAZ2UfCY4sJXcJdM= -github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-retryablehttp v0.7.0 h1:eu1EI/mbirUgP5C8hVsTNaGZreBDlYiwC1FZWkvQPQ4= -github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= -github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= -github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= -github.com/hashicorp/mdns v1.0.4 h1:sY0CMhFmjIPDMlTB+HfymFHCaYLhgifZ0QhjaYKD/UQ= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= -github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= -github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= -github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= -github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= -github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= -github.com/hudl/fargo v1.4.0 h1:ZDDILMbB37UlAVLlWcJ2Iz1XuahZZTDZfdCKeclfq2s= -github.com/huin/goupnp v1.0.3-0.20220313090229-ca81a64b4204/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= -github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= -github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= -github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= -github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= -github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639 h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI= -github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 h1:H+uM0Bv88eur3ZSsd2NGKg3YIiuXxwxtlN7HjE66UTU= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= -github.com/influxdata/influxdb v1.8.3 h1:WEypI1BQFTT4teLM+1qkEcvUi0dAvopAI/ir0vAiBg8= -github.com/influxdata/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k= -github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab h1:HqW4xhhynfjrtEiiSGcQUd6vrK23iMam1FO8rI7mwig= -github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM= -github.com/informalsystems/tm-load-test v1.3.0 h1:FGjKy7vBw6mXNakt+wmNWKggQZRsKkEYpaFk/zR64VA= -github.com/informalsystems/tm-load-test v1.3.0/go.mod h1:OQ5AQ9TbT5hKWBNIwsMjn6Bf4O0U4b1kRc+0qZlQJKw= -github.com/intel/goresctrl v0.2.0 h1:JyZjdMQu9Kl/wLXe9xA6s1X+tF6BWsQPFGJMEeCfWzE= -github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= -github.com/ipfs/go-cid v0.2.0 h1:01JTiihFq9en9Vz0lc0VDWvZe/uBonGpzo4THP0vcQ0= -github.com/ipfs/go-datastore v0.5.1 h1:WkRhLuISI+XPD0uk3OskB0fYFSyqK8Ob5ZYew9Qa1nQ= -github.com/ipfs/go-ds-badger v0.3.0 h1:xREL3V0EH9S219kFFueOYJJTcjgNSZ2HY1iSvN7U1Ro= -github.com/ipfs/go-ds-leveldb v0.5.0 h1:s++MEBbD3ZKc9/8/njrn4flZLnCuY9I79v94gBUNumo= -github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= -github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= -github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= -github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= -github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= -github.com/j-keck/arping v1.0.2 h1:hlLhuXgQkzIJTZuhMigvG/CuSkaspeaD9hRDk2zuiMI= -github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= -github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= -github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= -github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a h1:d4+I1YEKVmWZrgkt6jpXBnLgV2ZjO0YxEtLDdfIZfH4= -github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= -github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e h1:UvSe12bq+Uj2hWd8aOlwPmoZ+CITRFrdit+sDGfAg8U= -github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= -github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= -github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM= -github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= -github.com/jhump/gopoet v0.1.0 h1:gYjOPnzHd2nzB37xYQZxj4EIQNpBrBskRqQQ3q4ZgSg= -github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= -github.com/jhump/goprotoc v0.5.0 h1:Y1UgUX+txUznfqcGdDef8ZOVlyQvnV0pKWZH08RmZuo= -github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= -github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f h1:BNuUg9k2EiJmlMwjoef3e8vZLHplbVw6DrjGFjLL+Yo= -github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f/go.mod h1:qr2b5kx4HbFS7/g4uYO5qv9ei8303JMsC7ESbYiqr2Q= -github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= -github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= -github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= -github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= -github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= -github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= -github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/joefitzgerald/rainbow-reporter v0.1.0 h1:AuMG652zjdzI0YCCnXAqATtRBpGXMcAnrajcaTrSeuo= -github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= -github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= -github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= -github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= -github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= -github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= -github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= -github.com/karalabe/usb v0.0.2 h1:M6QQBNxF+CQ8OFvxrT90BA0qBOXymndZnk5q235mFc4= -github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= -github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= -github.com/kataras/iris/v12 v12.0.1/go.mod h1:udK4vLQKkdDqMGJJVd/msuMtN6hpYJhg/lSzuxjhO+U= -github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= -github.com/kataras/neffos v0.0.10/go.mod h1:ZYmJC07hQPW67eKuzlfY7SO3bC0mw83A3j6im82hfqw= -github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= -github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= -github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= -github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= -github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7c= -github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= -github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= -github.com/kkHAIKE/contextcheck v1.1.3 h1:l4pNvrb8JSwRd51ojtcOxOeHJzHek+MtOyXbaR0uvmw= -github.com/kkHAIKE/contextcheck v1.1.3/go.mod h1:PG/cwd6c0705/LM0KTr1acO2gORUxkSVWyLJOFW5qoo= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23 h1:FOOIBWrEkLgmlgGfMuZT83xIwfPDxEI2OHu6xUmJMFE= -github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/cpuid v1.2.0 h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE= -github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= -github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= -github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= -github.com/koron/go-ssdp v0.0.3 h1:JivLMY45N76b4p/vsWGOKewBQu6uf39y8l+AQ7sDKx8= -github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.5 h1:hyz3dwM5QLc1Rfoz4FuWJQG5BN7tc6K1MndAUnGpQr4= -github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= -github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.6 h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g= -github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= -github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= -github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= -github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= -github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= -github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= -github.com/ldez/tagliatelle v0.3.1 h1:3BqVVlReVUZwafJUwQ+oxbx2BEX2vUG4Yu/NOfMiKiM= -github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/leonklingele/grouper v1.1.0 h1:tC2y/ygPbMFSBOs3DcyaEMKnnwH7eYKzohOtRrf0SAg= -github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= -github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= -github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= -github.com/libp2p/go-libp2p v0.22.0 h1:2Tce0kHOp5zASFKJbNzRElvh0iZwdtG5uZheNW8chIw= -github.com/libp2p/go-libp2p-asn-util v0.2.0 h1:rg3+Os8jbnO5DxkC7K/Utdi+DkY3q/d1/1q+8WeNAsw= -github.com/libp2p/go-libp2p-core v0.20.1 h1:fQz4BJyIFmSZAiTbKV8qoYhEH5Dtv/cVhZbG3Ib/+Cw= -github.com/libp2p/go-libp2p-testing v0.11.0 h1:+R7FRl/U3Y00neyBSM2qgDzqz3HkWH24U9nMlascHL4= -github.com/libp2p/go-mplex v0.7.0 h1:BDhFZdlk5tbr0oyFq/xv/NPGfjbnrsDam1EvutpBDbY= -github.com/libp2p/go-msgio v0.2.0 h1:W6shmB+FeynDrUVl2dgFQvzfBZcXiyqY4VmpQLu9FqU= -github.com/libp2p/go-nat v0.1.0 h1:MfVsH6DLcpa04Xr+p8hmVRG4juse0s3J8HyNWYHffXg= -github.com/libp2p/go-netroute v0.2.0 h1:0FpsbsvuSnAhXFnCY0VLFbJOzaK0VnP0r1QT/o4nWRE= -github.com/libp2p/go-reuseport v0.2.0 h1:18PRvIMlpY6ZK85nIAicSBuXXvrYoSw3dsBAR7zc560= -github.com/libp2p/go-yamux/v3 v3.1.2 h1:lNEy28MBk1HavUAlzKgShp+F6mn/ea1nDYWftZhFW9Q= -github.com/libp2p/zeroconf/v2 v2.2.0 h1:Cup06Jv6u81HLhIj1KasuNM/RHHrJ8T7wOTS4+Tv53Q= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743 h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo= -github.com/lightstep/lightstep-tracer-go v0.18.1 h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk= -github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio= -github.com/linxGnu/grocksdb v1.7.10 h1:dz7RY7GnFUA+GJO6jodyxgkUeGMEkPp3ikt9hAcNGEw= -github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= -github.com/lucas-clemente/quic-go v0.28.1 h1:Uo0lvVxWg5la9gflIF9lwa39ONq85Xq2D91YNEIslzU= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= -github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star v0.6.1 h1:erE0rdztuaDq3bpGifD95wfoPrSZc95nGA6tbiNYh6M= -github.com/lyft/protoc-gen-validate v0.0.13 h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA= -github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= -github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= -github.com/maratori/testpackage v1.1.0 h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q= -github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= -github.com/marstr/guid v1.1.0 h1:/M4H/1G4avsieL6BbUwCOBzulmoeKVP5ux/3mQNnbyI= -github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= -github.com/marten-seemann/qtls-go1-17 v0.1.2 h1:JADBlm0LYiVbuSySCHeY863dNkcpMmDR7s0bLKJeYlQ= -github.com/marten-seemann/qtls-go1-18 v0.1.2 h1:JH6jmzbduz0ITVQ7ShevK10Av5+jBEKAHMntXmIV7kM= -github.com/marten-seemann/qtls-go1-19 v0.1.0 h1:rLFKD/9mp/uq1SYGYuVZhm83wkmU95pK5df3GufyYYU= -github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= -github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= -github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= -github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.11.0 h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q= -github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2 h1:g+4J5sZg6osfvEfkRZxJ1em0VT95/UOZgi/l7zi1/oE= -github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= -github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= -github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= -github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 h1:zpIH83+oKzcpryru8ceC6BxnoG8TBrhgAvRg8obzup0= -github.com/mgechev/revive v1.2.4 h1:+2Hd/S8oO2H0Ikq2+egtNwQsVhAeELHjxjIUFX5ajLI= -github.com/mgechev/revive v1.2.4/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= -github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= -github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= -github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= -github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk= -github.com/mitchellh/cli v1.1.0 h1:tEElEatulEHDeedTxwckzyYMA5c86fbmNIUL1hBIiTg= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= -github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= -github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= -github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= -github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f h1:2+myh5ml7lgEU/51gbeLHfKGNfgEQQIWrlbdaOsidbQ= -github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= -github.com/moby/buildkit v0.10.4 h1:FvC+buO8isGpUFZ1abdSLdGHZVqg9sqI4BbFL8tlzP4= -github.com/moby/buildkit v0.10.4/go.mod h1:Yajz9vt1Zw5q9Pp4pdb3TCSUXJBIroIQGQ3TTs/sLug= -github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= -github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/sys/signal v0.6.0 h1:aDpY94H8VlhTGa9sNYUFCFsMZIUh5wm0B6XkIoJj/iY= -github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= -github.com/moby/sys/symlink v0.2.0 h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc= -github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= -github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= -github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= -github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= -github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= -github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5 h1:0KqC6/sLy7fDpBdybhVkkv4Yz+PmB7c9Dz9z3dLW804= -github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= -github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4= -github.com/multiformats/go-base32 v0.0.4 h1:+qMh4a2f37b4xTNs6mqitDinryCI+tfO2dRVMN9mjSE= -github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= -github.com/multiformats/go-multiaddr v0.6.0 h1:qMnoOPj2s8xxPU5kZ57Cqdr0hHhARz7mFsPMIiYNqzg= -github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= -github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= -github.com/multiformats/go-multibase v0.1.1 h1:3ASCDsuLX8+j4kx58qnJ4YFq/JWTJpCyDW27ztsVTOI= -github.com/multiformats/go-multicodec v0.5.0 h1:EgU6cBe/D7WRwQb1KmnBvU7lrcFGMggZVTPtOW9dDHs= -github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108= -github.com/multiformats/go-multistream v0.3.3 h1:d5PZpjwRgVlbwfdTDjife7XszfZd8KYWfROYFlGcR8o= -github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76 h1:0xuRacu/Zr+jX+KyLLPPktbwXqyOvnOPUQmMLzX1jxU= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= -github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= -github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= -github.com/naoina/go-stringutil v0.1.0 h1:rCUeRUHjBjGTSHl0VC00jUPLz8/F9dDzYI70Hzifhks= -github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416 h1:shk/vn9oCoOTmwcouEdwIeOtOGA/ELRUw/GwvxwfT+0= -github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= -github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI= -github.com/nats-io/nats-server/v2 v2.5.0 h1:wsnVaaXH9VRSg+A2MVg5Q727/CqxnmPLGFQ3YZYKTQg= -github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= -github.com/nats-io/nats.go v1.12.1 h1:+0ndxwUPz3CmQ2vjbXdkC1fo3FdiOQDim4gl3Mge8Qo= -github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= -github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= -github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= -github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= -github.com/ncw/swift v1.0.47 h1:4DQRPj35Y41WogBxyhOXlrI37nzGlyEcsforeudyYPQ= -github.com/networkplumbing/go-nft v0.2.0 h1:eKapmyVUt/3VGfhYaDos5yeprm+LPt881UeksmKKZHY= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/nishanths/exhaustive v0.8.3 h1:pw5O09vwg8ZaditDp/nQRqVnrMczSJDxRDJMowvhsrM= -github.com/nishanths/exhaustive v0.8.3/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= -github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= -github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/oklog/oklog v0.3.2 h1:wVfs8F+in6nTBMkA7CbRw+zZMIB7nNM825cM1wuzoTk= -github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= -github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= -github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= -github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= -github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= -github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= -github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39 h1:H7DMc6FAjgwZZi8BRqjrAAHWoqEr5e5L6pS4V0ezet4= -github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w= -github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU= -github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= -github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU= -github.com/openzipkin/zipkin-go v0.2.5 h1:UwtQQx2pyPIgWYHRg+epgdx1/HnBQTgN3/oIYEJTQzU= -github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/ory/dockertest/v3 v3.9.1 h1:v4dkG+dlu76goxMiTT2j8zV7s4oPPEppKT8K8p2f1kY= -github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= -github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/curr v1.0.0 h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI= -github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= -github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= -github.com/otiai10/mint v1.3.1 h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc= -github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/pact-foundation/pact-go v1.0.4 h1:OYkFijGHoZAYbOIb1LWXrwKQbMMRUv1oQ89blD2Mh2Q= -github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= -github.com/performancecopilot/speed v3.0.0+incompatible h1:2WnRzIquHa5QxaJKShDkLM+sc0JPuwhXzK8OYOyt3Vg= -github.com/performancecopilot/speed/v4 v4.0.0 h1:VxEDCmdkfbQYDlcr/GC9YoN9PQ6p8ulk9xVsepYy9ZY= -github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= -github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= -github.com/pierrec/xxHash v0.1.5 h1:n/jBpwTHiER4xYvK3/CdPVnLDPchj8eTJFFLUb4QHBo= -github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pjbgf/sha1cd v0.2.3 h1:uKQP/7QOzNtKYH7UTohZLcjF5/55EnTw0jO/Ru4jZwI= -github.com/pjbgf/sha1cd v0.2.3/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= -github.com/pkg/profile v1.6.0 h1:hUDfIISABYI59DyeB3OTay/HxSRwTQ8rB/H83k6r5dM= -github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= -github.com/pointlander/compress v1.1.1-0.20190518213731-ff44bd196cc3 h1:hUmXhbljNFtrH5hzV9kiRoddZ5nfPTq3K0Sb2hYYiqE= -github.com/pointlander/compress v1.1.1-0.20190518213731-ff44bd196cc3/go.mod h1:q5NXNGzqj5uPnVuhGkZfmgHqNUhf15VLi6L9kW0VEc0= -github.com/pointlander/jetset v1.0.1-0.20190518214125-eee7eff80bd4 h1:RHHRCZeaNyBXdYPMjZNH8/XHDBH38TZzw8izrW7dmBE= -github.com/pointlander/jetset v1.0.1-0.20190518214125-eee7eff80bd4/go.mod h1:RdR1j20Aj5pB6+fw6Y9Ur7lMHpegTEjY1vc19hEZL40= -github.com/pointlander/peg v1.0.1 h1:mgA/GQE8TeS9MdkU6Xn6iEzBmQUQCNuWD7rHCK6Mjs0= -github.com/pointlander/peg v1.0.1/go.mod h1:5hsGDQR2oZI4QoWz0/Kdg3VSVEC31iJw/b7WjqCBGRI= -github.com/polyfloyd/go-errorlint v1.0.5 h1:AHB5JRCjlmelh9RrLxT9sgzpalIwwq4hqE8EkwIwKdY= -github.com/polyfloyd/go-errorlint v1.0.5/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= -github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= -github.com/quasilyte/go-ruleguard v0.3.18 h1:sd+abO1PEI9fkYennwzHn9kl3nqP6M5vE7FiOzZ+5CE= -github.com/quasilyte/go-ruleguard v0.3.18/go.mod h1:lOIzcYlgxrQ2sGJ735EHXmf/e9MJ516j16K/Ifcttvs= -github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.21 h1:vNkC6fC6qMLzCOGbnIHOd5ixUGgTbp3Z4fGnUgULlDA= -github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71 h1:CNooiryw5aisadVfzneSZPswRWvnVW8hF1bS/vo8ReI= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= -github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f h1:6Gtn2i04RD0gVyYf2/IUMTIs+qYleBt4zxDqkLTcu4U= -github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= -github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= -github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= -github.com/remyoudompheng/go-dbus v0.0.0-20121104212943-b7232d34b1d5 h1:CvqZS4QYHBRvx7AeFdimd16HCbLlYsvQMcKDACpJW/c= -github.com/remyoudompheng/go-liblzma v0.0.0-20190506200333-81bf2d431b96 h1:J8J/cgLDRuqXJnwIrRDBvtl+LLsdg7De74znW/BRRq4= -github.com/remyoudompheng/go-misc v0.0.0-20190427085024-2d6ac652a50e h1:eTWZyPUnHcuGRDiryS/l2I7FfKjbU3IBx3IjqHPxuKU= -github.com/rivo/tview v0.0.0-20220307222120-9994674d60a8 h1:xe+mmCnDN82KhC010l3NfYlA8ZbOuzbXAzSYBa6wbMc= -github.com/rivo/tview v0.0.0-20220307222120-9994674d60a8/go.mod h1:WIfMkQNY+oq/mWwtsjOYHIZBuwthioY2srOmljJkTnk= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rjeczalik/notify v0.9.1 h1:CLCKso/QK1snAlnhNR/CNvNiFU2saUtjV0bx3EwNeCE= -github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xid v1.3.0 h1:6NjYksEUlhurdVehpc7S7dk6DAmcKv8V9gG0FsVN2U4= -github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= -github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= -github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= -github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= -github.com/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4= -github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= -github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= -github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= -github.com/ryanuber/columnize v2.1.0+incompatible h1:j1Wcmh8OrK4Q7GXY+V7SVSY8nUWQxHW5TkBe7YUl+2s= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ= -github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -github.com/sagikazarmark/crypt v0.9.0 h1:fipzMFW34hFUEc4D7fsLQFtE7yElkpgyS2zruedRdZk= -github.com/sagikazarmark/crypt v0.9.0/go.mod h1:RnH7sEhxfdnPm1z+XMgSLjWTEIjyK4z2dw6+4vHTMuo= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU= -github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= -github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= -github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= -github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.20.0 h1:K6CXjqqtSYSsuyRDDC7Sjn6vTMLiSJa4ZmDkiokoqtw= -github.com/sashamelentyev/usestdlibvars v1.20.0/go.mod h1:0GaP+ecfZMXShS0A94CJn6aEuPRILv8h/VuWI9n1ygg= -github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/sclevine/agouti v3.0.0+incompatible h1:8IBJS6PWz3uTlMP3YBIR5f+KAldcGuOeFkFbUWfBgK4= -github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= -github.com/sclevine/spec v1.2.0 h1:1Jwdf9jSfDl9NVmt8ndHqbTZ7XCCPbh1jI3hkDBHVYA= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= -github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 h1:RpforrEYXWkmGwJHIGnLZ3tTWStkjVVstwzNGqxX2Ds= -github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM= -github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo= -github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= -github.com/serialx/hashring v0.0.0-20190422032157-8b2912629002 h1:ka9QPuQg2u4LGipiZGsgkg3rJCo4iIUCy75FddM0GRQ= -github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= -github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt3d2aYa0SiNms/hFqC9qJYolM= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= -github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= -github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= -github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= -github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE= -github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= -github.com/skeema/knownhosts v1.1.0 h1:Wvr9V0MxhjRbl3f9nMnKnFfiWTJmtECJ9Njkea3ysW0= -github.com/skeema/knownhosts v1.1.0/go.mod h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= -github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa h1:YJfZp12Z3AFhSBeXOlv4BO55RMwPn2NoQeDsrdWnBtY= -github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= -github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= -github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ= -github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= -github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= -github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw= -github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= -github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= -github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= -github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= -github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= -github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= -github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 h1:lIOOHPEbXzO3vnmx2gok1Tfs31Q8GQqKLc8vVqyQq/I= -github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230406071732-5baa47f70e73 h1:BjiCTJbuXFgeR83Q+b2zsiV7anXhCs163edxtjlrGog= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230406071732-5baa47f70e73/go.mod h1:tkBlI3o0Z1jgkZIkckOLIHJuR+S0LbGoBEGg4NQ4Aa8= -github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo= -github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e h1:mOtuXaRAbVZsxAHVdPR3IjfmN8T1h2iczJLynhLybf8= -github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -github.com/supranational/blst v0.3.8-0.20220526154634-513d2456b344 h1:m+8fKfQwCAy1QjzINvKe/pYtLjo2dl59x2w9YSEJxuY= -github.com/supranational/blst v0.3.8-0.20220526154634-513d2456b344/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= -github.com/tchap/go-patricia v2.2.6+incompatible h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck= -github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= -github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= -github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= -github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= -github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro= -github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= -github.com/timonwong/loggercheck v0.9.3 h1:ecACo9fNiHxX4/Bc02rW2+kaJIAMAes7qJ7JKxt0EZI= -github.com/timonwong/loggercheck v0.9.3/go.mod h1:wUqnk9yAOIKtGA39l1KLE9Iz0QiTocu/YZoOf+OzFdw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck/v2 v2.7.0 h1:J/F8DbSKJC83bAvC6FoZaRjZiZ/iKoueSdrEkmGeacA= -github.com/tomarrell/wrapcheck/v2 v2.7.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= -github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= -github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= -github.com/tonistiigi/fsutil v0.0.0-20220115021204-b19f7f9cb274 h1:wbyZxD6IPFp0sl5uscMOJRsz5UKGFiNiD16e+MVfKZY= -github.com/tonistiigi/go-actions-cache v0.0.0-20220404170428-0bdeb6e1eac7 h1:8eY6m1mjgyB8XySUR7WvebTM8D/Vs86jLJzD/Tw7zkc= -github.com/tonistiigi/go-archvariant v1.0.0 h1:5LC1eDWiBNflnTF1prCiX09yfNHIxDC/aukdhCdTyb0= -github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea h1:SXhTLE6pb6eld/v/cCndK0AMpt1wiVFb/YYmqB3/QG0= -github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f h1:DLpt6B5oaaS8jyXHa9VA4rrZloBVPVXeCtrOsrFauxc= -github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= -github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= -github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= -github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= -github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= -github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= -github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqzi/CzI= -github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= -github.com/urfave/cli v1.22.4 h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA= -github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.10.2 h1:x3p8awjp/2arX+Nl/G2040AZpOCHS/eMJJ1/a+mye4Y= -github.com/urfave/cli/v2 v2.10.2/go.mod h1:f8iq5LtQ/bLxafbdBSLPPNsgaW0l/2fYYEHhAyPlwvo= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= -github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= -github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= -github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM= -github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME= -github.com/vedhavyas/go-subkey v1.0.3 h1:iKR33BB/akKmcR2PMlXPBeeODjWLM90EL98OrOGs8CA= -github.com/vektra/mockery/v2 v2.14.0 h1:KZ1p5Hrn8tiY+LErRMr14HHle6khxo+JKOXLBW/yfqs= -github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= -github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA= -github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA= -github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE= -github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= -github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xhit/go-str2duration v1.2.0/go.mod h1:3cPSlfZlUHVlneIVfePFWcJZsuwf+P1v2SRTV4cUmp4= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= -github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= -github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= -github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= -github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o= -github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= -github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= -github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= -github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= -github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= -github.com/zondax/ledger-go v0.14.0/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= -gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= -gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/api/v3 v3.5.6 h1:Cy2qx3npLcYqTKqGJzMypnMv2tiRyifZJ17BlWIWA7A= -go.etcd.io/etcd/api/v3 v3.5.6/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.6 h1:TXQWYceBKqLp4sa87rcPs11SXxUA/mHwH975v+BDvLU= -go.etcd.io/etcd/client/pkg/v3 v3.5.6/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v2 v2.305.6 h1:fIDR0p4KMjw01MJMfUIDWdQbjo06PD6CeYM5z4EHLi0= -go.etcd.io/etcd/client/v2 v2.305.6/go.mod h1:BHha8XJGe8vCIBfWBpbBLVZ4QjOIlfoouvOwydu63E0= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.etcd.io/etcd/client/v3 v3.5.6 h1:coLs69PWCXE9G4FKquzNaSHrRyMCAXwF+IX1tAPVO8E= -go.etcd.io/etcd/client/v3 v3.5.6/go.mod h1:f6GRinRMCsFVv9Ht42EyY7nfsVGwrNO0WEoS2pRKzQk= -go.etcd.io/etcd/pkg/v3 v3.5.0 h1:ntrg6vvKRW26JRmHTE0iNlDgYK6JX3hg/4cD62X0ixk= -go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= -go.etcd.io/etcd/raft/v3 v3.5.0 h1:kw2TmO3yFTgE+F0mdKkG7xMxkit2duBDa2Hu6D/HMlw= -go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= -go.etcd.io/etcd/server/v3 v3.5.0 h1:jk8D/lwGEDlQU9kZXUFMSANkE22Sg5+mW27ip8xcF9E= -go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= -go.etcd.io/gofail v0.1.0 h1:XItAMIhOojXFQMgrxjnd2EIIHun/d5qL0Pf7FzVTkFg= -go.etcd.io/gofail v0.1.0/go.mod h1:VZBCXYGZhHAinaBiiqYvuDynvahNsAyLFwB3kEHKz1M= -go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M= -go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.3 h1:syAz40OyelLZo42+3U68Phisvrx4qh+4wpdZw7eUUdY= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.3/go.mod h1:Dts42MGkzZne2yCru741+bFiTMWkIj/LLRizad7b9tw= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.29.0 h1:Wjp9vsVSIEyvdiaECfqxY9xBqQ7JaSCGtvHgR4doXZk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 h1:SLme4Porm+UwX0DdHMxlwRt7FzPSE0sys81bet2o0pU= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= -go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= -go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk= -go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk= -go.opentelemetry.io/otel/exporters/jaeger v1.4.1 h1:VHCK+2yTZDqDaVXj7JH2Z/khptuydo6C0ttBh2bxAbc= -go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1 h1:imIM3vRDMyZK1ypQlQlO+brE22I9lRhJsBDXpDWjlz8= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1 h1:WPpPsAAs8I2rA47v5u0558meKmmwm1Dj99ZbqCV8sZ8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1/go.mod h1:o5RW5o2pKpJLD5dNTCmjF1DorYwMeFJmb/rKr5sLaa8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1 h1:AxqDiGk8CorEXStMDZF5Hz9vo9Z7ZZ+I5m8JRl/ko40= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1/go.mod h1:c6E4V3/U+miqjs/8l950wggHGL1qzlp0Ypj9xoGrPqo= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1 h1:8qOago/OqoFclMUUj/184tZyRdDZFpcejSjbk5Jrl6Y= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1/go.mod h1:VwYo0Hak6Efuy0TXsZs8o1hnV3dHDPNtDbycG0hI8+M= -go.opentelemetry.io/otel/internal/metric v0.27.0 h1:9dAVGAfFiiEq5NVB9FUJ5et+btbDQAUIJehJ+ikyryk= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/metric v0.27.0 h1:HhJPsGhJoKRSegPQILFbODU56NS/L1UE4fS1sC5kIwQ= -go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= -go.opentelemetry.io/otel/sdk v1.4.1 h1:J7EaW71E0v87qflB4cDolaqq3AcujGrtyIPGQoZOB0Y= -go.opentelemetry.io/otel/sdk v1.4.1/go.mod h1:NBwHDgDIBYjwK2WNu1OPgsIc2IJzmBXNnvIJxJc8BpE= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0 h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0 h1:7ao1wpzHRVKf0OQ7GIxiQJA6X7DLX9o14gmVon7mMK8= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= -go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= -go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= -go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI= -go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U= -go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= -go.opentelemetry.io/proto/otlp v0.12.0/go.mod h1:TsIjwGWIx5VFYv9KGVlOpxoBl5Dy+63SUguV7GGvlSQ= -go.opentelemetry.io/proto/otlp v0.15.0 h1:h0bKrvdrT/9sBwEJ6iWUqT/N/xPcS66bL4u3isneJ6w= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= -go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= -golang.org/x/exp v0.0.0-20221019170559-20944726eadf/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91 h1:Ic/qN6TEifvObMGQy72k0n1LlJr7DjWWEi+MOsDOiSk= -golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20211013180041-c96bc1413d57/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= -golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= -golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210909193231-528a39cd75f3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA= -golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= -golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.8-0.20211029000441-d6a9af8af023/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= -gonum.org/v1/gonum v0.8.2 h1:CCXrcPKiGGotvnN6jfUsKk4rRqm7q09/YbKb5xCEvtM= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k= -google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8 h1:Cpp2P6TPjujNoC5M2KHY6g7wfyLYfIWRZaSdIKfDasA= -google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230202175211-008b39050e57/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= -google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= -google.golang.org/protobuf v1.27.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= -gopkg.in/cheggaaa/pb.v1 v1.0.27 h1:kJdccidYzt3CaHD1crCFTS1hxyhSi059NhOFUf03YFo= -gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= -gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= -gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= -gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= -gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= -honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= -honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= -k8s.io/api v0.22.5 h1:xk7C+rMjF/EGELiD560jdmwzrB788mfcHiNbMQLIVI8= -k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= -k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= -k8s.io/apimachinery v0.22.5 h1:cIPwldOYm1Slq9VLBRPtEYpyhjIm1C6aAMAoENuvN9s= -k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= -k8s.io/apiserver v0.22.5 h1:71krQxCUz218ecb+nPhfDsNB6QgP1/4EMvi1a2uYBlg= -k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= -k8s.io/client-go v0.22.5 h1:I8Zn/UqIdi2r02aZmhaJ1hqMxcpfJ3t5VqvHtctHYFo= -k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= -k8s.io/code-generator v0.19.7 h1:kM/68Y26Z/u//TFc1ggVVcg62te8A2yQh57jBfD0FWQ= -k8s.io/component-base v0.22.5 h1:U0eHqZm7mAFE42hFwYhY6ze/MmVaW00JpMrzVsQmzYE= -k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= -k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= -k8s.io/cri-api v0.25.0 h1:INwdXsCDSA/0hGNdPxdE2dQD6ft/5K1EaKXZixvSQxg= -k8s.io/cri-api v0.25.0/go.mod h1:J1rAyQkSJ2Q6I+aBMOVgg2/cbbebso6FNa0UagiR0kc= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded h1:JApXBKYyB7l9xx+DK7/+mFjC7A9Bt5A93FPvFD0HIFE= -k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= -k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c h1:jvamsI1tn9V0S8jicyX82qaFC0H/NKxv2e5mbqsgR80= -k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kubernetes v1.13.0 h1:qTfB+u5M92k2fCCCVP2iuhgwwSOv1EkAkvQY1tQODD8= -k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= -modernc.org/libc v1.22.4 h1:wymSbZb0AlrjdAVX3cjreCHTPCpPARbQXNz6BHPzdwQ= -modernc.org/libc v1.22.4/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= -modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= -modernc.org/sqlite v1.21.1 h1:GyDFqNnESLOhwwDRaHGdp2jKLDzpyT/rNLglX3ZkMSU= -mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= -mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= -mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 h1:seuXWbRB1qPrS3NQnHmFKLJLtskWyueeIzmLXghMGgk= -mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk= -rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= -rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= -rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= -rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22 h1:fmRfl9WJ4ApJn7LxNuED4m0t18qivVQOxP6aAYG9J6c= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM= diff --git a/interchaintest/go.mod b/interchaintest/go.mod index 08d4347e9..45f2853c9 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -28,7 +28,7 @@ require ( cosmossdk.io/depinject v1.0.0-alpha.3 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect cosmossdk.io/math v1.0.0 // indirect - cosmossdk.io/tools/rosetta v0.2.1 // indirect + // cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect @@ -253,4 +253,5 @@ replace ( github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/vedhavyas/go-subkey => github.com/strangelove-ventures/go-subkey v1.0.7 + ) diff --git a/relayer/chains/cosmos/module/app_module.go b/relayer/chains/cosmos/module/app_module.go index 39e6ea36b..6a2d45f15 100644 --- a/relayer/chains/cosmos/module/app_module.go +++ b/relayer/chains/cosmos/module/app_module.go @@ -5,7 +5,6 @@ import ( "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" - localhost "github.com/cosmos/ibc-go/v7/modules/light-clients/09-localhost" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/spf13/cobra" @@ -27,7 +26,6 @@ func (AppModuleBasic) RegisterLegacyAminoCodec(*codec.LegacyAmino) {} func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) { tmlightclient.RegisterInterfaces(registry) solomachine.RegisterInterfaces(registry) - localhost.RegisterInterfaces(registry) } // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the ibc module. diff --git a/relayer/chains/icon/provider_test.go b/relayer/chains/icon/provider_test.go index d10e7fab1..7bc8d94be 100644 --- a/relayer/chains/icon/provider_test.go +++ b/relayer/chains/icon/provider_test.go @@ -55,6 +55,7 @@ func GetMockIconProvider(network_id int, contractAddress string) *IconProvider { iconProvider, _ := p.(*IconProvider) return iconProvider + } func TestNetworkSectionHashCheck(t *testing.T) { diff --git a/relayer/codecs/ethermint/codec.go b/relayer/codecs/ethermint/codec.go index df398a823..e47d748a6 100644 --- a/relayer/codecs/ethermint/codec.go +++ b/relayer/codecs/ethermint/codec.go @@ -3,7 +3,6 @@ package ethermint import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" - "github.com/cosmos/cosmos-sdk/types/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" ) @@ -20,9 +19,5 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { (*authtypes.GenesisAccount)(nil), &EthAccount{}, ) - registry.RegisterImplementations( - (*tx.ExtensionOptionI)(nil), - &ExtensionOptionsWeb3Tx{}, - &ExtensionOptionDynamicFeeTx{}, - ) + } From faba3a1a872608048ab6345f2daa9775b6233152 Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Thu, 29 Jun 2023 12:01:43 +0545 Subject: [PATCH 42/46] fix: connection key include --- relayer/processor/path_end_runtime.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index 79b5c7664..2d06b36eb 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -547,10 +547,13 @@ func (pathEnd *pathEndRuntime) removePacketRetention( // It will also determine if the message needs to be given up on entirely and remove retention if so. func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBCMessage, counterparty *pathEndRuntime) bool { eventType := message.eventType - k := ConnectionInfoConnectionKey(message.info).Counterparty() - pathEndForHeight := counterparty - if strings.Contains(pathEnd.clientState.ClientID, "tendermint") && message.info.Height >= pathEndForHeight.latestBlock.Height { + k := ConnectionInfoConnectionKey(message.info) + if eventType != conntypes.EventTypeConnectionOpenInit { + k = k.Counterparty() + } + + if strings.Contains(pathEnd.clientState.ClientID, "tendermint") && message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay connection message until counterparty height has incremented", zap.Inline(k), zap.String("event_type", eventType), @@ -621,11 +624,14 @@ func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBC // shouldSendChannelMessage determines if the channel handshake message should be sent now. // It will also determine if the message needs to be given up on entirely and remove retention if so. func (pathEnd *pathEndRuntime) shouldSendChannelMessage(message channelIBCMessage, counterparty *pathEndRuntime) bool { + eventType := message.eventType - channelKey := ChannelInfoChannelKey(message.info).Counterparty() + channelKey := ChannelInfoChannelKey(message.info) + if eventType != chantypes.EventTypeChannelOpenInit { + channelKey = channelKey.Counterparty() + } - pathEndForHeight := counterparty - if strings.Contains(pathEnd.clientState.ClientID, "tendermint") && message.info.Height >= pathEndForHeight.latestBlock.Height { + if strings.Contains(pathEnd.clientState.ClientID, "tendermint") && message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay channel message until counterparty height has incremented", zap.Inline(channelKey), zap.String("event_type", eventType), From 279891a631122dd5ede979b09a27001fb736c775 Mon Sep 17 00:00:00 2001 From: izyak Date: Thu, 29 Jun 2023 12:31:19 +0545 Subject: [PATCH 43/46] chore: comment out flush --- relayer/processor/path_processor.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/relayer/processor/path_processor.go b/relayer/processor/path_processor.go index 072925fb6..2b295d4ce 100644 --- a/relayer/processor/path_processor.go +++ b/relayer/processor/path_processor.go @@ -339,7 +339,7 @@ func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { } if pp.shouldFlush() && !pp.initialFlushComplete { - pp.handleFlush(ctx) // TODO: icon-project + // pp.handleFlush(ctx) pp.initialFlushComplete = true } else if pp.shouldTerminateForFlushComplete() { cancel() From 3dd1fdc989e37d77fab0fc8e6f1d3359e6c42938 Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Thu, 29 Jun 2023 13:19:30 +0545 Subject: [PATCH 44/46] fix: remove SET method from providerConfig --- cmd/appstate.go | 26 +++++++++++++------------- relayer/chains/archway/provider.go | 5 ----- relayer/chains/cosmos/provider.go | 5 ----- relayer/chains/icon/provider.go | 11 ----------- relayer/chains/penumbra/provider.go | 5 ----- relayer/provider/provider.go | 1 - 6 files changed, 13 insertions(+), 40 deletions(-) diff --git a/cmd/appstate.go b/cmd/appstate.go index 074e246fb..7f26557f3 100644 --- a/cmd/appstate.go +++ b/cmd/appstate.go @@ -343,20 +343,20 @@ func (a *appState) CheckIfProviderType(providerName string, providerType string) // return nil // } -func setProviderConfigField(cfg *ConfigOutputWrapper, providerName string, fieldToChange string, newValue interface{}) error { - providerConfigs := cfg.ProviderConfigs - providerConfigWrapper, ok := providerConfigs[providerName] - if !ok { - return fmt.Errorf("ProviderConfigWrapper %s not found", providerName) - } - providerConfigValue := providerConfigWrapper.Value - if err := providerConfigValue.Set(fieldToChange, newValue); err != nil { - return err - } - providerConfigWrapper.Value = providerConfigValue +// func setProviderConfigField(cfg *ConfigOutputWrapper, providerName string, fieldToChange string, newValue interface{}) error { +// providerConfigs := cfg.ProviderConfigs +// providerConfigWrapper, ok := providerConfigs[providerName] +// if !ok { +// return fmt.Errorf("ProviderConfigWrapper %s not found", providerName) +// } +// providerConfigValue := providerConfigWrapper.Value +// if err := providerConfigValue.Set(fieldToChange, newValue); err != nil { +// return err +// } +// providerConfigWrapper.Value = providerConfigValue - return nil -} +// return nil +// } // updatePathConfig overwrites the config file concurrently, // locking to read, modify, then write the config. diff --git a/relayer/chains/archway/provider.go b/relayer/chains/archway/provider.go index a5a76bcb9..c4faf750a 100644 --- a/relayer/chains/archway/provider.go +++ b/relayer/chains/archway/provider.go @@ -191,11 +191,6 @@ func (pp *ArchwayProviderConfig) Validate() error { return nil } -func (pp *ArchwayProviderConfig) Set(field string, value interface{}) error { - // TODO: implement - return nil -} - func (pp *ArchwayProviderConfig) getRPCAddr() string { return pp.RPCAddr } diff --git a/relayer/chains/cosmos/provider.go b/relayer/chains/cosmos/provider.go index 948f65f07..4fbea4d0e 100644 --- a/relayer/chains/cosmos/provider.go +++ b/relayer/chains/cosmos/provider.go @@ -66,11 +66,6 @@ func (pc CosmosProviderConfig) Validate() error { return nil } -func (pc CosmosProviderConfig) Set(field string, value interface{}) error { - // TODO: - return nil -} - func (pc CosmosProviderConfig) BroadcastMode() provider.BroadcastMode { return pc.Broadcast } diff --git a/relayer/chains/icon/provider.go b/relayer/chains/icon/provider.go index 6c56d82cf..d1afed8f7 100644 --- a/relayer/chains/icon/provider.go +++ b/relayer/chains/icon/provider.go @@ -77,17 +77,6 @@ func (pp *IconProviderConfig) Validate() error { return nil } -func (pp *IconProviderConfig) Set(field string, value interface{}) error { - switch field { - case "btpHeight": - pp.BTPHeight = value.(int64) - default: - return fmt.Errorf("unknown field or not allowed to set %s", field) - } - return nil - -} - // NewProvider should provide a new Icon provider // NewProvider should provide a new Icon provider func (pp *IconProviderConfig) NewProvider(log *zap.Logger, homepath string, debug bool, chainName string) (provider.ChainProvider, error) { diff --git a/relayer/chains/penumbra/provider.go b/relayer/chains/penumbra/provider.go index 5b5701245..4079f4d87 100644 --- a/relayer/chains/penumbra/provider.go +++ b/relayer/chains/penumbra/provider.go @@ -163,11 +163,6 @@ func (cc *PenumbraProvider) ChainId() string { return cc.PCfg.ChainID } -func (cc PenumbraProviderConfig) Set(field string, value interface{}) error { - return nil - -} - func (cc *PenumbraProvider) ChainName() string { return cc.PCfg.ChainName } diff --git a/relayer/provider/provider.go b/relayer/provider/provider.go index 0aafeb7ca..9aa8966f0 100644 --- a/relayer/provider/provider.go +++ b/relayer/provider/provider.go @@ -31,7 +31,6 @@ type ProviderConfig interface { NewProvider(log *zap.Logger, homepath string, debug bool, chainName string) (ChainProvider, error) Validate() error BroadcastMode() BroadcastMode - Set(field string, value interface{}) error } type RelayerMessage interface { From 4b4ccfbceb45a277a65340866f71ca83dfa53208 Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Thu, 29 Jun 2023 14:06:08 +0545 Subject: [PATCH 45/46] chore: replace static naming with constant --- relayer/processor/path_end_runtime.go | 6 +++--- relayer/processor/utils.go | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index 2d06b36eb..df5acf5da 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -451,7 +451,7 @@ func (pathEnd *pathEndRuntime) shouldSendPacketMessage(message packetIBCMessage, pathEndForHeight = pathEnd } - if strings.Contains(pathEnd.clientState.ClientID, "tendermint") && message.info.Height >= pathEndForHeight.latestBlock.Height { + if strings.Contains(pathEnd.chainProvider.Type(), common.IconModule) && message.info.Height >= pathEndForHeight.latestBlock.Height { pathEnd.log.Debug("Waiting to relay packet message until counterparty height has incremented", zap.String("event_type", eventType), zap.Uint64("sequence", sequence), @@ -553,7 +553,7 @@ func (pathEnd *pathEndRuntime) shouldSendConnectionMessage(message connectionIBC k = k.Counterparty() } - if strings.Contains(pathEnd.clientState.ClientID, "tendermint") && message.info.Height >= counterparty.latestBlock.Height { + if strings.Contains(pathEnd.chainProvider.Type(), common.IconModule) && message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay connection message until counterparty height has incremented", zap.Inline(k), zap.String("event_type", eventType), @@ -631,7 +631,7 @@ func (pathEnd *pathEndRuntime) shouldSendChannelMessage(message channelIBCMessag channelKey = channelKey.Counterparty() } - if strings.Contains(pathEnd.clientState.ClientID, "tendermint") && message.info.Height >= counterparty.latestBlock.Height { + if strings.Contains(pathEnd.chainProvider.Type(), common.IconModule) && message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay channel message until counterparty height has incremented", zap.Inline(channelKey), zap.String("event_type", eventType), diff --git a/relayer/processor/utils.go b/relayer/processor/utils.go index 185510b78..1a004c3f6 100644 --- a/relayer/processor/utils.go +++ b/relayer/processor/utils.go @@ -4,13 +4,12 @@ import ( "math" "strings" + "github.com/cosmos/relayer/v2/relayer/common" "github.com/cosmos/relayer/v2/relayer/provider" ) -const clientName = "iconclient" - func ClientIsIcon(cs provider.ClientState) bool { - if strings.Contains(cs.ClientID, clientName) { + if strings.Contains(cs.ClientID, common.IconLightClient) { return true } return false @@ -54,5 +53,3 @@ func nextIconIBCHeader(heightMap IBCHeaderCache, height uint64) (provider.IBCHea header, ok := heightMap[nextHeight] return header, ok } - -// The next header is { false [] 0} true From 3c913ac371df1e6d04db1ab94dfb2709e1fa8ba8 Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Fri, 30 Jun 2023 10:56:43 +0545 Subject: [PATCH 46/46] chore: packet timeout after relayer update --- relayer/chains/archway/helper_debug_msg.go | 1 - relayer/chains/archway/query.go | 2 +- relayer/chains/archway/tx.go | 8 +++--- relayer/processor/path_processor_internal.go | 26 +++++++++++--------- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/relayer/chains/archway/helper_debug_msg.go b/relayer/chains/archway/helper_debug_msg.go index 953a8fb12..6b56179de 100644 --- a/relayer/chains/archway/helper_debug_msg.go +++ b/relayer/chains/archway/helper_debug_msg.go @@ -29,7 +29,6 @@ func jsonDumpDataFile(filename string, bufs interface{}) { os.Exit(1) } - fmt.Printf("Successfully created or appended JSON in %s \n", filename) } func readExistingData(filename string, opPointer interface{}) error { diff --git a/relayer/chains/archway/query.go b/relayer/chains/archway/query.go index 9aacf27e4..e6185c103 100644 --- a/relayer/chains/archway/query.go +++ b/relayer/chains/archway/query.go @@ -765,7 +765,7 @@ func (ap *ArchwayProvider) QueryPacketReceipt(ctx context.Context, height int64, } pktReceipt, err := ap.QueryIBCHandlerContract(ctx, pktReceiptParams) - if err != nil && !strings.Contains(err.Error(), "PacketCommitmentNotFound") { + if err != nil && !strings.Contains(err.Error(), "PacketReceiptNotFound") { return nil, err } diff --git a/relayer/chains/archway/tx.go b/relayer/chains/archway/tx.go index 0b1895774..bf09b55d5 100644 --- a/relayer/chains/archway/tx.go +++ b/relayer/chains/archway/tx.go @@ -763,6 +763,9 @@ func (ap *ArchwayProvider) SendMessagesToMempool( ap.BroadcastTx(cliCtx, txBytes, []provider.RelayerMessage{msg}, asyncCtx, defaultBroadcastWaitTimeout, asyncCallback, false) } + //uncomment for saving msg + SaveMsgToFile(ArchwayDebugMessagePath, msgs) + return nil } @@ -1004,6 +1007,8 @@ func (ap *ArchwayProvider) BroadcastTx( ap.log.Info("Submitted transaction", zap.String("chain_id", ap.PCfg.ChainID), zap.String("txHash", res.TxHash), + zap.Int64("Height", res.Height), + zap.Any("Methods called", msgTypesField(msgs)), ) if shouldWait { @@ -1046,9 +1051,6 @@ func (ap *ArchwayProvider) waitForTx( return } - //uncomment for saving msg - SaveMsgToFile(ArchwayDebugMessagePath, msgs) - rlyResp := &provider.RelayerTxResponse{ Height: res.Height, TxHash: res.TxHash, diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 346a76f63..f5ab82fb2 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -186,7 +186,7 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( deletePreInitIfMatches(info) toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) toDeleteSrc[chantypes.EventTypeTimeoutPacket] = append(toDeleteSrc[chantypes.EventTypeTimeoutPacket], seq) - toDeleteSrc[common.EventTimeoutRequest] = append(toDeleteSrc[common.EventTimeoutRequest], seq) + toDeleteDst[common.EventTimeoutRequest] = append(toDeleteDst[common.EventTimeoutRequest], seq) if info.ChannelOrder == chantypes.ORDERED.String() { // Channel is now closed on src. // enqueue channel close init observation to be handled by channel close correlation @@ -206,16 +206,6 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( processRemovals() - for _, msgTimeoutRequest := range pathEndPacketFlowMessages.DstMsgRequestTimeout { - timeoutMsg := packetIBCMessage{ - eventType: chantypes.EventTypeTimeoutPacket, - info: msgTimeoutRequest, - } - msgs = append(msgs, timeoutMsg) - } - - // todo: need removals ? - for seq, info := range pathEndPacketFlowMessages.DstMsgRecvPacket { deletePreInitIfMatches(info) toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) @@ -234,6 +224,17 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( processRemovals() + for seq, msgTimeoutRequest := range pathEndPacketFlowMessages.DstMsgRequestTimeout { + toDeleteSrc[chantypes.EventTypeSendPacket] = append(toDeleteSrc[chantypes.EventTypeSendPacket], seq) + toDeleteDst[common.EventTimeoutRequest] = append(toDeleteDst[common.EventTimeoutRequest], seq) + timeoutMsg := packetIBCMessage{ + eventType: chantypes.EventTypeTimeoutPacket, + info: msgTimeoutRequest, + } + msgs = append(msgs, timeoutMsg) + } + processRemovals() + for _, info := range pathEndPacketFlowMessages.SrcMsgTransfer { deletePreInitIfMatches(info) @@ -244,6 +245,7 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( var timeoutOnCloseErr *provider.TimeoutOnCloseError if pathEndPacketFlowMessages.Dst.chainProvider.Type() == common.IconModule { + switch { case errors.As(err, &timeoutHeightErr) || errors.As(err, &timeoutTimestampErr): timeoutRequestMsg := packetIBCMessage{ @@ -258,7 +260,7 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( zap.Error(err), ) } - + continue } switch {